先看看private的访问级别,只能在本类中访问private修饰的方法和变量
例如:
public class Person {
private String name;
private int age;
}
这段代码中,将 name
和 age
属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
注意:对每个属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
public class Person {
/*
* 对属性的封装 一个人的姓名、性别和年龄都是这个人的私有属性
*/
private String name;
private String sex;
private int age;
public void setName(String name) { //要改变Person类的内部属性name只能在外部类中
调用方法
this.name = name;
}
}
public class TestPersonDemo {
public static void main(String[] args) {
Person p=new Person();
p.setName("张三");
}
}
被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被private修饰的变量以及方法的。
例如:(下面为错误示例)
public class TestPersonDemo {
public static void main(String[] args) {
// 声明并实例化一Person对象p
Person p=new Person();
// 给p中的属性赋值
p.age="张三";p.age=18; //这里就是错误的,不能通过外部类实例化一个变量来改变
Person类的内部属性name,age
p.talk();
}
}
class Person {
private String name;
private int age;
public void talk()
{
System.out.println("我是:"+this.name+",今年:"+this.age+"岁");
}
}