java【类和对象】

构造方法就是为了产生对象,给对象的属性做初始化操作,是在产生对象时由编译器自动调用,为对象初始化服务

1、构造方法名字和类名相同,无法自定义方法名称
2、构造方法没有返回值类型声明
3、构造方法在创建对象时,由编译器自动调用,且只在对象产生时调用一次
4、若在定义类时,没有定义构造方法,编译器会默认生成一个无参构造,若已经定义,则不会产生默认的无参构造方法

理解Dog dog=new Dog();这一行代码背后JVM具体干的事情

1、先检测Dog这个类是否被加载到JVM中。
也就是Dog是否被加载到内存中,如果没有则加载到JVM中。
JVM运行时会加载成千上万个类,也有很多类不是立即加载的,而是在使用时尽心加载。
2、执行关键字new,看到new就在堆上开辟空间。
为对象在堆上开辟空间,具体开辟的内存空间大小视类中成员属性的类型以及个数来定。
3、调用构造方法为每个成员属性赋初始值
构造方法就是在产生对象时给属性进行赋值,类中的变量都有默认值,默认值就是其数据类型的默认值。

构造方法可以重载

  • 重载只是参数个数不同,与类型无关
  • 无参构造就是都是默认值,一个都不赋值
  • 有参构造就根据参数的个数来决定赋值哪几个成员变量

何时进行成员变量的赋值操作?

  • 成员变量的所有赋值操作都在构造方法中进行;
  • 成员变量是和对象强绑定的,只有当产生对象时,成员变量才会开辟空间并赋值;
  • 定义类时只有类型声明没有赋值

定义在类中的属性才有默认值,方法中的局部变量不存在默认值,必须赋值后使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值