### 面向对象中的封装
一、封装的定义是什么?在面向对象程式设计方法中,封装(英语: Encapsulation) 是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障, 防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能:在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
1.良好的封装能够减少耦合度。
2.类内部的结构可以自由修改。
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。
第一段代码:
(注:以下两段代码是放在同一个类Person02中实现的)
public class Person02 {
private String name;
private int age;
private int sex;
}
第二段代码:
public void setAge(int b) {
//set方法命名规范:public void(因为set方法没有返回值) set+属性名“注意首字母大写”(形参){}
//在程序的入口进行业务逻辑判断
if (b < 0 || b >150) {
System.out.println("输入有误");
return;
}
age = b;
}
public int getAge() {
//get方法命名规范:public int(因为get方法有返回值类型) get+属性名“注意首字母大写”(){}
return age;
}
public void setName(String a) {
name = a;
}
public String getName() {
return name;
}
public void setSex(int c) {
sex = c;
}
public int getSex() {
return sex;
}
}
进行方法的调用:
public class Person02Test {
@Test
public void test01() {
//创建Person02对象
Person02 person02 = new Person02();
//给名字赋值 引用.方法名(实参)
person02.setName("java");
//用get方法读值
System.out.println(person02.getName());
System.out.println("******************************");
//给年龄赋值 引用.方法名(实参)
person02.setAge(20);
//读值
System.out.println(person02.getAge());
System.out.println("******************************");
//给性别赋值 引用.方法名(实参)
person02.setSex(1);
//读取 这里进行了性别的判断
System.out.println((person02.getSex() == 1? "男":"女"));
}
}
输出的结果:
java ****************************** 20 ****************************** 男四、快速生成set方法和get方法
public class Person01 {
String name;
int age;
int sex;
}
1、当写完属性后,点击右键,找到source,将鼠标悬停。
2、在新展开的目录里找到Generate Getters Setters…点击打开。
3、在窗口的左上角和右上角根据自己的需求进行选择。



