(1) new關(guān)鍵字:表示向內(nèi)存申請空間埂蕊,也表示實例化一個對象揪利,創(chuàng)建一個對象。
(2)一個對象在內(nèi)存中的大小笛坦,由該對象的所有屬性所占的內(nèi)存大小的總和区转。引用類型變量在32位系統(tǒng)上占4個字節(jié)苔巨,在64位系統(tǒng)上占8個字節(jié)。加上而外的對象隱性數(shù)據(jù)所占的大小废离。
(3)相同的類型才可以賦值侄泽。
(4)不同的引用,指向同一個對象蜻韭,任何一個引用改變對象的值悼尾,其它引用都會反映出來。
(5)編程時要注意的問題肖方,在確定不使用對象時诀豁,要盡早釋放對象:引用=nll
(6)當(dāng)一個堆中的對象沒有被任何引用交量所指向時,該對象會被JVM的GC程序認(rèn)為是垃圾對象窥妇,從而被回收。
/**
面向過程:以步驟為單位娩践,一步一步完成某一個具體事情
面向?qū)ο螅阂詫ο鬄閱挝换铘妫ㄟ^調(diào)度組合不同的對象來完成某一個事情
(管理思維:先 能作甚福澡,再 做什么)
*/
import java.util.Scanner;
public class Test1{
public static void main(String[]args){
//int i =0;
Horse h = null;//聲明一個類的變量(除了8種基本數(shù)據(jù)類型外谤碳,都是引用數(shù)據(jù)類型,包括數(shù)組)
//創(chuàng)建一個Horse類型的對象弓坞,實例對象
h = new Horse();//實例化對象
// 有了對象吨岭,我們就可以調(diào)用對象的屬性和方法
h.name = "赤兔馬";//調(diào)用對象的屬性
h.age = 230;
h.run();//調(diào)用方法拉宗,方法被執(zhí)行
h.eat();
//匿名對象:只能用一次,用完后辣辫,該對象就會被釋放
new Horse().eat();
h = null;//把對象釋放
//h.eat();//當(dāng)對象不存在時旦事,調(diào)用該對象的屬性和方法就會報錯(空指針)
//...............
Horse h1 = null;
Horse h2 = null;
h1 = new Horse();
//h2 = new Horse();
h1.name = "小白";
h1.age = 4;
//h2.name ="小黑";
//h2.age = 5;
h2 = h1;//對象之間的幅值,相同類型才可以幅值
h2.name="小黑";
System.out.println(h1.name);
Horse h3 = null;
Horse h4 = null;
h3 = new Horse();
h4 = new Horse();
h3.name = "小白";
h3.age = 4;
h4.name="小黑";
h4=h3;
h4.name="黑黑";
System.out.println(h3.name);
}
}
//自定一個類(類型)
class Horse{
//在類中定義屬性(特征)
String name;//字符串是引用數(shù)據(jù)類型變量
int age;
public void run(){
System.out.println("我是"+name+",我"+age+"歲了急灭,我還能日行千里");
}
public void eat(){
System.out.println("我吃仙草姐浮,吃得多");
}
}