Java封装性特征详解
什么是封装性?为什么要封装
-
为什么要封装?
通过封装,可以实现对属性的数据访问限制。 -
封装性的体现:四大权限修饰符
其中四大权限修饰符为:priavte(在类内能访问),缺省(在同一个包下能访问),protected(不同包的子类能访问,这里有继承性的概念),public(在同一个工程(project)内能访问)。是单例模式的基础。 -
高内聚低耦合的概念
高内聚:内部数据操作细节自己完成,不允许外部干涉
低耦合:对外暴露少量的方法用于使用
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
this关键字
- this调用属性
public void setAge(int age) {
this.age = age;
}
- this调用本类方法
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat (){
System.out.println("人可以吃饭");
}
}
this调用方法时:
this.eat();
- this调用构造器
一个类可以含有多个构造器,如果构造器A含有构造器B中所需要的代码,这时候可以使用this关键字减少代码冗余
class Person {
private String name;
private int age;
//this调用空参构造器
public Person(String name) {
this();
this.name = name;
System.out.println("如果你是女人,就要调用这个方法");
}
public Person() {
System.out.println("如果你是人,就要调用这个方法");
}
//this调用构造器,参数列表是name
public Person(String name, int age) {
this(name);
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}