抽象
去定义一个类的时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板)。这种研究问题的方法称为抽象。
修饰符
Java提供四种访问控制修饰符号控制方法和变量的访问权限:
Ⅰ.公开级别:用pubilc修饰,对外公开
Ⅱ.受保护级别:用protected修饰,对子类和同一个包中的类公开
Ⅲ.默认级别:没有修饰符号,向同一个包的类公开
Ⅳ.私有级别:用private修饰,只有类本身可以访问,不对外公开
访问级别 | 访问控制修饰符 | 同类 | 同包 | 子类 | 不同包 |
公开 | public | √ | √ | √ | √ |
受保护 | protected | √ | √ | √ | × |
默认 | 没有修饰符 | √ | √ | × | × |
私有 | private | √ | × | × | × |
封装
封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
好处:
Ⅰ.将变化隔离
Ⅱ.便于使用
Ⅲ.提高重用性
Ⅳ.提高安全性
封装原则:
Ⅰ.将不需要对外提供的内容都隐藏起来
Ⅱ.把属性都,提供公共方法对其访问
注意:私有仅仅是封装的一种体现而已
1 public class C { 2 public static void main(String[] args){ 3 Clerk clerk1 = new Clerk("小花",22,4500.57f); 4 System.out.println("名字是:" + clerk1.name + "\n年龄:" + clerk1.getAge() + "\n薪水:" + clerk1.getSalary()); 5 } 6 } 7 8 //职员 9 class Clerk{ 10 public String name; 11 12 //用private封装起来变成私有的 13 private int age; 14 private float salary; //薪水 15 16 public Clerk(String name, int age ,float salary) 17 { 18 this.name = name; 19 this.age = age; 20 this.salary = salary; 21 } 22 //通过一个成员方法去控制和访问私有的属性 23 public int getAge() 24 { 25 return this.age; 26 } 27 public float getSalary() 28 { 29 return this.salary; 30 } 31 32 }
运行结果