构造函数

定义:

  • Java构造函数的名称必须和类名一样,且没有返回值
  • Java有构造函数,但是没有析构函数
    • 构造函数是制造对象的过程,析构函数是清除对象的过程
    • 构造函数是在内存中开辟个空间存储数据
    • 析构函数是将一个数据对象清空。
  • 每个变量都是有生命周期的,它只能存储在离它最近的一对{}中
  • 当变量被创建时,变量将占据内存;当变量消亡时,系统将回收内存
  • Java具有内存自动回收机制的,当变量退出其生命周期后,JVM会自动回收所分配的对象的内存。所以不需要析构函数来释放内存。
  • 对象回收效率依赖于垃圾回收器GC (Garbage Collector),其回收算法关系到性能好坏,是JVM的研究热点。
  • 每个Java类都必须有构造函数。
  • 如果没有显式定义构造函数,Java编译器自动为该类产生一个空的无形参构造函数。如果已经有了显式的有参或者无参构造函数,编译器就不会添加无参构造函数
  • 每个子类的构造函数的第一句话,都默认调用父类的无参数构造函数super(,除非子类的构造函数第一句话是super,而且super语句必须放在第一条。本条规则在后续继承时会再提到)
  • 一个类可以有多个构造函数,只要形参列表不相同即可。
  • 在new对象的时候,根据实参的不同,自动挑选相应的构造函数。如果实参形参匹配不上,将会报错

定义:每个变量都是有生命周期的,它只能存储在离它最近的一对{}中

示例:

public class Test{
    int a = 2;//离a最近的是Test的{}。所以a的生命周期随着Test类的消亡而消亡
    
    public void show(){
        System.out.println(a);
    }
    
    public void look(){
        int b = 1;//离b最近的是look函数的{}。所以a的生命周期随着look函数的消亡而消亡,look函数执行完了,b就没了
        System.out.println(a);
        System.out.println(b);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值