1.什么是封装
- Java中的封装中的知质就是将类中的属性与方法隐藏在类的内部,不允许外部程序直接访问,而是通过该类提
供的方法来实现对隐藏的属性与方法进行操作与访问。
2.访问修饰符
public
所以类都可以访问private
只能本类内访问protected
只有在同包或者是属于继承关系才能访问默认访问修饰符(就是什么都不写)
同包可以访问
2.1封装之private
public class EducoderText {
private String name;
private int age;
private String grader;
}
- 其他类不能访问和修改 name, age,grader了,如果想要修改或者读取数据就需要第二步
public class EducoderText {
private String name;
private int age;
private String grader;
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 String getGrader() {
return grader;
}
public void setGrader(String grader) {
this.grader = grader;
}
}
- 如果想要控制其他类对数据的修改可以进行数据验证
例如:
public class EducoderText {
private String name;
private int age;
private String grader;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age<0||age>150){
System.out.println("年龄输入不合法!!");
}
this.age = age;
}
public String getGrader() {
return grader;
}
public void setGrader(String grader) {
if ("男".equals(grader)||"女".equals(grader)){
this.grader = grader;
}else {
System.out.println("性别输入不合法!!");
}
}
}
2.2封装之public
public class Person {
public String name;//公有
}
2.3封装之默认(default)
class Student {//Student类是默认访问修饰符
String name; //name是默认访问修饰符
Student(String name){ //构造函数是默认访问修饰符
}
void sayHello(){//sayHello方法是默认访问修饰符
}
}
2.3封装之protected
public class EducoderText {
protect String name;
protect int age;
protect String grader;
}
public class Text extends EducoderText{
}
text类是EducoderText的子类,所以受protected保护的数据子类可以访问。