• 面向对象的三大特性之——封装


    目录

    封装的概念:

    private和public访问限定符

    自定义包:

    基本规则:

    导入包中的类:

     包访问权限default(默认权限)


    封装的概念:

    将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互
    以洗衣机举例,它把许多实现洗衣服的细节进行了封装,对外只提供了洗衣,脱水等按钮进行交互。我们 只知道把衣服放进洗衣机里就可以洗好衣服,但并不知道洗衣机内部是通过怎样的步骤来实现它的。

    private和public访问限定符

    private限定符:被private修饰的成员变量、方法、类等只允许在当前类的内部进行访问。

    public限定符:被public修饰不管在哪里都可以访问。

    现在有俩个类Test和Person,Person里的成员变量和方法是使用public修饰的。所以我们在Test这个类中可以访问和修改。

    当我们把public改成private时,原来的程序会报错。原因是:private修饰的成员变量或方法只能在当前类当中使用 ,此时name只能在Person类内部使用。所以在Test类当中不能访问被private修饰的name和age了。

    那么我们如何访问Person类中被private修饰的成员变量呢?

    可以用Person类中被public修饰的方法:

    这样我们通过Person内部的用public修饰的方法,就可以访问到Person中被private修饰的成员变量了。

    这里我们就可以理解成一个简单的封装了,在类的外部我们只能看到set这个方法,虽然我们给它传参就能修改name和age,但是我们并不能直观的看到name和age。

    包的概念为了更好的管理类,把多个类放在一起成为一组,称为软件包。

    包是对类,接口等封装机制的体现,是一种对类或者接口等的很好的处理方式。

    在同一个工程中允许存在相同名称的类,只要处在不同的包内即可。

    自定义包:

    操作步骤:
    1.右键src-->new-->package

    2.在弹出的对话框输入包名。

    3.在包内创建类:右键new-->java class

     

     4. 此时可以看到我们的磁盘上的目录结构已经被 IDEA 自动创建出来了

     

     

      

    5.同时我们也看到了, 在新创建的 Test.java 文件的最上方, 就出现了一个 package 语句 

     

    基本规则:

    在文件的最上方加上一个 package 语句指定该代码在哪个包中.

    包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式

    包名要和代码路径相匹配 . 例如创建 com.study.demo  的包 , 那么会存在一个对应的路径 com/study/demo  来存储 代码.
    如果一个类没有 package 语句 , 则该类被放到一个默认包中 .比如我们src里面的类就没有package语句,没有package语句的类都默认放在src里面。

    导入包中的类:

    使用 import 语句导入包 .
    Java 中已经提供了很多现成的类供我们使用 . 例如 Date 类:可以使用import   java.util.Date ; 导入 java.util 这个包中的 Date 类.

    如果需要使用java.util中的其他类,可以使用import java.util.*

      

     包访问权限default(默认权限)

    权限:同一包中的同一类,同一包中的不同类。

    在com.study.demo这个包,底下的Test1类新建一个成员变量a。在不给任何访问限定符的情况下。就等同于被default修饰。

     再同一个包底下的Test2类中访问Test1中的a.

    这样做是完全可以的,因为Test1和Test2都在同一个包底下,而a也恰好被default修饰。

    在src底下访问

    可以发现报错,原因是a被default修饰,Test和Test1不在同一个包底下。 

  • 相关阅读:
    神经网络有哪些基本功能,常见的神经网络有哪些
    机器学习-ROC曲线:技术解析与实战应用
    ros2知识:在单个进程中布置多个节点
    linux之framebuffer(2)
    基于jsp+mysql+ssm大学生社交平台-计算机毕业设计
    Tableau 合集3:格式设置之可视化图显示百分比和提示工具对齐问题
    我的Vue之旅、02 ES6基础、模块、路径、IO
    Golang面试题五(GC)
    Four-dimensional space
    如何通过远程桌面连接另一台电脑
  • 原文地址:https://blog.csdn.net/qq_62712350/article/details/126199882