第五章_Java中面向对象的三大特征之封装

第五章_Java中面向对象的三大特征之封装

封装
1. 什么是封装?

封装就是"合理隐藏,合理暴露";
基本实现:一般把成员变量(属性)隐藏起来,
提供方法进行合理的暴露访问

2. 如何进行封装

1.需要使用private 关键字修饰属性
–private:私有
–隐藏的含义、修饰的成员只能在类中被直接访问,否则报错

2.需要提供成套的公开的get 和 set 方法暴露成员变量的取值和赋值
–get: get + 成员变量 首字母大写的方法 返回该成员变量的值
–set: set + 成员变量 首字母大写的方法 对成员变量赋值

3. private关键字

概述 : private是一个修饰符,可以用来修饰成员(成员变量,成员方法)

特点 : 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用, 提供相应的操作

​ 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰

​ 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

注意事项

当成员变量与局部变量重名时,使用就近原则

当成员变量和局部变量重名的时候,使用this区分

代码演示:创建一个private修饰成员变量的学生类

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
    public void play(){
        System.out.println("会打篮球!");
    }
}
public class Test_Student {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("鸡哥");
        student.setAge(20);

        System.out.println(student.getName()+"..."+student.getAge());
        student.play();
    }
}

执行效果:在这里插入图片描述

4. this关键字
概述 :

this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)

  • 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  • 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
作用:

​ this关键字的作用:(区分成员变量和局部变量)

​ 1.可以调用本类的成员(变量,方法)
​ 2.代表所在类的对象引用
​ 方法被哪个对象调用,this就代表的哪个对象

内存原理:

在这里插入图片描述

在这里插入图片描述

总结:

  1. this 在Java中代表当前地址的引用

  2. this 在方法中,谁调用这个方法,就代表谁

  3. this 在方法中可以区分变量的访问,区分同名的变量是成员变量还是局部变量,从而实现了局部变量的见名知意,又不会和成员变量冲突

5. 封装的规范

​ 一般成员变量隐藏,

​ 成员方法暴露,并提供get ,set 技术暴露成员变量

6. 封装的作用

​ 通过方法来控制成员变量的操作,提高代码的安全性

​ 把代码用方法进行封装,提高代码的组件化和复用性。

总结:

封装:
1.把代码放到方法中,方法放到类中
2.封装原则:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问
如:成员变量使用private修饰,
同时提供get set 方法
3.封装的好处:
通过方法来控制成员变量的操作,提高代码的安全性
把代码用方法进行封装,提高代码的复用性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值