学科分类
目录
Java基础

如何实现封装

类的封装,是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。

具体的实现过程是,在定义一个类时,将类中的属性私有化,即使用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。

点击此处
隐藏目录