-
面向对象有一个法则:信息隐藏
- 类的成员属性,是私有的private;
- 类的方法是公有public的,通过方法修改成员属性的值 -
打个比方:朋友再熟悉,也不会到他抽屉直接拿东西,而是通过他的公开接口来访问、修改东西。
class InfoHiding { private int id; public InfoHiding(int id2){ id = id2; } public int getId(){ return id; } public void setId(int id2){ id = id2; } } public class InfoHidingTest{ public static void main(String[] args){ InfoHiding obj = new InfoHiding(100); obj.setId(200); System.out.println(obj.getId()); } }
运行结果
200
注意:当类设置public时,public设置的那个类必须与文件名相同
- 类成员是私有private的
- get和set方法是公有public的,统称为getter和setter
- 外界对类成员的 *** 作只能通过get和set方法
- 可以用Java IDE快速生成
this 负责指向本类中的成员变量
class InfoHiding2 { private int id; public InfoHiding2(int id){ this.id = id;//在这个构造函数里面,形参的优先级更高 //this.id指向本类中的成员变量 } public int getId(){ return id; } // public void setId(int id){ // this.id = id; // } } public class InfoHidingTest{ public static void main(String[] args){ InfoHiding2 obj = new InfoHiding2(100); //obj.setId(200); System.out.println(obj.getId()); } }
class MyPairNumber { private int m; private int n; public int getM() { return m; } public void setM(int m) { this.m = m; } public int getN() { return n; } public void setN(int n) { this.n = n; } public MyPairNumber() { this(0, 0); } public MyPairNumber(int m) { this(m, 0); } public MyPairNumber(int m, int n) { this.m = m; this.n= n; } public int sum() { return this.add(m,n); //return add(m,n); also ok } public int add(int a, int b){ return a+b; } } public class ThisTest { public static void main(String[] args) { MyPairNumber obj = new MyPairNumber(5); System.out.println(obj.sum()); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)