在Java语言中面向对象有三大特性分别是:封装、多态、继承
今天主要讲封装,后续会讲其它两种,同样的为了便于理解,这次也采用基础知识+案例
的形式。
本文目录
- 一、封装的介绍
- 1、概念
- 2、原则
- 3、意义
- 二、封装的步骤
- 1、使用关键字来修饰成员变量(全局变量)
- 2、创建该私有属性的get和set方法
- 三、扩展:什么是JavaBean
- 四、封装的情况
- 五、实例演示
- 1、题目
- 2、test1_member类
- 3、测试类
- 4、结果截图
一、封装的介绍
是指隐藏对象的属性和实现细节,只对外界提供公共的方法或者属性,部分属性和方法可通过关键字private
进行封装;
对象代表什么就得封装对应的数据并提供数据对应的行为
找对象,调方法
需要的时候去查找即可,封装可以让数据更加的安全
好处:提高了代码的安全性和复用性
二、封装的步骤
private String name;
①、设置这些方法的原因:
私有属性只能在当前类中被访问,在其它的类中无法访问,这样一来在其它类中就无法调用name这个属性,所以需要借助get和set方法来帮助我们进行调用name。
②、打个比喻:
矿泉水是用瓶子封装起来的,不能直接接触到里面的水,但是在上方开了一个口子后,我们就能接触到里面的水,这里矿泉水瓶是private
,水相当于被私有的属性
,口子相当于set和get方法
。
③、代码如下:
设置值的方法用set
,获取值的方法用get
public void setName(String name){
this.name = name;
}
public String getName{
return this.name;
}
④、快捷创建set和get方法
创建一个private对象后,点击Alt+Insert
键全选导入get和set方法
截图:
三、扩展:什么是JavaBean
当一个类中的所有成员属性都被私有化
,而且提供了set和get方法,我们把这种类叫做JavaBean类也叫做实体类
四、封装的情况
将代码
抽取到方法
中是对代码的封装
将属性
抽取到类
总是对数据的封装
五、实例演示
定义一个员工类test1_member
自己分析出几个成员,然后给出成员变量
* 姓名name,工号id,工资salary
* 构造方法,
* 空参和有参的
* getXxx()setXxx()方法,
* 以及一个显示所有成员信息的方法。并测试
public class test1_member {
// 私有属性
private String name;
private String id;
private long salary;
// todo 显示所有成员信息的方法
public void show(){
System.out.println("姓名:"+this.getName()+",工号:"+this.getId()+",工资:"+this.getSalary());
}
// todo get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
// todo 构造方法
public test1_member(String name, String id, long salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public test1_member() {
}
}
public class test1 {
// TODO 定义一个员工类Employee
// * 自己分析出几个成员,然后给出成员变量
// * 姓名name,工号id,工资salary
// * 构造方法,
// * 空参和有参的
// * getXxx()setXxx()方法,
// * 以及一个显示所有成员信息的方法。并测试
public static void main(String[] args) {
test1_member m1 = new test1_member();
m1.setName("张三");
m1.setId("119920");
m1.setSalary(10000);
m1.show();
test1_member m2 = new test1_member();
m2.setName("李四");
m2.setId("119921");
m2.setSalary(20000);
m2.show();
}
}