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

目录

封装的概念:

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不在同一个包底下。 

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值