3.4 封装性

1. 封装概述

封装是把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元中,并将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

封装通过方法来控制成员变量的操作,提高了代码的安全性;把代码用方法进行封装,提高了代码的复用性。

  • 访问方法

对于成员变量的访问可通过访问方法实现。

访问方法,能够返回成员变量值的方法称为访问方法,访问方法名一般为getXxx(),因此也称getter方法,如getName()。

  • 修改方法

对于成员变量的修改可通过修改方法实现。

修改方法,能够修改成员变量值的方法称为修改方法,修改方法名一般为setXxx(),因此也称setter方法,如setName(String name)。

2. 封装案例

定义一个学生类(Student),定义成员变量姓名(String name)和年龄(int age),成员变量都是private修饰,分别为这两个成员变量定义访问方法(getter)和修改方法(setter);定义成员方法hello( ),在其中输出“我的姓名是张三,我的年龄是20”,成员方法用public修饰。

编写程序,使用无参构造方法实现Student类的实例化,通过修改方法(setter)对成员变量赋值,调用访问方法(getter)输出变量值,并调用hello( )方法。

  • Student类

public class Student {

    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;
    }

    public void hello(){
        System.out.println("你好,我的名字是:" + this.name +",我的年龄是:" +this.age);
    }
}
  • 测试类

public class TestStudent {
    @Test
    public void test(){
      Student stu = new Student();
      stu.setName("zhangsan");
      stu.setAge(20);
      System.out.println("我的名字是:" + stu.getName());
      System.out.println("我的年龄是:" + stu.getAge());
      stu.hello();
}
}

3. 练习

定义一个汽车类(Car),定义成员变量汽车品牌(String brand)、价格(double price),成员变量都是private修饰,分别为这两个成员变量定义访问方法(getter)和修改方法(setter);定义成员方法drive( ),在其中输出“张三开着大众牌(brand值)汽车,价格是10(price值)万”,成员方法用public修饰。

编写程序,使用无参构造方法实现Car类的实例化,通过修改方法(setter)对成员变量赋值,调用访问方法(getter)输出变量值,并调用drive( )方法。

4. 思考

自定义一个类,定义其成员变量,成员变量都是private修饰,为成员变量定义访问方法(getter)和修改方法(setter);定义成员方法,在其中输出“成员变量”信息,成员方法用public修饰。

编写程序,使用无参构造方法实现类的实例化,通过修改方法(setter)对成员变量赋值,调用访问方法(getter)输出变量值,并调用成员方法。

你可能感兴趣的:(Java程序设计,java,封装性)