黑马程序员技术交流社区
标题:
请教为什么我用构造方法的重载在对象属性私有化的情况...
[打印本页]
作者:
李东城
时间:
2013-2-6 15:17
标题:
请教为什么我用构造方法的重载在对象属性私有化的情况...
本帖最后由 李东城 于 2013-2-10 23:17 编辑
有如下代码,请教为什么我用
public class Persion1 {
private int age;
private String name;
private String banji;
public Persion1(int age,String name,String banji){
this.age=age;this.name=name;this.banji=banji;
}
public Persion1() {
}
public void show(){
System.out.println(name+"的年龄是"+age+"所在班级是"+banji);
}
}
public class TestPersion1 {
public static void main(String[] args) {
Persion1 xiaohong=new Persion1(18,"小红","三班");
Persion1 xiaoming=new Persion1();
xiaoming.name="小明"; 这个地方报错呢
xiaohong.show();
复制代码
构造方法的重载在对象属性私有化的情况下也能完成创建对象,而使用默认的构造方法时就得在Persion类里使用get和set方法呢
作者:
张庚
时间:
2013-2-6 15:32
public class Persion1 {
private int age;
private String name; //因为这些成员变量是私有化的 只可以在本类中调用 外部调用就要用到get和set方法 ,传到构造方法里面他的调用时this.name 传到了这个类的本身里面去了 所以是内部调用 就可以
private String banji;
public Persion1(int age,String name,String banji){
this.age=age;this.name=name;this.banji=banji;
}
public Persion1() {
}
public void show(){
System.out.println(name+"的年龄是"+age+"所在班级是"+banji);
}
}
public class TestPersion1 {
public static void main(String[] args) {
Persion1 xiaohong=new Persion1(18,"小红","三班");
Persion1 xiaoming=new Persion1();
xiaoming.name="小明"; 这个地方报错呢
xiaohong.show();
作者:
王少雷
时间:
2013-2-6 15:40
你要了清楚 public private protected 等 这些权限 原理问题 搞清楚,,,
作者:
胡发友
时间:
2013-2-6 15:44
被private修饰符修饰的成员变量,能在该类类内部访问,对外是提供方法的;
作者:
刘凯
时间:
2013-2-6 16:01
被private修饰后的方法或者变量 在限权上只有在本类中才能直接访问 而构造函数起作用就在于初始化本类中的成员 构造方法再其类的内部 自然代码构造方法的重载在对象属性私有化的情况下也能完成创建对象 由于方法或者变量被private修饰,外部是不能直接访问的,所以就需要暴露个方法供外部访问也就是set 和 get 方法 他们的限权一半都是public 或者默认 这句是为了能让外部看的到 进而用这个方法去访问类内私有成员
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2