目录
封装的概念:
private和public访问限定符
private限定符:被private修饰的成员变量、方法、类等只允许在当前类的内部进行访问。
现在有俩个类: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。
包
包的概念:为了更好的管理类,把多个类放在一起成为一组,称为软件包。
包是对类,接口等封装机制的体现,是一种对类或者接口等的很好的处理方式。
在同一个工程中允许存在相同名称的类,只要处在不同的包内即可。
自定义包:
3.在包内创建类:右键new-->java class
4. 此时可以看到我们的磁盘上的目录结构已经被 IDEA 自动创建出来了
5.同时我们也看到了, 在新创建的 Test.java 文件的最上方, 就出现了一个 package 语句
基本规则:
在文件的最上方加上一个 package 语句指定该代码在哪个包中.
包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式
导入包中的类:
如果需要使用java.util中的其他类,可以使用import java.util.*
包访问权限default(默认权限)
权限:同一包中的同一类,同一包中的不同类。
在com.study.demo这个包,底下的Test1类新建一个成员变量a。在不给任何访问限定符的情况下。就等同于被default修饰。
再同一个包底下的Test2类中访问Test1中的a.
这样做是完全可以的,因为Test1和Test2都在同一个包底下,而a也恰好被default修饰。
在src底下访问
可以发现报错,原因是a被default修饰,Test和Test1不在同一个包底下。