【java基础知识(学习笔记)】--三大特点之一(封装)
发布日期:2021-05-09 15:05:44 浏览次数:20 分类:精选文章

本文共 1851 字,大约阅读时间需要 6 分钟。

封装概述

封装是面向对象编程中的一个重要概念之一。面向对象编程的三大特征包括封装、继承和多态。封装的核心思想是将代码分割成独立的单元,每个单元只关注自己的内部逻辑,而与其他单元无关。

封装的表现

  • 方法是基本封装单位

    方法将一堆操作封装在一起,用户只需要调用方法就可以完成整个操作,而不需要关心方法内部是如何实现的。这提高了代码的复用性和模块性。

  • 类也是一个封装体

    类将数据和方法结合在一起,形成一个完整的单元。用户可以通过创建对象来使用类中的数据和方法,从而隐藏了实现细节,提高了代码的安全性和复用性。

  • 封装的好处

  • 提高代码复用性

    유지懈封装的代码可以在其他地方复用,减少了重复代码的编写,提高了开发效率。

  • 遮盖实现细节

    对外提供简单的接口或方法,隐藏了实际的实现方式,使得程序更安全且不容易被篡改。

  • 提高安全性

    通过私有化的成员变量和方法,防止了不经过授权的随意访问,保护了程序的安全。

  • 封装举例

    机箱是一个很好的例子。一个机箱里装满了各种部件,如果不通过特定的插接口,外部设备无法随便插入或移除,这就是封装的思想。机箱提供了一定的访问方式(插口和开关),但细节被隐藏起来了。

    私有(private)

    在Java中,私有变量可以用来保护类的内部逻辑,防止外部类随便修改。比如,以下Person类:

    class Person {    private int age;    private String name;    public void setAge(int age) {        this.age = age;    }    public int getAge() {        return age;    }}

    虽然外部类无法直接访问age和name,但可以通过setAge和getAge方法进行操作。这样既保持了封装的好处,又提供了合理的访问方式。

    this关键字

    成员变量与局部变量冲突问题

    在方法中,如果成员变量和局部变量名称相同,可以通过this关键字来区别它们:

    class Person {    private int age;    private String name;    public void speak() {        this.name = "小强";        this.age = 18;        System.out.println("name=" + this.name + ",age=" + this.age);    }}

    对象内存解释

    在内存中,对象由栈内存和堆内存组成。Stack Memory存储方法调用信息,Heap Memory存储对象实例。当创建一个Person对象时,堆内存为它分配空间,成员变量初始化为0。通过this关键字可以访问当前对象的成员变量和方法。

    this的应用

    在封装中,this可以用来表示当前对象。例如:

    public boolean equalsAge(Person p) {    return this.age == p.age;}

    在此处,this表示当前调用方法的对象。

    练习:判断是否为同龄人

    编写一个Person类,并添加一个判断是否为同龄人的方法:

    class Person {    private int age;    private String name;    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public void setName(String name) {        this.name = name;    }    public String getName() {        return name;    }    public boolean equalsAge(Person p) {        return this.age == p.age;    }    public void speak() {        System.out.println("姓名:" + name + ",年龄:" + age);    }}

    通过这种方式,读者可以理解如何在封装中使用私有成员变量和this关键字,以及如何构建对象之间的关系。

    上一篇:【java基础知识(学习笔记)】-- 继承
    下一篇:【java基础知识(学习笔记)】--类和对象的区别,局部变量和成员变量区别,基本类型和引用类型作为参数传递

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月29日 02时39分25秒