一、封装性
所谓的封装性就是指对外部不可见
为属性封装:private 属性类型 属性名称;
为方法封装:private 方法返回值 方法名称(参数列表){}
为程序加上封装性:
class Person{
private String name;
private int age;
public void tell(){
System.out.println("name: " + name + "\t"+ "age: " + age);
}
}
public class Test{
public static void main(String[] args) {
Person per = new Person();
per.name = "Java";
per.age = 30;
per.tell();
}
}
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
结果:
结果发现由于定义属性时使用了 private 关键字定义,,加入关键字之后发现程序无法编译,提示“属性(name,age)为私有的”,所以不能由对象直接进行访问。
这样一来该如何访问此属性呢?
为了解决属性必须封装且又必须访问的矛盾,在 Java 开发中对于私有属性的访问,由以下明确定义:“只要是被封装的属性,必须通过 setter 和 getter 方法设置和取得”
class Person{
private String name;
private int age;
public void tell(){
System.out.println("name: " + name + "\t"+ "age: " + age);
}
public String getName(){ // 取得姓名
return name;
}
public void setName(String name) { //设置姓名
this.name = name; // this.方法名称 表示强调是本类中的方法
}
public int getAge() { //取得年龄
return age;
}
public void setAge(int age) { //设置年龄
this.age = age;
}
}
public class Test{
public static void main(String[] args) {
Person per = new Person();
per.setName("Java");
per.setAge(30);
per.tell();
}
}
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
编写程序采用 this. 方法
的形式情调是本类中的方法,比较标准,查错也比较方便
二、注意
开发过程中,类中的全部属性都必须封装,封装之后的属性必须通过 setter 和 getter 进行访问
用 private
声明的属性或方法只能在其类的内部被调用,而不能在类的外部被调用