1. 程式人生 > 其它 >Day04-變數、常量、運算子、包機制

Day04-變數、常量、運算子、包機制

變數、常量

變數

public class variable{
    //屬性:變數
    
    //例項變數:從屬於物件;如果不自行初始化,這個型別的預設值 0 0.0
    //布林值:false
    //除了基本型別,其餘的預設值都是null;
    String name;
    int age;
    
    //類變數 static
    static double salary = 2500;
    
    //main方法
    public static void main(String[] args){
        
        //區域性變數:必須宣告和初始化值
        int i = 10;
        System.out.println(i);
        
    }
}

常量

  • 常量:初始化後不能再改變值!不會變動的值

  • 常量可以理解成一種特殊的變數,它的值被設定後,在程式執行過程中不允許改變

  • final 常量名 = 值;
    final double PI = 3.14;
    
  • 常量名一般使用大寫字元

public class constant{
    //修飾符,不存在先後順序
    static final double PI = 3.14;
    final static double PI2 = 3.14;
    
    public static void main(String[] args){
        System.out.println(PI);
    }
}

變數的命名規範

  • 所有變數、方法、類名:見名知意
  • 類成員變數:首字母小寫和駝峰原則:monthSalary
  • 區域性變數:首字母小寫和駝峰原則
  • 方法名:首字母小寫和駝峰原則
  • 常量:全部大寫字元和下劃線:MAX_VALUE
  • 類名:首字母大寫和駝峰原則:GoodMan

變數作用域

public class Variable{
    static int allClicks = 0; // 類變數
    String str = "hello world"; // 例項變數
    
    public static void main(String[] args){
        int i = 0; // 區域性變數
    }
}

運算子

Java支援的運算子

  • 算術運算子:+, -, *, /, %, ++, --
  • 賦值運算子:=, +=, -=, *=, /=
  • 關係運算符:>, <, >=, <=, ==, !=, instanceof
  • 邏輯運算子:&&, ||, !
  • 位運算子:&, |, ^, ~, >>, <<, >>>
  • 條件運算子:?, :

運算型別規則

byte,short,char混合運算,各自先轉換成int再運算

多種資料型別混合運算,先轉換成最大容量的再運算

自增自減運算子

public class Demo{
    public static void main(String[] args){
        // ++ -- 自增自減,一元運算子
        int a = 3;
        
        int b = a++;//運算子在後,先賦值再自增
        int c = ++a;//運算子在前,先自增再賦值
        
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5
    }
}

邏輯運算子,位運算子

邏輯運算子

public class Demo{
    public static void main(String[] args){
        // 與(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;
        
        System.out.println("a && b:" + (a && b);//false 邏輯與運算:兩個變數都為真,結果才為真
        System.out.println("a || b:" + (a || b));//true 邏輯或運算:兩個變數有一個為真,結果為真
        System.out.println("!(a && b):" + !(a && b));//如果是真,則變真為假;如果是假,則變假為真
         
        // 短路運算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
     	System.out.println(d);//false
        System.out.println(c);//c依然是5,因為c<4 為false,直接判斷出最終結果為false,後面的c++不執行                   
	}
}

位運算子

public class Demo{
    public static void main(String[] args){
        /*
        A =  0011 1100
        B =  0000 1101
        _____________________________________________
        A&B =0000 1100  A和B兩個為1才為1,一個為1就為0
        A|B =0011 1101  A和B其中一個為1就為1
        A^B =0011 0001  A和B兩個相同為0,否則為1
        ~B  =1111 0010	非,位數相反
        */
        //—————————————————————————————————————————————
        /*
        EX:
        <<左移 >>右移 
        效率極高!!!!
        System.out.println(2<<3);輸出為16
        0000 0000	0
        0000 0001	1
        ------------------------------
        0000 0010	2
        0000 0011	3
        0000 0100	4
        0000 1000	8
        0001 0000	16
        將二進位制左移3位即為16
    }
}

三元運算子

x ? y : z

如果x==true,則結果為y,否則結果為z

包機制

包語句的語法格式為:

package pkg1[.pkg2[.pkg3...]];

一般利用公司域名倒置作為包名

  • 匯入某一個包,使用“import”
import package1[package2...].(classname 或者 *);