栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA】【类和对象系列】封装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA】【类和对象系列】封装

本章我们重点介绍封装~

        1.什么是封装

        2.了解访问修饰限定符

        3.封装的实现

        4.如何访问被封装的内容

【引言】

OOP语言中面向对象的3个重要思想:封装 继承 多态

NO1.什么是封装

我们在类和对象系列中重要研究封装的特性

那么什么叫做封装呢:封装就是套壳屏蔽细节

举个例子:你的手机和电脑由许多零件组成,但是你看手机就像一个套子套住了许多东西,跟电脑一样,你看不到主机里的电路板啊,电线啊,各种小零件,没必要看到,所以用一个“套子”把内部细节给屏蔽,你作为使用者,只用明白如何跟软件打交道即可,不必在意硬件到底是什么或者是如何工作的

在代码里也一样,假如你写了一堆代码,你只是为了给别人使用你代码的功能,并不用给别人看到你代码的具体实现,所以采用封装,使得别人看不到具体实现,然后提供给别人接口,让使用者与你提供的公开接口进行交互从而使用你的代码。这就是封装的过程。


NO2.了解访问修饰限定符

在我们具体了解封装之前,先介绍一下所谓的访问修饰限定符

这里有4个访问限定修饰符,分别是对类中的成员变量或者方法进行修饰限定的

其中我们用private来完成封装

被private修饰的只能在同一包中的同一类来使用

public:可以理解为一个人的外貌特征,谁都可以看得到

default: 对于自己家族中(同一个包中)不是什么秘密,对于其他人来说就是隐私了

private:只有自己知道,其他人都不知道

包叫做软件包,用来存类的,就相当于一个类的文件夹,该文件夹可以帮你分配你的类


NO3.封装的实现

首先我们写一个日期类

public class Date {
    public int year;
    public int month;
    public int day;

    public Date(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

    public void printDate(){
        System.out.println(year+" "+month+" "+day);
    }




    public static void main(String[] args) {
        Date date = new Date(2020,10,1);
        
        date.printDate();
    }

}

 我们通过实例化对象赋值,并打印出了成员变量的值

但我们要是想对代码进行封装,可以对成员变量加上private,比如说我们对日期类中的年成员变量加上private来对其进行修饰

 那么我们在其他类将不能直接调用year成员变量,程序会报错

 


 被private修饰的变量只能在当前类中直接访问,那么我们如何在其他类里访问这个被private修饰的year变量呢???

NO4.如何访问被封装的内容

我们只需在Date类中提供一个用来交互的公开接口即可

 我们提供了一个public公开的setYear接口,用于在其它类中用来设置year的值;其次我们又提供了一个getYear公开接口用来访问year值,因此我们在其它类中可以这样使用接口来赋值和访问

 如果我们要将成员变量都进行封装,那就分别设置多个接口

 在调用的时候仍然通过接口来赋值和调用

public class Test {

    public static void main(String[] args) {
        Date date = new Date();
        //date.year = 2020;
        //date.month = 10;
        //date.day = 1;


        //用接口来访问year
        date.setYear(2020);//通过接口来设置year值
        System.out.println(date.getYear());//通过接口来返回year值

        date.setMonth(10);
        System.out.println(date.getMonth());

        date.setDay(1);
        System.out.println(date.getDay());

        date.printDate();
    }
}

 注意:一般情况下成员变量设置为private,成员方法设置为public。

本章完~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/919645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号