對象的生成
創建一個對象包括對象的聲明、實例化、初始化三部分。
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!!!");
}
}