1.访问权限控制对面向对象编程的意义
面向对象编程在类复用时有类的“设计者“和”使用者”之分,设计者使用访问控制权限来把那些可以改变和不能改变的部分分开。类不会被使用者改变,方便类的设计者重构自己的代码二不受使用者影响。”访问权限控制“可以规范二者对类使用的行为,让它们互补影响。这也是和c语言完全不一样的理念之一。
2.java权限控制
java的权限控制从小到大依次是:private、包访问权限、protect、public
package 用于将一个类构件绑到另一个构件里用于说明下面的这个类属于这个包,也就是声明这些类文件同属于这个组群
java时以一个文件作为编译单元比如X.java文件,每一个编译单元只有一个public类且必须与文件名相同,如果存在内部类的话,则外界不可见主要用来为public类作为支持。
3.import 的意义
将单一的全局名字分隔开,减少名字冲突问题。在java里面没有像c语言的条件编译,主要c语言要解决代码跨平台移植。但是java本身具有跨平台特性所以java没必要有此功能。
如果c语言你滥用include将导致你的目标文件很大,而java的import语句没有任何影响,你可以导入所有的包,但是编译后实际上只导入了必要的包。import其实就是打通一个路径,当你所需的东西在自己包里面找不到的时候,系统就会去找你import的路径。所以它和include 不一样,它不会导致你的目标文件很大的。C语言里头的头文件里放的 还是源代码,而java引入的包是被编译过的*.class文件,并且JAVA的包 绝对是以类为单位的也就是一个类是一个*.class文件,多个类组成一个包,而C是可以一个头文件中放函数、放常量、放类。
4.java访问权限
包访问权限
处于同一个编译单元(同一个包)的所有类的彼此之间都是可以互相访问的
public
自身对每个都是可用的
private
除了自己其他都无权访问
protect
将访问权限赋予自己的派生类(子类),以及同一个包的其他类也具有访问权限。对类的使用者它是private的,但对于此类的任何导出类来说它是可以访问的