1. 程式人生 > >02_Java基礎_第2天(變量、運算符)_講義

02_Java基礎_第2天(變量、運算符)_講義

long static 單元 前置 否則 fin demo 計算 位與

今日內容介紹
1、變量
2、運算符

01變量概述

* A: 什麽是變量?
    * a: 變量是一個內存中的小盒子(小容器),容器是什麽?生活中也有很多容器,
    * 例如水杯是容器,用來裝載水;你家裏的大衣櫃是容器,用來裝載衣褲;飯盒是容器,
    * 用來裝載飯菜。那麽變量是裝載什麽的呢?答案是數據!結論:變量是內存中裝載數據的
    * 小盒子,你只能用它來存數據和取數據。

02計算機存儲單元

* A: 計算機中儲存和運算的最小單位是?
    * a: 一個字節,也就是一個byte.
        * win+r--cmd--回車            
    * b: 常用儲存單位
        *1B(字節) = 8bit
        *1KB = 1024B
        *1MB = 1024KB
        *1GB = 1024MB
        *1TB = 1024GB
        *1PB = 1024TB

03Java中數據類型四類八種

* A: 數據類型四類八種
    *四類 八種  字節數 數據表示範圍
    *整型 byte    1   -128~127
        short   2   -32768~32767
        int 4   -2147483648~2147483648
        long    8   -263~263-1
    *浮點型    float   4   -3.403E38~3.403E38
        double  8   -1.798E308~1.798E308
    *字符型    char    2   表示一個字符,如('a','A','0','家')
    *布爾型    boolean 1   只有兩個值true與false

04常量和數據類型

* A:常量的定義
    * a: 整形常量默認是int類型
    * b: 小數常量默認是double類型
    * c: 定義長整形數據如果值超過int取值範圍後面要+"L"
    * d: 定義float類型的數據後面要+"f" 否則默認是double

05變量創建的三要素

* A: 定義變量的語法格式:
    數據類型  變量名  =  變量值;
    * int         a    =  100;      
    * B:代碼:
    public class Variable {
        public static void main(String[] args) {
            int a = 10;
            double b = 3.14;
            char c = 'z';
            String s = "i love java";
        
            a = 20;
            System.out.println(a);
        }
    }

06定義所有的基本數據類型變量

* A: 案例演示
    * a: 八種基本類型數據的創建

07定義字符串變量

* A:案例演示
    * 創建字符串數據類型變量
    * String 是引用數據類型

08變量定義使用註意事項

* A:變量使用的註意事項
    * a: 變量定義後可以不賦值,使用時再賦值。不賦值不能使用。
        public static void main(String[] args) {
        int x;
        x = 20; //為x賦值20
        System.out.println(x);//讀取x變量中的值,再打印
        }
        
    * c:    變量使用時有作用域的限制。
        public static void main(String[] args) {
        int x = 20;
        {
            int y = 20;
        }
        System.out.println(x);//讀取x變量中的值,再打印
        System.out.println(y);//讀取y變量中的值失敗,失敗原因,找不到y變量,因為超出了y變量作用範圍,所以不能使用y變量
        }

09數據類型轉換_自動轉換

* A: ?  自動類型轉換
    * a:表示範圍小的數據類型轉換成範圍大的數據類型,這種方式稱為自動類型轉換
        自動類型轉換格式:
        範圍大的數據類型 變量 = 範圍小的數據類型值;
        如:
                double d = 1000;
            或
                int i = 100;
                double d2 = i;

10數據類型轉換_強制轉換

* A: 強制類型轉換
    *a: 表示範圍大的數據類型轉換成範圍小的數據類型,這種方式稱為強制類型轉換
    *b: 強制類型轉換格式:
    範圍小的數據類型  變量 = (範圍小的數據類型) 範圍大的數據類型值;
    如:
    int  i = (int)6.718;   //i的值為6
    或
    double  d = 3.14;
    int  i2 = (int)d;     //i2的值為3

11算數運算符_1

* A: 常見操作
    運算符 運算規則    範例      結果
    +   正號      +3      3
    +   加       2+3     5
    +   連接字符串   “中”+“國” “中國”
    -   負號      int a=3;-a  -3
    -   減       3-1     2
    *   乘       2*3     6
    /   除       5/2     2
    %   取模      5/2     1
    ++  自增      int a=1;a++/++a 2
    --  自減      int b=3;a--/--a 2
* B: 註意事項
    *a:加法運算符在連接字符串時要註意,只有直接與字符串相加才會轉成字符串。
    *b:除法“/”當兩邊為整數時,取整數部分,舍余數。當其中一邊為浮點型時,按正常規則相除。 
    *c:“%”為整除取余符號,小數取余沒有意義。結果符號與被取余符號相同。
    *d:整數做被除數,0不能做除數,否則報錯。
    *e:小數做被除數,整除0結果為Infinity,對0取模結果為NaN
* C:代碼演示
        public class OperatorDemo1 {
            public static void main(String[] args) {
            /*
             * 常量使用算數運算符
             */
            System.out.println(10+20);
            
            /*
             * 變量使用算數運算符
             */
            int x = 10;
            int y = 20;
            //"+"作為加法運算使用
            int z = x + y; 
            //"+"作為連接字符串使用
            System.out.println("x="+x);
            System.out.println("y="+y);
            System.out.println("z="+z);
        }
    }

12算數運算符_2

* A:算數運算符++、--的使用
    * a: ++運算符,會在原有值的基礎上自增1
    * b: --運算符,會在原有值的基礎上自減1。
* B:++  -- 位置的使用
    * a:++,--運算符後置時,先使用變量a原有值參與運算操作,運算操作完成後,變量a的值自增1或者自減1;
    * b:++,--運算符前置時,先將變量a的值自增1或者自減1,然後使用更新後的新值參與運算操作。

13賦值運算符

* A: 賦值運算符的使用
    運算符 運算規則    範例      結果
    =   賦值      int a=2     2
    +=  加後賦值    int a=2,a+=2    4
    -=  減後賦值    int a=2,a-=2    0
    *=  乘後賦值    int a=2,a*=2    4
    /=  整除後賦值   int a=2,a/=2    1
    %=  取模後賦值   int a=2,a%=2    0

* B:案例演示
    
     * 賦值運算符
     * +=, -=, *=, /=, %= : 
     * 上面的運算符作用:將等號左右兩邊計算,會將結果自動強轉成等號左邊的數據類型,再賦值給等號左邊的
     * 註意:賦值運算符左邊必須是變量
 
    public class OperatorDemo2 {
        public static void main(String[] args) {
            byte x = 10;
            x += 20;// 相當於 x = (byte)(x+20);
            System.out.println(x);
        }
    }

14比較運算符

* A:比較運算符的使用
    運算符 運算規則    範例  結果
    ==  相等於     4==3    False
    !=  不等於     4!=3    True
    <   小於      4<3 False
    >   大於      4>3 True
    <=  小於等於    4<=3    False
    >=  大於等於    4>=3    True

15邏輯運算符

* A: 邏輯運算符的使用
    運算符 運算規則    範例      結果
    &   與       false&true  False
    |   或       false|true  True
    ^   異或      true^flase  True
    !   非       !true       Flase
    &&  短路與     false&&true False
    ||  短路或     false||true True

    規律小結:
        短路與&&:參與運算的兩邊數據,有false,則運算結果為false;
    ?   短路或||:參與運算的兩邊數據,有true,則運算結果為true;
    ?   邏輯非! : 參與運算的數據,原先是true則變成false,原先是false則變成true。

16三元運算符

* A: 格式:
    (條件表達式)?表達式1:表達式2;
    
* B: 代碼案例
    方式一:
    System.out.println( 3>2 ? “正確” : “錯誤” ); 
    // 三元運算符運算後的結果為true,運算結果為表達式1的值“正確”,然後將結果“正確”,在控制臺輸出打印

    方式二:
    int a = 3;
    int b = 4;
    String result = (a==b) ? “相等” : “不相等”;  
    //三元運算符運算後的結果為false,運算結果為表達式2的值“不相等”,然後將結果賦值給了變量result

    方式三:
    int n = (3>2 && 4>6) ? 100 : 200;
    //三元運算符運算後的結果為false,運算結果為表達式2的值200,然後將結果200賦值給了變量n

17運算符優先級

優先級 描述      運算符
1   括號      ()、[]
2   正負號     +、-
3   自增自減,非  ++、--、!
4   乘除,取余   *、/、%
5   加減      +、-
6   移位運算    <<、>>、>>>
7   大小關系    >、>=、<、<=
8   相等關系    ==、!=
9   按位與     &
10  按位異或    ^
11  按位或     |
12  邏輯與     &&
13  邏輯或     ||
14  條件運算    ?:
15  賦值運算    =、+=、-=、*=、/=、%=
16  位賦值運算   &=、|=、<<=、>>=、>>>=

18 商場庫存清單案例

A: 案例分析.
    * a:觀察清單後,可將清單分解為三個部分(清單頂部、清單中部、清單底部)
    * b:清單頂部為固定的數據,直接打印即可
    * c:清單中部為商品,為變化的數據,需要記錄商品信息後,打印
        經過觀察,我們確定一項商品應該有如下幾個屬性:
        品牌型號: 即商品名稱,String型
        尺寸:物品大小,double型
        價格:物品單價,double型
        配置:這一項為每種商品的配置信息,String型
        庫存數:這一項為每種商品的庫存個數,int型

    * d:清單底部包含了統計操作,需經過計算後,打印
        我們發現兩個單獨的可變化量
        總庫存數:所有商品總個數,int型
        庫存商品總金額:所有商品金額,double型

B: 案例代碼實現
    //步驟一:  創建Demo01庫存清單.java文件,編寫main主方法
    public class Demo01庫存清單 {
        public static void main(String[] args) {
        }
    }
    //步驟二:  記錄每種庫存商品信息
    //蘋果筆記本電腦
    String macBrand = "MacBookAir";
    double macSize = 13.3;
    double macPrice = 6988.88;
    int macCount = 5;

    //聯想Thinkpad筆記本電腦
    String thinkpadBrand = "ThinkpadT450";
    double thinkpadSize = 14.0;
    double thinkpadPrice = 5999.99;
    int thinkpadCount = 10;

    //華碩ASUS筆記本電腦
    String ASUSBrand = "ASUS-FL5800";
    double ASUSSize = 15.6;
    double ASUSPrice = 4999.50;
    int ASUSCount = 18;

    //步驟三: 統計庫存總個數、庫存總金額
    int totalCount = macCount + thinkpadCount + ASUSCount;
    double totalMoney = (macCount * macPrice) + (thinkpadCount * thinkpadPrice) + (ASUSCount * ASUSPrice);

    //步驟四: 列表頂部
    System.out.println("------------------------------商城庫存清單-----------------------------");
    System.out.println("品牌型號    尺寸  價格  庫存數");

?   步驟四:打印庫存清單中部信息
    //列表中部
    System.out.println(macBrand+"   "+macSize+" "+macPrice+"    "+macCount);
    System.out.println(thinkpadBrand+"  "+thinkpadSize+"    "+thinkpadPrice+"   "+thinkpadCount);
    System.out.println(ASUSBrand+"  "+ASUSSize+"    "+ASUSPrice+"   "ASUSCount);
?   打印庫存清單底部信息
    //列表底部
    System.out.println("-----------------------------------------------------------------------");
    System.out.println("總庫存數:"+totalCount); 
    System.out.println("庫存商品總金額:"+totalMoney);

02_Java基礎_第2天(變量、運算符)_講義