1、概念:尽可能隐藏对象的内部实现细节,控制对象的修改和访问权限。
访问修饰符:private(可将属性修饰为私有,仅本类可见)
在对象的外部,在给对象的属性赋值的时候,可能会存在非法数据的输入。
为了避免这种情况,把变量封装为私有变量,这样的话外部就无法访问。
如果想要访问,则需要通过访问公共方法的形式来完成赋值和取值的操作。
两个公共方法:setxxxx() --这个方法是给变量赋值 使用方法参数实现赋值 可以在set方法中 通过逻辑判断来给变量赋值 如果是非法的 则可以给默认值
getxxxx() --这个方法是取变量的值 使用方法的返回值实现取值
自动生成 set()、get()方法的快捷键:Alt + Shift + S -->弹出的菜单中选择-->Generate Getters and Setters --> 勾选需要生成方法的变量 确认即可
package com.monv.fengzhuang;
/**
* 学生类--测试封装
* @author Administrator
*
*/
public class student {
String name;//姓名
String sex;//性别
private double age;//年龄
String banji;//班级
double score;//成绩
public void showinfo(){
System.out.println("学生姓名:"+name+" 性别:"+sex+" 年龄:"+age +" 班级:"+banji + " 成绩:"+score);
}
//获取age的值
public double getAge() {
return age;
}
//给age赋值
public void setAge(double age) {
if(age > 0 && age <= 120){//age 的取值范围 1=120
this.age = age;
} else // 如果超出范围 则默认给18
{
this.age = 18;
}
}
}
package com.monv.fengzhuang;
public class TestStudent {
public static void main(String[] args) {
student monv = new student();
monv.name = "魔女";
monv.sex = "女";
// monv.age = 1000;//年龄的取值范围应该是在 1-120之间
monv.setAge(1000);//调用setAge方法 给age赋值 这里给1000 超出取值范围 输出默认值18
monv.banji= "3-2";
monv.score= 100;
monv.showinfo();
}
}
输出结果为:学生姓名:魔女 性别:女 年龄:18.0 班级:3-2 成绩:100.0
输出是最好的输入。把学习的内容输出出来,加深记忆;