面向对象的第一大特征:封装性
当我创建了对象后,我如果直接通过"对象名.属性名"的方式去对属性赋值的话,可能会出现一些不符合
实际情况的问题,所以我们不考虑使用"对象名.属性名"的方式赋值,而是通过"对象名.方法名"的方式赋值
因为我么可以在方法里面加大量的业务逻辑对属性值进行限制
解决方式:
使用封装
1.将属性私有化
2.提供公用(getting setting)方法实现调用和赋值
//学生类
public class Student {
int stuNo;//学号
String stuName;//姓名
//private:修饰符权限:用private修饰的属性和方法只能在类的内部访问。出了此类就不能用了
private int age;//年龄
//个人描述
public void desc(){
System.out.println("我的学号:"+stuNo+",我的姓名是:"+stuName+",我今年"+age+"岁");
}
//赋值
public void setAge(int age1){
if(age1>=0 && age1<=80){
age=age1;
}else{
System.out.println("请输入合法年龄!!!!!");
}
}
//取值
public int getAge(){
return age;
}
TestStudent类
public class TestStudent {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建学生对象
Student stu=new Student();
//给属性赋值
stu.stuNo=1001;
stu.stuName="张三";
//调用setAge(19)方法对年龄赋值
stu.setAge(19);
stu.desc();
}
}