封装
程序员文章站
2022-05-02 20:30:51
...
封装
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:隐藏实现细节,提供公共的访问方式;提高代码复用性;提高安全性。
原则:将不需要对外提供的内容都隐藏起来。把属性隐藏起来,提供公共方法对其访问。
例,强制要求不能在main方法中直接使用成员变量age:
/*
定义一个Student类:
成员变量: name, age
成员方法:show()
为了防止给成员变量赋了非法值,在赋值之前需要进行判断
Q:在哪判断比较合适呢?
A: StudentDemo1为测试类,一般用于创建对象,调用方法
所以应该写在Student类中,怎么破:
————在该类中提供一个方法来对age进行设置: setAge()
如何强制要求不能在main方法中直接使用成员变量age:
类定义中,私有成员变量。private int age;
*/
class Student{
String name;
private int age; //私有private
public void show(){
System.out.println(name);
System.out.println(age);
}
/*
提供一个方法,校验数据,防止成员变量赋值不合法
返回值类型:void
参数列表:int num
*/
public void setAge(int num){
if(num<0 || num>120){
System.out.println("数据不合法");
}
else
age=num; //*****************************合法时,才把该数字给age
}
}
class StudentDemo1{
public static void main(String[] args){
Student s= new Student();
s.show();
System.out.println("赋值后:");
s.name="李健";
//s.age=-44; 会报错,不能再在main()中直接访问age成员变量了
//通过方法给值
s.setAge(-44);
s.show(); //show出来的年龄为0哦,因为不合法,所以仍为默认初值
}
}
上一篇: 那些年踩得坑......toFixed()并不是真的四舍五入
下一篇: 基于axios的请求封装