package javaoop; public class Opacity1 { /* * 封装性:类的信息隐藏在内部,不允许外部程序直接访问,而是通过类提供的方法实现对隐藏信息的访问和操作; * 好处:1:只能通过规定的方法访问数据 * 2:隐藏类的实力细节,方便修改和实现 * * 步骤:1:修改属性的可见性--private * 2:创建getter或者setter对于用于属性的读写,也可以使用普通方法,但是不推荐; * 3:在getter或者setter中加入控制语句,合法性判断; * */ static String name; private int age; private float height; static{ name="anikin"; } { age = 23; height =1.75f; } // 访问年龄值 public int getAge(){ return age; } // 访问身高值 public float getHeight(){ return height; } // 设置年龄之 public void setAge(int newAge){ if(newAge > 22){ age = newAge; }else{ System.out.println("你没有权限修改,因为你的年龄值小于22"); } } // 设置身高 public void setHeight(float newHeight){ height = newHeight; } // 主函数入口 public static void main(String[] args){ Opacity1 test1 = new Opacity1(); System.out.println("获得公开name值"+test1.name); System.out.println("获得私有age值"+test1.getAge()); System.out.println("获得私有height值"+test1.height); System.out.println("****************************************"); test1.name= "jack"; System.out.println("修改公开name值"+test1.name); test1.setAge(12); System.out.println("修改私有age值"+test1.age); test1.setHeight(1.85f); System.out.println("修改私有height值"+test1.height); } }
赞一个!加油!
最后的两条输出语句里面应该是test1.getAge
()和test1.getHeight()才对吧。
test1.setAge(12);
System.out.println("修改私有age值"+test1.age);
test1.setHeight(1.85f);
System.out.println("修改私有height值"+test1.height);
}
}
第51、52行代码,age和height都是getter语句,为什么第52行代码里的height没有写上get和()呢?
好棒!