如何实现封装
类的封装,是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。
具体的实现过程是,在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法。接下来通过对上一节的案例进行修改,来演示如何实现类的封装,如文件1所示。
文件1 Example04 .java
1 class Person{
2 private String name;
3 private int age;
4 public String getName() {
5 return name;
6 }
7 public void setName(String name) {
8 this.name = name;
9 }
10 public int getAge() {
11 return age;
12 }
13 public void setAge(int age) {
14 if(age <= 0){
15 System.out.println("您输入的年龄不正确!");
16 } else {
17 this.age = age;
18 }
19 }
20 public void speak(){
21 System.out.println("我叫"+name+",今年"+age+"岁了");
22 }
23 }
24 public class Example04 {
25 public static void main(String[] args) {
26 Person p = new Person();
27 p.setName("张三");
28 p.setAge(-18);
29 p.speak();
30 }
31 }
运行结果如图1所示。
图1 运行结果
文件1中,使用private关键字将属性name和age声明为私有变量,并对外界提供公有的访问方法,其中getName()方法用于获取name属性的值,setName()方法用于设置name属性的值,依次类推。
在main()方法中创建了Person类对象,并调用了setAge()方法传入一个负数-18,在setAge()方法中会对参数age的值进行检查,由于当前传入的值小于0,因此会打印“您输入的年龄不正确!”的信息。由于此时的age属性没有被赋值,所以仍为初始值0。