您好,登錄后才能下訂單哦!
實例化對象的語法
new構造方法(實參列表):
1.new關鍵字 計算對象內存大小;在堆中申請空間;把空間初始化為0x0
2.執行構造方法 對屬性進行初始化
3.把對象的引用賦值給一個引用變量,如果需要:
對象的生命周期
1 2 3 4
1.代表對象剛申請好空間,內部被初始化為0x0
2.代表對象正在執行構造方法對屬性初始化部分
3.代表對象的可使用生命周期階段
4.代表對象已經被標記為垃圾,但可能還有被立即回收的時期
訪問對象的屬性或者調用對象的方法
1.如果在類的內部(在類的方法中訪問類的屬性和調用類的方法)
this.屬性 訪問屬性 如果沒有出現命名遮擋,直接使用屬性
this.name name 其他名字和屬性名字一樣
大名 小名
調用方法
this.方法名稱(實參列表)
this.toString ();
方法名稱(實參列表);
toString();
2.r如果在類的外部(在其他類的方法中訪問該類的屬性和調用該類的方法)
訪問屬性
對象的引用.屬性名 Person p=new Person(); p.name ;
new Person.name
調用方法
對象的引用.方法名稱(實參列表)
Person p =new Person(); p.toString();
new Person.toString();
文件名:Course.java
class Person{}
public class Course{}
javac編譯
生成Person.java Course,java
1.一個源文件中只能有一個public 的類,該類的名稱必須和文件名一樣
2.一個類會生成對應一個class字節碼文件
this關鍵字的使用
1.可以在構造方法中調用其他的構造方法,必須出現在第一行
2.代表該方法被調用時的當前對象的引用
Person p=new Person(); p.toString();
public String toString(){
this; //現在this 就是p所指向的對象的引用
}
定義包:
1.新建目錄 目錄名就是包名稱(全小寫,單詞之間用下劃線分隔)
package hello_world;
定義目錄 p1/p2 ;
定義一個類Helloworld
2.使用包
import 包名稱.類名稱
import p1/p2.HelloWorld;
四種訪問限定符:
1.限定符
2.影響的是訪問權限
兩種情況
1.修飾頂級(Top-level)
2.修飾成員級(Member-level)
說法 定義語法 說明
public public 所有類都有訪問權限
package-private 空白 只有一個包的類有訪問權限
前兩個代表可用于頂級的訪問權限
protected protected 留著繼承講
private private 只有本類有訪問權限
STATIC(靜態)靜態方法|靜態屬性
1.方法
普通方法(方法)|靜態方法(類方法)
2.屬性
普通屬性(屬性)|靜態屬性(類屬性)
語法
限定符sataic
被static 修飾的屬性/方法 就是靜態屬性/方法
理解:
普通方法/普通屬性 都綁定著一個人隱含的對象(this)
static的含義是和對象解綁
靜態屬性不在保存在對象(堆區)中,而是保存在類(方法區)中
靜態方法調用時,沒有隱含著的對象,所以也就無法使用this關鍵字
class Person{
String name="小比特";
String toString(){
return this,name;
}
static Person createPerson(){
return newPerson();
}
}
Person.createPerson();
訪問靜態屬性/調用靜態方法語法
內部:
屬性名稱;
類名稱.屬性名稱;
this.屬性名稱;//保證當前不是靜態屬性
方法名稱(實參列表);
類名稱.方法名稱(實參列表);
this.方法名稱(實參列表);//保證當前方法不是靜態方法
外部;
類名稱.屬性名稱
對象的引用.屬性名稱
類名稱.方法名稱(實參列表);
對象的引用.方法名稱(實參列表)
強調:
靜態方法沒有this.,,沒有隱含著的對象的綁定
1.不能訪問普通屬性(相當于隱式使用this)
2.不能調用普通函數
表現出來的特性:
1.一個類的所有的對象,是可以共享靜態屬性的;
屬性的初始化:(發生在對象實例化的時候)先執行 定義時初始化int a=10; 和構造代碼塊{a=10;}(按順序),再執行構造方法Person () {a=10;}
靜態屬性的初始化“(類被加載的時候)發生在實例化前
1.定義時初始化
static int a=10;
2.靜態構造代碼塊
static {
a=20;
}
類的信息一開始是以字節碼(bytecode)*.class的形式保存在磁盤上
類的加載過程就是 類加載器(classloader)在對象的目錄上找到指定類的字節碼文件,并且進行解析,然后放到內存的方法區的過程。
類只有被使用的時候才會被加載(一般不會卸載)
1.用類去實例化對象
2.使用靜態方法
setter設置和修改
getter取得
to string:沒有定義,打印的是地址
system.out.println();
out所屬類的方法/out 屬性
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。