什么是封装? 把很多的字段保护起来 使用private进行修饰封装
为什么需要把类中的字段私有化起来??? ---》 安全
体现:
- 把类中的字段私有化(防止外界访问本类的字段 即使用private修饰本类的字段);
- 给每一个字段都提供一组getter setter方法 (方法的规范写法);setXxx() , getXxx()
- 在测试类中尝试创建对象,并通过调用getter setter方法完成 对字段的赋值和取值;
ex:
class Test{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在这里可能有些人会有疑惑,通过private封装了字段之后,又通过setter方法去赋值,还不如直接去赋值,没有任何意义啊?
如果我们把setter,getter方法写更完善一点(加上条件进行判断再赋值)可能我们就会明白了
public void setName(String name) {
if(name.equals("该name值毫无意义不赋值")) {
//不赋值
}else if (name == null) {
//name值为空,无意义
}else {
this.name = name;//赋值
}
}
注意 : 如果字段的类型是布尔类型的boolean,那么get方法应该变成 is 其它不变
给private字段赋值的方式:
1.提供对应的setXxx方法
2.使用构造方法对字段赋值. 优点:在创建对象的同时就能给字段赋值. 缺点:只能赋值一次
第一次给private字段赋值时,建议使用构造方法。
再次给private字段赋值时,只能使用setXXX方法