類、屬性、方法詳解
/**
* 類、屬性、方法
* 編寫一個學(xué)生類
*/
public class SxtStu {
? ?//一個class是一個類 類名SxtStu
? ?int id;
? ?int age;
? ?String name;
? ?//id age name為屬性field 是成員變量 隨對象創(chuàng)建、消失
? ?//屬性不賦值會變成默認(rèn)值 int默認(rèn)0 String默認(rèn)null char默認(rèn)\u0000 boolean默認(rèn)false
? ?public void study(){
? ? ? ?//方法study 動態(tài)方法不用靜態(tài)修飾符static
? ? ? ?System.out.println("學(xué)習(xí)中");
? ?}
? ?public void playFootball(){
? ? ? ?System.out.println("踢球射門");
? ?}
? ?//上面為創(chuàng)建了一個類class 類里面有多個屬性field 類里面還包含一些方法
? ?//在平臺或者命令行里java SxtStu 的時候,首先加載類的屬性和方法,然后通過main方法進(jìn)入程序
? ?//加載的類的信息進(jìn)入方法區(qū)method area 信息被分為動態(tài)方法(study/playFootball)、常量("學(xué)習(xí)中""踢球射門"等固定不變的量)、static的屬性和方法(main)
? ?public static void main(String[] args) {
? ? ? ?//main方法是面向過程 程序的入口
? ? ? ?//加載完類以后 系統(tǒng)開始調(diào)用main方法 在棧stack里生成main()的棧幀 一個方法是一幀
? ? ? ?//main方法的參數(shù)(args)沒有賦值所以默認(rèn)為null
? ? ? ?SxtStu s1 = new SxtStu();
? ? ? ?//用SxtStu類生成一個新的new對象 賦地址給s1 s1為地址
? ? ? ?//s1地址指向的對象擁有了類的屬性id age name
? ? ? ?//s1指向的對象被生成在堆heep中 對象中包含屬性 并且可以調(diào)用類的方法
? ? ? ?System.out.println(s1.id);
? ? ? ?System.out.println(s1.name);
? ? ? ?//打印s1地址指向的對象的屬性,沒有賦值輸出默認(rèn)值
? ? ? ?s1.study();
? ? ? ?s1.playFootball();
? ? ? ?//位于棧stack里的main棧幀里的s1 的地址指向的位于堆heep中的對象 調(diào)用方法區(qū)method area里面類SxtStu的方法 學(xué)習(xí)study和踢球playFootball
? ? ? ?s1.id = 1001;
? ? ? ?//變更s1指向的對象的屬性id 變更為1001
? ?}
}