封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员变量进行更精确的控制。
- 隐藏信息,实现细节。
1.标准类的定义
pubilc class 类名{
private 变量1;
private 变量2;
无参构造方法;
含参构造方法;
get、set方法;
}
IDEA Alt+Insert 快速导入方法。
例:
class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void show() {
System.out.println(name + "," + age);
}
}
}
2.对象使用
//创建对象
类名 对象名 = new 类名();
//调用成员
对象名.变量 //类内变量一般设置为 private 无法直接调用
对象名.方法
例:
Student stu = new Student();
stu.show();
类内成员变量设置
法1:创建对象时,使用含参构造方法
类名 对象名 = new 类名(变量1,变量2);
法2:使用 set 方法
对象名.set方法名(变量1)
例:
Student stu = new Student("name",20);
stu.setName("name");
stu.setAge(20);
3. 一个类作为另一个类的属性
public class A{
private String name;
private int year;
public A(String name, int year){
this.name = name;
this.year = year;
}
}
public class B{
private A a;
private String num;
public B(A a, String num){
this.a = a;
this.num =num;
}
public static void main(String[] args){
B b = new B(new A(name, year), "2016");
}
}