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)输出变量值,并调用成员方法。