封装性----JAVA
1.题目
1.创建程序,在体中定义两个类,Person和PersonTest类,定义如下:
- 用setAge()设置人的合法年龄(0~130),用于getAge()返回人的年龄。
- 在PersonTest类的实例化Person类的对象b,调用setAge()和getAge()方法,体会java的封装性
2.构造器:利用构造器给所有人的age属性初始化值为18,
- 修改上体中类和构造器,增加name属性,使得每次创建Person对象的同时初始化age属性值和name属性
2.程序
public class Fengzhuang0LianXi {
public static void main(String[] args) {
Person p1 = new Person();
// p1.age = 1; 原因: 编译不通过
// p1.setAge(9);
System.out.println("年龄为: " + p1.getAge());
Person p2 = new Person(21, "Tom");
System.out.println("年龄为: " + p2.getAge() + " 名字: " + p2.getNmae());
}
}
class Person{
//属性
private int age;
private String name;
//构造器
public Person(){
age = 18;
}
//构造器
public Person(int a, String n){
age = a;
name = n;
}
//(封装性)设置
public void setAge(int a){
if(a<0 || a>130){
throw new RuntimeException("传入的数据非法");// 抛异常
// System.out.println("传入的数据非法");
}
age = a;
}
//获取
public int getAge(){
return age;
}
// 错误做法
// public int dogAge(int a){
// age = a;
// return age;
// }
//设置
public void setName(String n){
name = n;
}
//获取
public String getNmae(){
return name;
}
}