对象的定义格式
public class Test{
public static void main(String[] args){
Horse h = null;//声明一个类的变量(引用数据类型);
//创建一个Horse类型的对象,实例化对象,有了对象,就能调用对象的属性和方法
h.name = "赤兔马";
h.age = 350;
//调用方法
h.run();
h.eat();
//匿名对象:仅能使用一次,用完后,对象会被释放
new Horse().eat();
h = null;//释放对象
}
}
class Horse{
//在类中定义属性(特征)
String name;
int age;
public void run(){
System.out.println("我是"+name+"我"+age+"岁了");
}
public void eat(){
System.out.println("I'm eating");
}
}
对象的内存结构
定义时的内存结构:
进行赋值时:
对象与对象之间的赋值:
Horse h1 = null;
Horse h2 = null;
h1 = new Horse();
h1.name = "小白";
h1.age = 4;
h2 = h1;//对象之间的赋值,相同类型才可以进行
h2.name = "小黑";
System.out.println(h1.name); //答案? ————小黑
当堆内对象没有任何引用时,系统将会默认该堆对象为垃圾并进行回收