1.什麼是類?什麼是對象?學習
1)現實世界是由不少不少對象組成的 基於對象抽出了類this
2)對象:真實存在的單個的個體 類:類別/類型,表明一類個體指針
3)類中包含:對象
3.1)全部對象所共有的屬性/特徵----------成員變量內存
3.2)全部對象所共有的行爲---------------方法編譯器
4)一個類能夠建立多個對象 同一類型所建立的對象,結構相同,數據不一樣內存管理
5)類是對象的模板,對象是類的具體的實例io
2.如何建立類?如何建立對象?如何訪問成員?編譯
Student zs = new Student();模板
0.方法的簽名: 方法名+參數列表
1.方法的重載(overload):
1)發生在一個類中,方法名稱相同,參數列表不一樣,方法體不一樣
2)編譯器在編譯時根據方法的簽名自動綁定調用的方法
2.構造方法:
1)給成員變量賦初值
2)與類同名,沒有返回值類型
3)在建立(new)對象時被自動調用
4)若本身不寫構造,則默認一個無參構造方法 若本身寫了構造,則再也不默認提供了
5)構造方法能夠重載
3.this:指代當前對象,哪一個對象調用方法指的就是哪一個對象 只能用在方法中,在方法中訪問成員變量以前默認有個this.
this的用法:
1)this.成員變量名-------------訪問成員變量
2)this.方法名()---------------調用方法(通常不用)
3)this()----------------------調用構造方法
4.null:空,沒有指向任何對象 若引用的值爲null,則該引用不能再進行任何操做了 若操做則發生NullPointerException空指針異常
5.引用類型之間畫等號:
1)指向同一個對象
2)經過一個引用對數據的修改會影響另外一個引用對數據的訪問 eg:房子鑰匙
基本類型之間畫等號:
1)賦值
2)對一個變量的修改不會影響另外一個變量 eg:身份證複印件
成員變量和局部變量是能夠同名的 ------用的時候採用就近原則
成員變量與局部變量同名時,this不能省略
class Student {
String name; //成員變量
int age;
String address;
Student(String name,int age,String address){
this.name = name;
this.age = age;
this.address = address;
}
void study() {
System.out.println(name+"在學習...");
}
void sayHi() {
System.out.println("你們好,我叫"+name+",今年"+age+"歲了,家住"+address);
}
}
內存管理:
由JVM來管理的
1)堆:存儲new出來的對象(包括成員變量)
2)棧:存儲局部變量(包括方法的參數)
3)方法區:存儲.class字節碼文件(包括方法) 堆:Aoo對象+a 棧:o+b+c 方法區:
Aoo.class+show() main(){
Aoo o = new Aoo();
o.show(8);
}
class Aoo{
int a;
void show(int b){
int c = 5;
}
}