Java的封装

Javase

Posted by 丠 on July 9, 2020

封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别

Java封装的基础知识

封装的好处

1.只能通过规定的方法访问数据。

2.隐藏类的实例细节,方便修改和实现。

实现类的封装

1修改属性的可见性,在属性的前面添加修饰符 (private)。

2对每个值属性提供对外的公共方法访问,如创建 getter/setter(取值和赋值)方法,用于对私有属性的访问.

3在 getter/setter 方法里加入属性的控制语句,例如我们可以加一个判断语句,对于非法输入给予否定。

封装的概念图

封装概念

具体步骤

首先在类里要将属性前添加 private 修饰符。然后定义 getter 和 setter 方法。修改 People.java 和 NewObject.java 的内容如下。

public class People {
    //属性(成员变量)有什么,前面添加了访问修饰符private
    //变成了私有属性,必须通过方法调用
    private double height;     //身高

    //属性已经封装好了,如果用户需要调用属性
    //必须用getter和setter方法进行调用
    //getter和setter方法需要程序员自己定义
    public double getHeight(){
    //getter 方法命名是get关键字加属性名(属性名首字母大写)
    //getter 方法一般是为了得到属性值
      return height;
    }

    //同理设置我们的setter方法
    //setter 方法命名是set关键字加属性名(首字母大写)
    //setter 方法一般是给属性值赋值,所以有一个参数
    public void setHeight(double newHeight){
      height = newHeight;
    }
}

现在 main 函数里的对象,不能再直接调用属性了,只能通过 getter 和 setter 方法进行调用。

public class NewObject {

    public static void main(String[] args) {
        People LiLei = new People();    //创建了一个People对象LiLei

        //利用setter方法为属性赋值
        LiLei.setHeight(170.0);

        //利用getter方法取属性值
        System.out.println("LiLei的身高是"+LiLei.getHeight());
    }
}

运行结果

javac NewObject.java People.java
java NewObject
LiLei的身高是170.0