類的定義以及對象的創(chuàng)建
- 類的創(chuàng)建
public class 類名 {
}
java中所有對象都是new出來的,所有對象的內(nèi)存都是在堆空間的,所有保存對象的變量都是引用類型
java運行時環(huán)境有個垃圾回收器(garbage collect,簡稱GC),會自動回收不在使用的內(nèi)存
java程序的內(nèi)存劃分
java虛擬機在執(zhí)行java程序時,會將內(nèi)存劃分為若干個不同的數(shù)據(jù)區(qū)域,主要有:
- pc寄存器:存儲java虛擬機正在執(zhí)行的字節(jié)碼指令的地址
- java虛擬機棧:存儲棧幀
- 堆:存儲GC所管理的各種對象
- 方法區(qū):存儲每一個類的結(jié)構(gòu)信息(比如字段和方法信息,構(gòu)造方法和普通方法的字節(jié)碼等)
- 本地方法棧:用來支持native方法的調(diào)用(比如用c語言寫的方法)
構(gòu)造方法
構(gòu)造方法也叫構(gòu)造器,能夠更方便的創(chuàng)建一個對象
- 方法名必須和類名一樣
- 沒有返回值類型
- 可以重載
//類名是dog
public class dog {
public int price;
//這個就是構(gòu)造方法 沒有返回值并且和類名一樣
public dog(int price) {
}
//這個也是構(gòu)造方法 沒有返回值并且和類名一樣
public dog() {
}
}
this(跟oc中的self差不多)
this是一個指向當(dāng)前對象的引用,常見的用途是:
- 訪問當(dāng)前類中定義的成員變量
- 調(diào)用當(dāng)前類中定義的方法(包括構(gòu)造方法)
public class dog {
public int price;
public dog(int price) {
}
public dog() {
this(10);//調(diào)用構(gòu)造方法是用this調(diào)用的
//下面的這種調(diào)用就是錯誤的
//dog(10);
}
}
this的本質(zhì)是一個隱藏的位置最靠前的方法參數(shù)
package包
- java中的包就是其他編程語言中的命名空間,包的本質(zhì)是文件夾,常見的作用是:
- 將不同的類進行組織管理,訪問控制
- 解決命名沖突
- 命名建議
- 為保證包名的唯一性,一般包名都以公司的域名倒寫開頭(eg:com.baidu)
- 全部是小寫(以避免與某些類名或者接口名沖突)
- 類的第一句代碼必須使用package聲明自己屬于哪個包
QQ20200405-203032@2x.png
如何使用一個類
要想正常使用一個類,必須得知道這個類的具體位置(在哪個包),有3種常見的方式來使用一個類
- 使用類的全名(不推薦使用)
com.baidu.model.Dog dog = new com.baidu.model.Dog();
-
使用import導(dǎo)入指定的類名
image.png -
使用import導(dǎo)入整個包的所有類
image.png