04java基础知识

变量

  • 类变量

  • 实例变量

  • 局部变量

     public class Demo{
        //类变量 static
        static double money=3000;//3000默认类型是int,double的优先级高,直自动转换
        //类变量从属于Demo类,会随着Demo类存在和消失    //============================================================================
        //实例变量,在方法的外面,在类(Demo)的里面,从属于对象(类Demo),通过这个类(Demo)才能使用实例变量,级别较高
        String name
    ;    int age;//实例变量可以不用初始化,可直接使用
        //实例变量如果不进行初始化,变量储存这个类型的默认值
        //所有的数值类型的默认值都是0(整数),0.0(小数),布尔值默认值是false,除了基本类型,其余数据类型的默认值都是null(String类型的默认值就是
           //(null)        //============================================================================
        //main方法,局部变量
        public static void main(String[] args){
            //方法里面的变量是局部变量,作用域只有这个(main)方法,使用之前必须声明和初始化值
            int i=10;//此处必须赋初值,否则下面就不能输出
            System.out.println(i);
            //变量类型 变量名=new Demo()
            Demo  demo=new Demo();//使用类里面的实例变量,首先要把它的类拿过来,就是new一下,定义一个Demo类型的变量demo
            System.out.println(demo.age);
                    //类变量
            System.out.println(money);//类变量可以直接输出
        }
    }
    

    常量

 public class Demo1{
    //static和final都是修饰符。修饰符不存在先后顺序
    static final double PI=3.14159;//加了static就变成了类常量,可直接在方法里面使用
    //final static double PI=3.14159; 
   public static void main(String[] args){
        System.out.ptintln(PI);
    }
}

变量的命名规范

  • 所有变量、方法和类名要做到“见名知意”

  • 类成员变量:首字母小写和驼峰原则:除了第一个单词以外,后面单词的首字母大写,eg:monthSalary

  • 局部变量:首字母小写和驼峰原则

  • 常量:所有字母大写,多个单词使用下划线隔开,eg:MAX_VALUE

  • 类名:首字母大写和驼峰原则,eg:Man,IronMan

  • 方法名:首字母小写和驼峰原则,eg:run(),runRun();

  •  

运算符

IDEA快捷键:Ctrl+D复制上一行到下一行

算术运算符:

  • 注意算术运算过程中,由于数据类型运算产生的运算错误

 public class Demo{
    public static void main(String[] args){
        int a=10;
        int b=20; 
       System.out.println(a/b);//这里输出的结果是0,因为10/20=0.5,int类型运算之后还是int类型,所以直接就把0.5的小数位舍去了。
        System.out.println(a/(double)b);//只用把其中一个运算项强制转换成浮点型即可。
    }
}​
  • 程序实例

 public class Demo{
    public static void main(String[] args){
        long a=10;
        int b=10;
        short c=10; 
        byte d=1;
        System.out.println(a+b+c+d);//注意:基本运算中有一个数据类型是long,那么运算结果就是long类型
        System.out.println(b+c+d);//如果没有long类型的那么操作结果就是int类型
        System.out.println(c+d);
    }
}
  • 总结以上现象就是,基本运算中如果有一个是高优先级的数据类型,那么运算结果就是这个高优先级的数据类型,总之就是以最高的优先级为准

关系运算符

 public class Demo{
    public static void main(String[] args){ 
      //关系运算符返回的结果只有:正确true,错误false,所以要用布尔值表示
        int a=10;
        int b=20;
        int c=15;
        System.out.println(a>b);//输出结果是:true
        System.out.println(a<b);//false
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
        System.out.println(c%a);//取余%,也叫模运算, 15/10=1....5,所以输出结果就是5
    }
}

自增++、自减--

++,--是一元运算符,只用一个变量即可操作

 public class Demo{
    public static void main(String[] args){
        int a=1;
        int b=a++;//++在变量后面,就是先执行赋值(=)运算,然后再执行自加运算
        System.out.println(a);//所以此时输出的,b的值是1,a的值是2
        int c=++a;//++在变量前面,就是先执行自加运算,然后再执行赋值(=)运算
        System.out.println(a);//此时输出的a的值是3
        System.out.println(b);//此时输出的b的值是1
        System.out.println(c);//此时输出的a的值是3 
       //同样,--操作同理
        //在java中没有幂运算符,而是使用专门的Math类完成数学计算
        double pow=Math.pow(2,3);//使用Math类里面的pow函数进行次方的计算
        System.out.println(pow);
    }
}

逻辑运算符

 public class Demo{
    public static void main(String[] args){
        //与或非
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b:"+(a&&b));//双引号里面的内容是直接输出,使用加号+表示和后面的内容连在一起,(a&&b)运算要使用括号,不然会报错 
       System.out.println("a||b:"+(a||b));
        System.out.println("!(a&&b):"+!(a&&b));//逻辑非就是把逻辑与取反 
       //短路现象 
       /*
        我们知道a&&b的结果肯定是false,但是b&&a的结果是多少?
        当程序在执行b&&a的时候,因为b=false,
        那么不管后面是真是假,逻辑与的结果肯定是假,
        所以程序直接就不在执行后面的语句,直接输出false,如下:
        */
        System.out.println("a&&b:"+(a&&b));
    }
}

位运算

 public class Demo{
    public static void main(String[] args){
        /*位运算:按位与、或、非
        A=0011 0110
        B=1010 0011
        A&B=0010 0010
        A|B=1011 0111
        A^B=1001 0101//异或:相同为零,不同为一
        ~B=0101 1100
        右移>>   左移<< 
       //计算2*8=16=2*2*2*2 
       0000 0000     0 
       0000 0001     1 
       0000 0010     2 
       0000 0011     3 
       0000 0100     4  
       0000 1000     8 
       0001 0000     16
        观察发现,二进制数最低位的1每向左移一位,十进制数就增大二倍
        那么,左移<< *2.右移>> /2
        */
    }
}

扩展赋值运算符

 public class Demo{
    public static void main(String[] args){
       int a=1;
       int b=2;
       a+=b;//a=a+b;
       a-=b;//a=a-b; 
      //字符串连接符    +
       System.out.prnitln(""+a+b);
       //此时的输出结果是1020,因为java的规则中,
        //加号运算符任何一端出现了字符串类型(String),
        //输出结果会自动转换成字符串类型并连接在一起
       System.out.println(a+b+"");
       //此时输出的是30,why?这跟上面的不冲突,
        //涉及到运算先后顺序问题,这里是String类型字符串在后面,
        //实际上先进行a+b运算,然后再跟""进行拼接
    }
}

三元运算符

 public class Demo{
    public static void main(String[] args){
        //x ? y : z
        //如果x==true,返回结果是y,如果x==false,返回结果是z
        int score=95;
        String type=score>60? "pass" : "reject"
        System.out.println(type);//输出结果:pass
    }
}

如何在一个project中建立多个package

猜你喜欢

转载自blog.csdn.net/fada_is_in_the_way/article/details/109303064