封装
前面提到过,面向对象的三大特性,是封装、继承、多态,现在来说说封装。
类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。
在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter和getter方法设置和获取属性值。
class Student{
private String name;
private int age;
private String grade;
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;
}
public String getGrade(){
return grade;
}
public void setGrade(String grade){
this.grade=grade;
}
public void lesson(){
System.out.println(name+"正在听课。");
}
public void homework(){
System.out.println(name+"正在做作业");
}
}
如上面的例子,前面定义了3个属性,全部是private私有级,然后下面为这3个属性分别配置了一对getter、setter方法,注意这些方法的命名方式,都是get/set为前缀,后面跟上对应的属性名,使用小驼峰命名法。
getter方法用于获取该属性值,所以直接将属性值返回。
setter方法用于为属性赋值,新值以参数形式导入,注意参数名与属性名一致,前面有this关键字前缀的表示是属性,没有带this的是参数。
上面这种将所有属性设为private,再配置public级的getter/setter方法,这就是封装。
有了封装之后,再需要访问属性时就只能通过getter/setter方法来访问,需要时可以在方法中添加一些限制。
class Student{
……
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
if(age>=0)
this.age=age;
else
System.out.println("输入年龄不能为负数。");
}
……
}
如上面代码,在年龄age的setter方法中添加限制代码,要求年龄值必须不能为负数。
本文探讨了Java中的封装原理,如何通过private修饰属性实现信息隐藏,以及setter和getter方法的作用。通过实例说明了如何在实际开发中运用封装进行权限控制和数据操作。
19

被折叠的 条评论
为什么被折叠?



