博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何更好的隐藏你自己,让我们谈谈什么是封装?
阅读量:4179 次
发布时间:2019-05-26

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

面向对象的3大特性:封装、继承、多态

01什么是封装

1、定义:将类的某些信息隐藏在类的内部,不允许外部程序访问,只允许该类提供的方法来实现对隐藏信息的访问。

2、好处:只能通过规定的方法来访问,数据。隐藏类的实例和细节,方便修改和实现。
3、实现步骤:
在这里插入图片描述
set 赋值属性;get获得属性
参数的类型和属性相同:
见下面:

在这里插入图片描述

在这里插入图片描述

02使用包管理类

1、包的作用:

管理Java文件;解决同名文件冲突。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

03访问修饰符

通常属性用private修饰,方法public修饰。

04this关键字

**1、this关键字代表当前对象

this.属性 操作当前对象的属性
**this.方法 调用当前对象的方法
2、封装属性的时候,经常会使用this关键字
**
菜单栏里面的source可以选择get and set自动生成属性。

属相名和参数名相同,为了区分属相和参数概念,在属性前加入this关键字,此时代表参数值赋值给属性值。

04什么是java的内部类

顾名思义,内部类就是一个类里面的类,包含类的类称之为外部类。

之所以要使用内部类,主要具有以下作用:

1、内部类可以提供更好的封装,把内部类隐藏在外部类之中,不允许同一个包中的其他类访问该类。
2、内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
3、内部类可以实现的功能外部类同样可以实现,只是内部类使用更方便。

内部类一共有几种?

成员内部类
静态内部类
方法内部类
匿名内部类

05成员内部类

在这里插入图片描述

运行结果为:
在这里插入图片描述
从上面的代码可以看出成员内部类的使用方法:
定义了成员内部类后,必须使用外部类来创建内部类对象,用内部类对象来调用内部类的方法。
首先要创建外部对象。生成了外部对象名后,内部类 内部对象名 = 外部类对象.new内部类(),在用内部对象名.方法名调用方法。

1、外部类不能直接调用内部类的方法,要创建内部类的对象才能通过对象名调用内部类的成员变量以及方法。

在这里插入图片描述
2、如果外部类和内部类的成员变量或方法名相同,内部类默认访问自己的成员变量或者方法,如果访问外部类的成员变量,可以使用this关键字。如下面:
在这里插入图片描述
在这里插入图片描述

06静态内部类

静态内部类就是用static修饰的内部类,特点是:

1、静态内部类不能直接访问外部类非静态成员,但可以通过new 外部类().成员实现访问。
2、如果外部静态类成员名和内部类成员相同,可以通过类名.静态成员访问外部的静态成员;
如果成员名不相同,可以通过 成员名 直接调用外部类的静态成员。
3、创建静态内部类的对象时,不需要外部类的对象,直接内部类 内部对象名 = new 内部类();
在这里插入图片描述
运行结果:
在这里插入图片描述

07方法内部类

在这里插入图片描述

定义在外部类的方法中的类叫做方法类,方法类只有在该方法中才可见并使用
因为方法类不能在外部类的方法使用,所以方法类不能用static和访问符修饰。

转载地址:http://sfeai.baihongyu.com/

你可能感兴趣的文章
NOR Flash擦写和原理分析
查看>>
51单片机程序执行流程(STARTUP.A51)
查看>>
原码, 反码, 补码 详解
查看>>
Java自学第一阶段(二)- 小试牛刀
查看>>
Java自学第一阶段(三)- 万能的变量
查看>>
Java自学第一阶段(四)-万能的变量(2)
查看>>
HashMap存储原理以及与hashcode、equals方法的关系
查看>>
python3.6在windows下安装scrapy遇到的问题总结
查看>>
pycharm中打开scrapy项目,import scrapy报错问题
查看>>
scrapy爬取图片,自定义图片下载路径和图片名称
查看>>
python3下import MySQLdb出错问题
查看>>
Maven搭建SSM框架(eclipse)
查看>>
synchronized+Integer模拟火车票预售,出现的问题总结
查看>>
沉浸式过山车,感受巨蚁数字心灵的激情
查看>>
htmlunit爬取js异步加载后的页面
查看>>
修改Linux系统locale设置
查看>>
linux网络无法连接问题
查看>>
linux 查看ip
查看>>
go中map与xml互转
查看>>
java进程占用CPU过高
查看>>