JAVA简明摘要(九)对象的前世今生(构造器与垃圾收集器)

1 堆与栈

栈——方法调用,局部变量,对象引用变量,primitive主数据类型变量。
堆——所有对象,实例变量(保存于所属的对象中)。

2 构造函数

构造函数没有返回类型,名称一定要与类名相同。
构造函数不会被继承。

public Duck()
{}

使用构造函数来初始化对象状态

public class Duck
{
  int size;
  public Duck(int duckSize)
  {
    size = duckSize;
  }
}

最好要有不需参数的构造函数
顺序不同也算参数不同

public class Duck
{
  int size;

  public Duck()
  {
    size = 27;
  }

  public Duck(int duckSize)
  {
    size = duckSize;
  }
}

3 构造函数链

在创建新对象时,所有继承下来的构造函数都会执行。
调用父类构造函数的唯一方法是调用super()。

public class Duck extends Animal
{
  int size;
  public Duck(int duckSize)
  {
    super();
    size = duckSize;
  }
}

若我们未调用super(),编译器会自动帮我们加上super()的调用(无参数版本),即永远先执行父类构造函数。
对super()的调用必须是构造函数的第一个语句。

4 构造函数调用构造函数

使用this()来从某个构造函数调用同一个类的另一个构造函数。
this()只能用在构造函数中,且必须是第一行语句。
super()与this()不可兼得。

5 释放对象的引用

1.引用永久性的离开它的范围。

void go()
{
  Life z = new Life();
}

2.引用被赋值到其他的对象上。

Life z = new Life();
z = new Life();

3.直接将引用设定为null。

Life z = new Life();
z = null;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值