楊老師課堂_Java教程第二篇之變量及運算符

今天主要是講解以下知識點: 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: 基礎數據類型
        * 數據類型四類八種 
            *a:四類         八種    字節數 數據表示範圍
            *b:整型:  
                          byte       1  -128~127
                          short       2 -32768~32767
                          int       4   -2147483648~2147483648
                          long       8  -263~263-1
            *c:浮點型    float     4   -3.403E38~3.403E38
                          double       8    -1.798E308~1.798E308
            *d:字符型    char       2  表示一個字符,如('a','A','0','家')
            *e:布爾型    boolean      1    只有兩個值true與false
* B:複合數據類型   
            *a:類         class
            *b:接口       interface
            *c:數組       array
            *d:枚舉       enumeration
            *e:註解       annotation
            *f:空         null
            *g:字符串      string
注: 當問及Java的數據類型有幾種?
        * 千萬不要逞口舌之快,隨口而出:四類八種。
        * 應該是說兩大類,問答問題一定要先框架後細節。

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 IPhone = "IPhone X";
    double IPhoneSize = 4.7;
    double IPhonePrice = 8999.99;
    int IPhoneCount = 5;

    //華爲手機
    String HuaWeiPhone = "HuaWei V10";
    double HuaWeiSize = 5.7;
    double HuaWeiPrice = 2699.00;
    int HuaWeiCount = 10;

    //魅族
    String MeiZuPhone = "MeiZu 7 Pro";
    double MeiZuSize = 6.0;
    double MeiZuPrice = 2999.00;
    int MeiZuCount = 18;

    //步驟三: 統計庫存總個數、庫存總金額
    int totalCount = IPhoneCount + HuaWeiCount + MeiZuCount;
    double totalMoney = (IPhoneCount * IPhonePrice) + (HuaWeiCount * HuaWeiPrice) + (MeiZuCount * MeiZuPrice);

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

   步驟四:打印庫存清單中部信息
    //列表中部
    System.out.println(IPhone+" "+IPhoneSize+"  "+IPhonePrice+" "+IPhoneCount);
    System.out.println(HuaWeiPhone+"    "+HuaWeiSize+"  "+HuaWeiPrice+" "+HuaWeiCount);
    System.out.println(MeiZuPhone+" "+MeiZuSize+"   "+MeiZuPrice+"  "MeiZuCount);
   打印庫存清單底部信息
    //列表底部
    System.out.println("-----------------------------------------------------------------------");
    System.out.println("總庫存數:"+totalCount); 
    System.out.println("庫存商品總金額:"+totalMoney);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章