哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!

这一节啊,咱们要学习的内容是Java的封装。

1. 什么是封装

Java的封装是指,在一个类中把一些重要的信息隐藏起来,使得外部不能直接访问。

Java的封装是一种面向对象编程技术,它把类中的属性和方法封装在一起,使外部只能通过特定的方法访问类中的属性和方法,这样可以让外部不能直接修改类中的属性和方法,从而有效控制类的内部状态。

例如,定义一个Person类,它有两个属性name和age,我们可以通过下面的代码来封装它:

public class Person{
    private String name;
    private int age;
    
    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;
    }
}

在上面的代码中,将name和age属性封装在Person类中,并且为它们提供了getter和setter方法,这样外部就只能通过这些方法来获取和修改类中的属性,从而有效地控制了类的内部状态。

并且,我们给name和age属性添加了private修饰符,这样外部就不能直接操作了。你要操作name和age属性,就得去调用对应的public方法。

再举一个例子,就好比ATM机,里面的钞票属于重要信息,是私有(private)的,你无法直接看到里面有多少钱,存放在什么位置?

但是,ATM机有插卡口,出钞口,以及显示屏,这些部件就是public的方法,你通过插卡和输入密码就可以进行存取款操作。

这就是封装。

2. 如何用Java代码实现封装

就是上面的例子,分两步。

01:将属性设置为private,代表私有的。

02:设置public的get/set方法,去操作私有属性。

有快捷键可以使用,快速生成get/set方法。

在idea中:

  1. 选中要生成getter和setter方法的属性,右键选择Generate;

  2. 在Generate菜单中选择Getter和Setter;

  3. 勾选要生成的属性,点击OK即可生成getter和setter方法。

在eclipse中:

  1. 选中要生成getter和setter方法的属性,右键选择Source;

  2. 在Source菜单中选择Generate Getters and Setters;

  3. 勾选要生成的属性,点击OK即可生成getter和setter方法。

3.上一节课后作业

创建一个汽车类Car,拥有品牌brand和颜色color两个属性。分别用带参构造器和无参构造器来实例化Car类,并编写toString方法。再写一个测试类,在测试类的main方法中进行测试。

参考答案:

public class Car {
    private String brand;
    private String color;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    //无参构造器
    public Car(){
        this.brand="";
        this.color="";
    }

    //带参构造器
    public Car(String brand,String color){
        this.brand=brand;
        this.color=color;
    }

    //toString方法
    public String toString(){
        return "Car[brand="+brand+",color="+color+"]";
    }

}

测试类:

public class CarTest {
    public static void main(String[] args) {
        //使用无参构造器实例化Car
        Car car1 = new Car();
        car1.setBrand("Bmw");
        car1.setColor("White");
        System.out.println(car1.toString()); //输出:Car[brand=Bmw,color=White]

        //使用带参构造器实例化Car
        Car car2 = new Car("Benz","Black");
        System.out.println(car2.toString()); //输出:Car[brand=Benz,color=Black]
    }
}

4.课后作业

要求体现封装思想:

某ATM机有一个储蓄账户,请编写一个Java类Account,要求:

(1)定义成员变量:int balance,表示账户余额;

(2)定义构造方法,初始化账户余额;

(3)定义存钱方法void deposit(int amount),入参为存入的金额,账户余额增加amount;

(4)定义取钱方法void withdraw(int amount),入参为取出的金额,账户余额减少amount,如果余额不足,则提示“余额不足”;

(5)定义查询方法int getBalance(),返回账户余额;

posted on 2023-01-02 19:39  剽悍一小兔  阅读(12)  评论(0编辑  收藏  举报  来源