目录
一、封装
封装概述:是面向对象三大特征之一(封装,继承,多态)
对象代表什么,就得封装对应的数据,并提供数据对应的行为
创建类的过程就是封装的过程。封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特征。通过封装可以把对象的实现细节对外界隐藏起来,具有两层含义:
- 把对象全部属性与全部服务集合在一起,形成一个不可分割的单位
- “信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系
封装的好处:降低学习成本,不用记对象有哪些方法,需要时去找就行
二、private/public关键字
private/public关键字可以确保正确的可以赋值,错误的无法赋值
private是一个修饰符,可以用来修饰成员(成员变量,成员方法)
被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
针对每个私有化的成员变量,都要有get和set方法
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
class Student {
//成员变量
String name;
private int age;
//提供set方法,给成员变量age进行赋值
public void setAge(int a) {
if(a<0 || a>120) {
System.out.println("你给的年龄有误");
} else {
age = a;
}
}
//提供get方法,对外提供name属性
public int getAge() {
return age;
}
//成员方法
public void show() {
System.out.println(name + "," + age);
}
}
public class StudentDemo {
public static void main(String[] args) {
//创建对象
Student s = new Student();
//给成员变量赋值
s.name = "林青霞";
s.setAge(30);
//调用show方法
s.show();
}
}
我们可不可以把setAge方法去掉,然后在main方法中直接判断年龄是否正确?
不可以,因为对象代表什么,就得封装对应的数据,并提供数据对应的行为,student方法封装了学生的所有属性,对属性校验的方法也必须封装在student方法中