Person.java
/*
先不使用封装机制会出现什么问题?
Person类中的age属性对外暴露,外部程序可以随意访问,导致了不安全
可以进行封装,解决这个问题
*/
/*public class Person{
//年龄
int age;
}*/
//封装起来,对外只提供简单的操作入口。
//数据安全 调用者方便
/*
怎么进行封装?
第一:
属性私有化(使用private关键字进行修饰)
第二:
提供对外的操作入口
*/
public class Person{
//属性私有化
private int age;
//对外提供简单的访问入口
//写一个方法专门来完成读。get
//写一个方法专门来完成写。set
//get方法和set方法应该定义为实例方法。
/*
注意:
java开发规范中有要求,set方法和get方法要满足以下格式:
public 返回值类型 get+属性名(首字母大写)(无参数列表){
return xxx;
}
public void set+属性名(首字母大写)(有一个参数){
xxx = 参数;
}
要按照java规范中要求的格式提供set和get方法。
否则没有通用性。
*/
public int getAge(){
return age;
}
public void setAge(int i){
//可以在这设置关卡
if(i <= 0 || i >= 150){
System.out.println("对不起,信息不合法,请重新赋值");
return;//终止方法
}
age = i;
}
}
PersonTest.java
//在外部程序中访问Person中的数据
public class PersonTest{
public static void main(String[] args){
//创建Person对象
Person p1 = new Person();
//访问人的年龄
//访问一个对象的属性,一般有两种操作:1.读数据 2.改数据
//获取(get)
System.out.println(p1.getAge());
//修改(set)
p1.setAge(18);
System.out.println(p1.getAge());
p1.setAge(-1);
System.out.println(p1.getAge());
}
}