Java实现OOP(面向对象编程)(2)

在这个例子中,类型/类的名称是 Light,可向 Light 对象发出的请求包括包括打开( on)、关闭( off)、变得更明亮( brighten )或者变得更暗淡( dim)。通过简单地声明一个名字( lt),我们为 Light 对象创建了一个“句柄”。然后用 new 关键字新建类型为 Light 的一个对象。再用等号将其赋给句柄。为了向对象发送一条消息,我们列出句柄名( lt),再用一个句点符号( .)把它同消息名称( on)连接起来。从中可以看出,使用一些预先定义好的类时,我们在程序里采用的代码是非常简单和直观的。

五、封装

封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。隐藏之后,外部程序就不能接触和改变那些细节,所以不用担心自己的类会受到非法修改,可确保它们不会对其他程序造成影响。

封装的原则:

1. 将不需要对外提供的内容都隐藏起来;

2. 把属性都隐藏,提供公共方法对其访问。

简单示例代码:

package com.alanlee;

public class Student {
   
    //属性私有化,避免属性被直接使用和修改
    private Integer age;

//对外提供公有的方法用来获取对象的属性值
    public Integer getAge() {
        return age;
    }

//对外提供公有的方法,可以对对象的属性进行控制,避免不合法的操作
    public void setAge(Integer age) {
        if(age > 0 && age < 100){
            this.age =age; 
        }else{
            System.out.println("输入的年龄不合法!");
        }
    }
   
    public static void main(String[] args) {
        Student stu = new Student();
        //赋值
        stu.setAge(10);
        //取值并打印
        System.out.println(stu.getAge());
    }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dd8df95e880ed7ff0f5822529496b218.html