A:什么是標識符
* 就是給類,接口,方法,變量等起名字時使用的字符序列
- B:標識符的組成規則
- 英文大小寫字母
- 數字字符
- $和_
- C:標識符注意事項
- 1,不能使用關鍵字
- 2,不能數字開頭
- 見名知意
- A:包
- 最好是域名倒過來,要求所有的字母小寫
- B:類或者接口
- 如果是一個單詞首字母大寫
- 如果是多個單詞每個單詞首字母大寫(駝峰標識)
- C:方法或者變量
- 如果是一個單詞全部小寫
- 如果是多個單詞,從第二個單詞首字母大寫
- D:常量
- 如果是一個單詞,所有字母大寫
- 如果是多個單詞,所有的單詞大寫,用下劃線區分每個單詞
A:什么是常量 - 在程序執行的過程中其值不可以發生改變
- B:Java中常量的分類
- 字面值常量
- 自定義常量(面向對象部分講)
- C:字面值常量的分類
- 字符串常量 用雙引號括起來的內容
- 整數常量 所有整數
- 小數常量 所有小數
- 字符常量 用單引號括起來的內容,里面只能放單個數字,單個字母或單個符號
- 布爾常量 較為特殊,只有true和false
- 空常量 null(數組部分講解)
- A:二進制的數據表現形式
- 由0,1組成。以0b(b可以大寫也可以小寫)開頭(JDK1.7版本可以表示二進制了)
- B:八進制的數據表現形式
- 由0,1,…7組成。以0開頭
- C:十進制的數據表現形式
- 由0,1,…9組成。整數默認是十進制的
- D:十六進制的數據表現形式
- 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭
基本數據類型分類(4類8種)
* 整數型
* byte 占一個字節 -128到127
* short 占兩個字 -215~215-1
* int 占四個字節 -231~231-1
* long 占八個字節 -263~263-1
* 浮點型
* float 占四個字節 -3.403E38~3.403E38 單精度
* double 占八個字節-1.798E308~1.798E308 雙精度
* 字符型
* char 占兩個字節 0~65535
* 布爾型
* boolean
* boolean理論上是占八分之一個字節,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小
- 先照格式來。
- a:導包
- 格式:
- import java.util.Scanner;
- 位置:
- 在class上面。
- 格式:
- b:創建鍵盤錄入對象
- 格式:
- Scanner sc = new Scanner(System.in);
- 格式:
- c:通過對象獲取數據
- 格式:
- int x = sc.nextInt();
- 格式:
- a:導包
數組
-
A:為什么要有數組(容器)
- 為了存儲同種數據類型的多個值
-
B:數組概念
- 數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。
- 數組既可以存儲基本數據類型,也可以存儲引用數據類型。
C:數組定義格式
數據類型[] 數組名 = new 數據類型[數組的長度];
成員變量和局部變量的區別)(掌握)
-
A:在類中的位置不同
- 成員變量:在類中方法外
- 局部變量:在方法定義中或者方法聲明上
-
B:在內存中的位置不同
- 成員變量:在堆內存(成員變量屬于對象,對象進堆內存)
- 局部變量:在棧內存(局部變量屬于方法,方法進棧內存)
-
C:生命周期不同
- 成員變量:隨著對象的創建而存在,隨著對象的消失而消失
- 局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失
-
D:初始化值不同
- 成員變量:有默認初始化值
- 局部變量:沒有默認初始化值,必須定義,賦值,然后才能使用。
-
注意事項:
- 局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,采用的是就近原則。
- 基本數據類型變量包括哪些:byte,short,int,long,float,double,boolean,char
- 引用數據類型變量包括哪些:數組,類,接口,枚舉
06.11_面向對象(方法的形式參數是類名的時候如何調用)(掌握)
- A:方法的參數是類名public void print(Student s){}//print(new Student());
- 如果你看到了一個方法的形式參數是一個類類型(引用類型),這里其實需要的是該類的對象。
06.12_面向對象(匿名對象的概述和應用)(掌握)
- A:什么是匿名對象
- 沒有名字的對象
- B:匿名對象應用場景
- a:調用方法,僅僅只調用一次的時候。
- 那么,這種匿名調用有什么好處嗎?
- 節省代碼
- 注意:調用多次的時候,不適合。匿名對象調用完畢就是垃圾。可以被垃圾回收器回收。
- 那么,這種匿名調用有什么好處嗎?
- b:匿名對象可以作為實際參數傳遞
- a:調用方法,僅僅只調用一次的時候。
- C:案例演示
- 匿名對象應用場景
面向對象(封裝的概述)(掌握)
-
A:封裝概述
- 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
-
B:封裝好處
- 隱藏實現細節,提供公共的訪問方式
- 提高了代碼的復用性
- 提高安全性。
-
C:封裝原則
- 將不需要對外提供的內容都隱藏起來。
- 把屬性隱藏,提供公共方法對其訪問。
面向對象(private關鍵字的概述和特點)
- A:人類賦值年齡的問題
- B:private關鍵字特點
- a:是一個權限修飾符
- b:可以修飾成員變量和成員方法
- c:被其修飾的成員只能在本類中被訪問
- C:案例演示
- 封裝和private的應用:
- A:把成員變量用private修飾
- B:提供對應的getXxx()和setXxx()方法
- private僅僅是封裝的一種體現形式,不能說封裝就是私有
面向對象(this關鍵字的概述和應用)
- A:this關鍵字特點
- 代表當前對象的引用
- B:案例演示
- this的應用場景
- 用來區分成員變量和局部變量重名
多態:
繼承關系 方法重寫 父類指向子類對象
成員變量
[圖片上傳中。。。(1)] 結果是 10 因為對象的 類型是父 。
所以看不到兒子的實現
方法比較特殊 變異看左邊 運行看右邊
超人的故事
向上 向下轉型 父親不能調用兒子的 fly 方法, 向下轉型了就可以調用了!
多態的好處:
維護性 : 我在父改了就行
擴展性:
貓和狗 的 eat() 的參數 直接用毛和狗的父 Animal
[圖片上傳中。。。(2)]
多態的 弊端:
如果要是用子類特有方法 ,必須要強轉之后instanceof 判斷
抽象類:
abstract 修飾 抽象類不一定有抽象方法,但是有抽象方法必須是抽象類 抽象類不能被實例化。可以搞他子類,子類要么是抽象的 要么是重寫父的所有抽象方法
抽象類的成員變量 既可以是變量也可以是常量
抽象類有構造方法,子類訪問父類的成員
方法可以使抽象 也可以不是 抽象 就是要求子類必須要實現的
不能 和 static (類名.調用) final (不讓子類重寫) privite (私有 )
接口
接口中的方法都是abstract 的 接口不能實例化 對外暴露的 所以都是public 修飾 成員 及方法
成員變量: 只能是常量 默認是public static final
構造方法: 接口沒有構造方法
成員方法: 只能是抽象的
抽象類 : is a 定義的是該繼承體系共性
接口 : like a 定義的是該體系的擴展
不同包之間的訪問:
1.不同包。要 導包 然后創建的對象還要是 public 并且 還有構造也是public
默認的 修飾 在同一包可以訪問, 錢包對別人 是私有的 ,,對媳婦找死。。。
public 可以訪問其他包的! 不同包 子類 無關類都行
默認 同類 同包下(子類和無關類)
protected 可以訪問其他包的! 不同包 子類
private 僅僅是封裝的一種體現方式