重修Jaava—访问控制

JAVAHOME和CLASSPATH的作用

       说起来只是突然想到JDK和工程文件并不再一起,那么编译的时候是如何进行整合的呢?所以就特地的查了一下。
       在eclipse中的工程文件中是有.classpath文件的他的作用就是指明一些需要的库文件的路径的。那么文件在编译的时候是这样的:如果是用记事本写的Java文件的话,解释器会找到环境变量中的classpath,里面包含了一个或者多个目录,并且充当“根”的作用,当要寻找某个包的时候就将”.”换成“\”,并从根开始寻找。所以classpath就相当与一个搜索路径的意义。在eclipse中也是类似的。
       JAVAHOME呢那就Java的JDK的家指明jdk的路径,同时也是起一个别名的作用。

四类访问控制

       在Java中有四类访问控制权限:public、protected、友好的、private。当然在我看来有四类权限控制,完全是处于安全的考虑的,大多数的情况下我们只希望客户使用我们提供的服务或者接口而不希望他们接触到底层的。所以有了访问控制和JAR包。

public

       与己身不重要或者需要别人知道的信息将其设置为public权限,那么这个工程下所有的类都能访问。

protected

       一个类中受保护的成员,能够访问它的必须是被他信任的类了,这些类有他自己本身、同包的类,以及子孙类

友好的

       友好的或者默认的,那肯定是得怀揣“善意的”,所以一般只能由它的邻居——同包中的类进行访问

private

       私有的,当然只能自己知道了,所以只能自己本身访问了

包的作用

       在Java中类的开头可能有这么一句话import ……意思呢就是导入库或者包,以便在类中可以使用这个包中的类。那么包其实就有了第一层的作用,就好比一个箱子,这个箱子里面来装类,也是一个地址告诉别人你需要的东西在这放着,有点类似与C++中的命名空间。那第二点好处就是可以进行分门别类的进行放置,使得这个项目更加的清晰,符合规范。
       还有一点就是便于解决冲突的问题。假若在不同包中有名字相同的类,那么编译器就会要求我们指明到底是那个类,使用的方式就是“包名.类名”的形式。
####类的访问权限
       一个”.java”文件中只能有一个public类并且与文件名相同其他的都是默认的(也可以没有public类)。那么如果排除掉内部类,其实类的访问权限就只有两种选择public和‘友好的’。不能使用private这样就没什么东西可以访问它了,同时也不能是protected这两种编译器会报错。

你可能感兴趣的:(重修Jaava—访问控制)