對象的生成
創建一個對象包括對象的聲明、實例化、初始化三部分。
1.聲明-----類名對象名
聲明並不是為對象分配內存空間,而只是分配一個引用空間。對象的引用類似於指針,是32位的地址空間,它的值指向一個中間的數據結構,它儲存有關數據類型的信息以及當前對象所在的堆的地址,而對於對象所在的實際的內存地址是不可操作的,這就保證了安全性。
2.實例化
運算符new為對象分配內存空間,它調用對象的構造方法,返回引用。一個類的不同對象分別占用著不同的內存空間。
3.生成
執行構造方法進行初始化,根據參數不同調用相應的構造方法。
注意:如果類中沒有構造方法,系統會自動調用默認的構造方法。默認的構造方法是無參數的。如果類中定義了構造方法,則必須使用類中定義的構造方法,否則會出錯!
例:
class Student{ float height,weight; String head,ear,hand,foot,mouth; Student() { height=0; weight=0; head="myhead"; ear="myear"; hand="myhead"; foot="myfoot"; mouth="mymouth"; System.out.println("new Student ok!!!"); } } public class Man{ public static void main(String args[]){ Student zhangsan=new Student(); } }
對象的使用
對象不僅可以改變自己變量的狀態,而且還擁有使用創建它的那個類中的方法的能力。對象通過這些方法可以產生一定的行為,通過運算符“.”可以實現對變量和方法的訪問。而變量和方法通過設置的權限來限制其他對象對自身的訪問。
1.對象調用自己的變量
對象名.變量名
2.對象調用自己的方法
對象名.方法名(參數);
例:
class Person{ float height,weight; String head,ear,hand,foot,mouth; Person() { height=175; weight=70; head="myhead"; ear="myear"; hand="myhead"; foot="myfoot"; mouth="mymouth"; System.out.println("new Student ok!!!"); } void speak(String s) { System.out.println("say:"+s); } } public class Human{ public static void main(String args[]){ Person zhangsan=new Person(); zhangsan.speak("hello java!!!"); Person lisi=new Person(); lisi.ear="大耳朵"; lisi.speak("I am studying java!!!"); } }