Java-面向对象三大特性之封装

在Java语言中面向对象有三大特性分别是:封装、多态、继承
今天主要讲封装,后续会讲其它两种,同样的为了便于理解,这次也采用基础知识+案例的形式。

一、封装的介绍

  1、概念

  是指隐藏对象的属性和实现细节,只对外界提供公共的方法或者属性,部分属性和方法可通过关键字private进行封装;

  2、原则

  对象代表什么就得封装对应的数据并提供数据对应的行为

  3、意义

  找对象,调方法
  需要的时候去查找即可,封装可以让数据更加的安全
  好处:提高了代码的安全性和复用性
 

二、封装的步骤

  1、使用关键字来修饰成员变量(全局变量)

    private String name;

  2、创建该私有属性的get和set方法

  ①、设置这些方法的原因
  私有属性只能在当前类中被访问,在其它的类中无法访问,这样一来在其它类中就无法调用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类也叫做实体类
 

四、封装的情况

  将代码抽取到方法中是对代码的封装
  将属性抽取到总是对数据的封装
 

五、实例演示

  1、题目

  定义一个员工类test1_member
  自己分析出几个成员,然后给出成员变量
  * 姓名name,工号id,工资salary
  * 构造方法,
  * 空参和有参的
  * getXxx()setXxx()方法,
  * 以及一个显示所有成员信息的方法。并测试
 

  2、test1_member类

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() {
    }
}

  3、测试类

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();

    }

}

  4、结果截图

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值