我是靠谱客的博主 俏皮嚓茶,最近开发中收集的这篇文章主要介绍学习笔记(二)隐藏具体实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

《Java编程思想》整理的一些学习笔记,不喜勿喷。
1. 访问权限控制的等级,从最大权限到最下权限依次为:public,protected,包访问权限(没有关键词 or friendly),private。public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,即便是子类,包中其他类,都不可以使用。protected对于子类,包中其他类来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。包访问权限,在同一包中可以访问,如果不再同一包中,即使通过继承,也无法访问。
2. 命名包名时,一般通过利用反写域名来创建独一无二的包名,请注意,Java包的命名规则全部使用小写字母,包括中间的字也是如此。
3. 当导入具有相同类的不同包时,例如:
import com.bruceeckel.simple.*;
import java.util.*;
   这两个包中都含有Vector类,这就存在潜在冲突。而现在要创建一个Vector类的话,就会产生冲突。
Vector v = new Vector(); 
   编译器不知道该取用哪个Vector类,读者也不知道,于是就会报错,需要你强制明确指明,像这样:
java.util.Vector v = new java.util.Vector();
4.务必记住,无论何时创建包时,都已经在给定包的名称的时候隐含的指定了目录结构,这个包必须位于其名称所指定的目录之中,而该目录必须是在以CLLASSPATH开始的目录中可以查询到的。做到“包的名称对应目录路径”规则,不然将会收到许多出乎意料的运行时信息。
5. 缺省包,例子:
处于相同目录下的不同CLASS文件 Cake 和 Pie ,其中类定义为:
  class Cake{                          class Pie {
          }                                      }


此时Cake却可以使用Pie中的方法,这就很有意思了,之前我们说没有修饰词的类具有包访问权限,而包访问权限不可以访问外部类。之所以出现这样的情况是因为他们同处于相同的目录并且没有给自己设定任何包的名称。Java 将这样的文件自动看作是隶属于该目录的缺省包之中,于是它们为该目录中所有其他的文件都提供了包访问权限。
6. 每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来实现。该接口可以按要求包含众多的支持包访问权限的类(即可以有多个没有修饰词的类)。如果不想其他任何人对该类拥有访问权限,可以把所有的构造器都指定为private。从而阻止任何人创建该类的对象,但是,该类的static成员内部可以创建,例static A a = new A();

最后

以上就是俏皮嚓茶为你收集整理的学习笔记(二)隐藏具体实现的全部内容,希望文章能够帮你解决学习笔记(二)隐藏具体实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部