其实不管你是不是重载了,对于这里的构造函数Persion1(int age,String name,String banji)和Persion1(),JVM虚拟机都会将其初始化,那么就会有各自的初始值
对于Persion1(int age,String name,String banji),其实你创建对象的时候就对其初始化的过程,
即Persion1 xiaohong=new Persion1(18,"小红","三班");这个是显式的初始化,将xiaohong的初始值设置为:18,"小红","三班";但是你要是修改xiaohong的值,如xiaohong.name = "dahong";,就会报错
而 Persion1 xiaoming=new Persion1();这个使用的是构造函数public Persion1(){},初始化为age = 0;name = null;banji = null;由于name是私有的,所以不可直接访问的。
所以必须使用get和set方法来访问私有变量。
建议你可以多看看构造函数方面的知识,并且把内存是怎么分配给对象等知识多看看,希望对你有帮助。 |