zoukankan      html  css  js  c++  java
  • 【Java】_2_Java程序入门第三课

      为什么会想学习Java呢,一句话: 书到用时方恨少。 要不是现场现在需要用到Java,我估计就不会学习这个了,现在才深刻的体会到

    :技不压身这句话的含义。学习的时候不要想到立竿见影的求效果,也许某一天她就用到了,而这个时候,也许你就比别人的路更宽广了。

    所以不要纠结这个东西有没有用了,学吧,骚年(本来是少年的,结果出现了这个词)..........,

      上两次说了一点Java的入门的东西,到这个程度,我们是否想要干点别的事情呢?因此我们需要来认识一下Java中结构化程序设计的部分:

    流程控制;以及数据的操作结构:运算符。

    【Java 赋值运算符】

      为什么要说这个运算符呢? 因为太简单了,简单到必须说。赋值是什么意思呢? 我们通过实例来说明:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
        System.out.print("The value of IntTest is:"+IntTest);
        }
    }

      上面的程序执行结果是:

      抛出异常了,我们可以看到,编译的过程报错,为什么呢? 这个各位童鞋们可以自己想一下,就不多说了。

      下面我们对代码进行一下修改:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.print("The value of IntTest is:"+IntTest);
        }
    }

      执行结果是:

      我们看到这个时候程序已经成功执行。为什么要在这里说这个问题呢? 因为我们在C语言中,有些时候不给变量赋值也能编译通过(没有启用ALL Alarm模式),而且运行过程中

    有时候也正常,而在Java中,如果变量没有进行初始化赋值,那么就不能编译通过。同时我们也看到,我没有在定义变量的时候给变量赋初值,而是再起语句初始化变量,这个地方是与

    C语言的叫法不一致的,需要注意。

      赋值运行符,还有一些复合的用法,在下面我们会介绍。

    【Java 四则运算】

      知道数数后,我们接受的教育应当就是四则运算了,加、减、乘、除;一切简单而自然,但是在计算机的世界里面,简单却不自然了。我们通过实例来认识一下四则运算:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.println("The value of IntTest is:"+IntTest);
    
        //add
        int Sum;
            Sum=IntTest + 20121221;
            System.out.println("Sum=IntTest+20121221="+Sum);
    
        //sub
        int Dif;
            Dif=Sum - 300;
            System.out.println("Dif="+Dif);
    
        //Multiplication
        long Mul;
            Mul=Sum * Dif;
            System.out.println("Sum*Dif="+Mul); //overflow, but can execute,so you need pay atention to this
    
        double DoubleMul;
             DoubleMul=1.0*Sum* Dif; //here why we need to muliply with 1.0 ??
             System.out.println("1.0*Sum*Dif="+DoubleMul);
    
            //Division
        int Div;
            Div=Dif/789;
                System.out.println("Dif/789="+Div); //Normally 20121021/20121321 = 0.999985;how can the result be ? 
            
            double DoubleDiv;
            DoubleDiv=1.0*Dif/789;
                System.out.println("1.0*Dif/789="+DoubleDiv); //IS the same wiht the statement Div=Dif/Sum; ??
    
            //Mod
        int Mod;
                Mod=Sum % 2; //Is this equal to Sum / 2 ??
                System.out.println("Sum % 2 ="+Mod);
                System.out.println("Sum / 2 ="+Sum/2);
    
           //Multiply plus and sub
        int PostPlus;
        int PrePlus;
            int PostSub;
        int PreSub;
                System.out.println("Mod="+Mod+";"+" Dif="+Dif);
            PostPlus=Mod++;
                System.out.println("Mod++ is:"+PostPlus);
                PostPlus=++PostPlus;
                System.out.println("++Mod++ is:"+PostPlus);
                PostSub=Dif--;
                System.out.println("Dif-- is:"+PostSub);
                PreSub=--PostSub;
                System.out.println("--Dif-- is:"+PreSub);
        
        }
    }

      上面程序运行的结果是:

      四则运算需要说明的是:  在进行计算的时候,会进行类型转换。对于  /  运算符,如果操作数都是整型,则结果是整型;如果操作数有浮点类型,则结果

    是浮点类型。对于 ++ 和 —— 运算符,则和C语言一样。

    【Java关系运算符】

      Java提供了功能丰富的关系运算符:  == 、 != 、 <、<=、>、>=

      这些运算符的效果和C语言中是一样的;这里就不进行具体的介绍了,但是有一点需要说明,在判断两个浮点数相等的时候,不能简单的用==符号进行比较。

    我们就做一个简答的测试。

        //Equal to 
        float fNum1=1.0F;
            float fNum2=0.99999999F;
        if(fNum1!=fNum2)
           System.out.println("1.0 != 0.9999999");

      这段程序的输出是什么呢?输出结果如下所示:

      这里可以看到,什么也没有输出,那么就表示Java在判断if条件的时候,将 fNum1 判断为与fNum2相等了。

    【Java 逻辑运算符】

      在Java中也提供了逻辑运算符: 与、或、非;并且沿用了C语言的符号,与用 && 表示; 或用 || 表示;非用 ! 表示。

    具体的与或非逻辑我们就举例了。

      值得一提的是: 与或非逻辑运算过程中,有一个“短路”的求值过程,当可以判断出结果的时候就不会计算后面的数值了。这个有时候会影响参数的传递过程。

    具体的实例我们等到讨论方法的时候再举例。

      Java中还提供了一个三元运算符;那就是 “:?”。 这个运算符的计算规则与C语言一样,我们就不再举例了。

    【Java 位运算符】

      Java提供了与C语言类似的位运算符,这些位运算符应用非常广泛,通常用于“屏蔽技术”(怎么感觉像PLC中的屏蔽,不过两者还是有区别的)。位运算符有:

    按位与、按位或、按位异或、按位非。

      具体的实例我们就不举例了,有一个简单的应用就是求byte类型的溢出值:   300&0XFF; 具体实例见:http://www.cnblogs.com/volcanol/archive/2012/12/18/2824169.html

      这里还有一个有趣的事情就是: & 和 | 可以对boolean的进行求值,其计算规则和用法和逻辑运算符一样, & 对应 &&,而| 对应||; 我们可以看一个实例:

           //Bit oprator
           boolean bTest1=true;
           boolean bTest2=false;
           if(bTest1 & bTest2)
           System.out.println("True & True is ture");
           if(bTest1 | bTest2)
           System.out.println("True | True is ture");

      执行结果如下所示:

    【Java 移位运算符】

      在Java中也C语言一样,也提供了移位运算符,同样移位运算符适合于整型数的计算。Java提供了: 右移>>、左移<<两种运算符。其具体的用法和C语言的移位

    运算符一致。

      我们知道在C语言中右移运算符>>,最高位的补齐规则由编译器决定,标准并没有规定,为了消除这个歧义,Java特别设计一个右移运算符 ">>>" ; 并且规定

    >> 运算符是符号位填充,即>> 不会改变数值的正负; 而>>> 则规定用0补齐最高位。

    【Java中的常量】

      我们知道在C语言中提供了define机制来定义符号常量,或者说符号字面值;而在C++中则另外提供了const这一机制补充“符号字面值”的使用,那么在Java中有没有

    提供一种类似的机制呢?

      很显然,提供这样一种机制,将有利于编程人员的程序编写和阅读;在Java中也提供了这样的机制。那如何实现呢?

      在Java中我们可以通过 final 关键字来定义符号常量。其定义语法为:

      final   datatype  VaribleName=常量字面值;

      下面我们通过一个实例来说明这个问题:

      我们在看下一个例子:

      

      类中可以定义类常量,就像上面的定义,但是这样定义是默认为私有的呢?还是public的呢? 这里留下一个疑问,等到以后我们学到修饰符的时候再来解答。

    下面是这次测试代码:

    /*
    This program test the oprator
    */
    
    
    public class OprTest
    {
        public static void main(String[] args)
        {
            /*********
    
        //asign value
        int IntTest;
            IntTest=100;  //初始化变量值
            System.out.println("The value of IntTest is:"+IntTest);
    
        //add
        int Sum;
            Sum=IntTest + 20121221;
            System.out.println("Sum=IntTest+20121221="+Sum);
    
        //sub
        int Dif;
            Dif=Sum - 300;
            System.out.println("Dif="+Dif);
    
        //Multiplication
        long Mul;
            Mul=Sum * Dif;
            System.out.println("Sum*Dif="+Mul); //overflow, but can execute,so you need pay atention to this
    
        double DoubleMul;
             DoubleMul=1.0*Sum* Dif; //here why we need to muliply with 1.0 ??
             System.out.println("1.0*Sum*Dif="+DoubleMul);
    
            //Division
        int Div;
            Div=Dif/789;
                System.out.println("Dif/789="+Div); //Normally 20121021/20121321 = 0.999985;how can the result be ? 
            
            double DoubleDiv;
            DoubleDiv=1.0*Dif/789;
                System.out.println("1.0*Dif/789="+DoubleDiv); //IS the same wiht the statement Div=Dif/Sum; ??
    
            //Mod
        int Mod;
                Mod=Sum % 2; //Is this equal to Sum / 2 ??
                System.out.println("Sum % 2 ="+Mod);
                System.out.println("Sum / 2 ="+Sum/2);
    
           //Multiply plus and sub
        int PostPlus;
        int PrePlus;
            int PostSub;
        int PreSub;
                System.out.println("Mod="+Mod+";"+" Dif="+Dif);
            PostPlus=Mod++;
                System.out.println("Mod++ is:"+PostPlus);
                PostPlus=++PostPlus;
                System.out.println("++Mod++ is:"+PostPlus);
                PostSub=Dif--;
                System.out.println("Dif-- is:"+PostSub);
                PreSub=--PostSub;
                System.out.println("--Dif-- is:"+PreSub);
    
        *********/
    
            /********************
    
        //Equal to 
        float fNum1=1.0F;
            float fNum2=0.99999999F;
        if(fNum1!=fNum2)
           System.out.println("1.0 != 0.9999999");
    
        ***********************/
    
           /******************
    
           //Bit oprator
           boolean bTest1=true;
           boolean bTest2=false;
           if(bTest1 & bTest2)
           System.out.println("True & True is ture");
           if(bTest1 | bTest2)
           System.out.println("True | True is ture");
    
        ************/
    
            final  int  finalIntTest=100;
                   System.out.println("finalIntTest is:"+finalIntTest);
        
        }
    }

      发现Java是一种类C的语言,很多的机制和规则与C语言非常相似,但是需要细心的区别两者存在的区别。

  • 相关阅读:
    MyImages
    【优惠&正版】超级硬盘数据恢复软件(SuperRecovery)7.1正版注册码(39元一机终身授权,支持最新版)
    【2020年4月24日】TTradmin v2.3.2 简单好用的临时远程协助软件
    Radmin Center 1.54 测试版
    VS2015 编译原版 tightvnc 2.8.27 源码
    Centos 安装 Go 编译环境
    GHO文件安装到Vmware的两种姿势
    Radmin Server v3.5.2.1 汉化破解绿色版,完整版+精简版【20190505更新】
    系统服务监视、系统服务守护 ServiceMonitor
    API Monitor v2.0 Alpha-r13 (32+64) 汉化版
  • 原文地址:https://www.cnblogs.com/volcanol/p/2836440.html
Copyright © 2011-2022 走看看