1 package face_package;
2
3 import face_packagedemoA.DemoA;
4
5 /* 包(package)
6 * 1,对类文件进行分类管理。
7 * 2,给类提供多层命名(名称)空间
8 * 3,写在程序文件的第一行。
9 * 4,类名的全称是包名.类名
10 * 5,包也是一种封装形式。
11 * 命令行 -d指定存放生成的类文件的位置
12 * 除了手动创建文件夹包名,将类文件放入
13 * javac -d . PackageDemo.java .指的当前目录
14 * package face_package.ss.asda.fas 可以多层包名
15 */
16 public class PackageDemo {
17 public static void main(String[] args) {
18 face_packagedemoA.DemoA d = new face_packagedemoA.DemoA();
19 d.show();
20 face_packagedemoB.DemoB b = new face_packagedemoB.DemoB();
21 b.method();
22 System.out.println("Hello Package!");
23 }
24 }
25
26 /*
27 * PackageDemo.java:8:找不到符号
28 * 符号: 类DemoA
29 * 位置: 类mypack.PackageDemo
30 * DemoA d = new DemoA();
31 * PackageDemo.java:8:找不到符号
32 * 符号: 类DemoA
33 * 位置: 类mypack.PackageDemo
34 * DemoA d = new DemoA();
35 * 2错误
36 *
37 * 原因:类名写错。
38 * 因为DemoA类已经有包的所属,所以必须要明确其包名。
39 * 记住:DemoA这个名是错的。正确名称是包名.类名 packa.DemoA
40 *
41 * PackageDemo.java:8:软件包不存在
42 * pack.DemoA d = new packa.DemoA();
43 * PackageDemo.java:8:软件包不存在
44 * pack.DemoA d = new packa.DemoA();
45 *
46 * 2错误
47 * 原因是在当前目录下没找到,因为packa存放在其它目录下,
48 * 应该配置一个classpath
49 *
50 * --------------------------
51 * PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进行访问
52 * pack.DemoA d = new packa.DemoA();
53 * PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进行访问
54 * pack.DemoA d = new packa.DemoA();
55 *
56 * 2错误
57 * 包相当于把类封装了 类前不加public权限无法获取到,默认权限也属于被封装。
58 * -----------------------------------
59 *
60 * PackageDemo.java:9: show() 在 packa.DemoA 中不是公共的;无法从外部软件包中对其进行访问
61 * d.show();
62 *
63 * 1错误
64 *
65 * 总结:
66 * 包与包之间的类进行访问,被访问包中的类必须是public,被访问的包中的类的方法也必须是public的。
67 *
68 * public protected default private
69 * 同一类中 ok ok ok ok
70 * 同一包中 ok ok ok
71 * 子类中 ok ok
72 * 不同包中 ok
73 *
74 *
75 */

1 package face_packagedemoA;
2
3 public class DemoA extends face_packagedemoB.DemoB{
4 public void show() {
5 method();
6 System.out.println("demo show run");
7 }
8 }

1 package face_packagedemoB;
2
3 public class DemoB {
4 /*public*/protected/*保护*/ void method() {
5 System.out.println("DemoB method run");
6 }
7 }
8 //只有继承了我才能使用我的功能,其它类无法访问我的功能。protected

java-包与包之间的访问的更多相关文章

  1. Java 面向对象异常处理,finally,覆盖时异常特点,package,import,包之间的访问(10)

    Java 面向对象异常处理, finally:final 关键字的用法参考http://www.cnblogs.com/itcqx/p/5541659.html 覆盖时异常特点,package,imp ...

  2. java 匿名内部类与包的声明访问

    一 匿名内部类 1.匿名内部类的概念 内部类是为了应对更为复杂的类间关系.查看源代码中会涉及到,而在日常业务中很 难遇到,这里不做赘述. 最常用到的内部类就是匿名内部类,它是局部内部类的一种. 定义的 ...

  3. java.util.concurrent包详细分析--转

    原文地址:http://blog.csdn.net/windsunmoon/article/details/36903901 概述 Java.util.concurrent 包含许多线程安全.测试良好 ...

  4. 黑马程序员——JAVA基础之包,权限

    ------- android培训.java培训.期待与您交流! ---------- 包(package) 对类文件进行分类管理. 给类提供多层命名空间. 写在程序文件的第一行. 类名的全称的是:包 ...

  5. java.util.concurrent包API学习笔记

    newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...

  6. Java中的包

    包:定义包用package关键字. 1:对类文件进行分类管理. 2:给类文件提供多层名称空间. 如果生成的包不在当前目录下,需要最好执行classpath,将包所在父目录定义到classpath变量中 ...

  7. Java基础07 包

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经写了一些Java程序.之前的每个Java程序都被保存为一个文件,比如Tes ...

  8. java 中的包概念

    Java 中的包package, 就是电脑中的文件夹.我们平时在工作中,文件太多时,都会新建文件夹进行分类管理,java 中的包也是类似的道理,当我们的类太多时,也需要进行分类管理,这时我们就会把类文 ...

  9. 高并发编程基础(java.util.concurrent包常见类基础)

    JDK5中添加了新的java.util.concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法 ...

随机推荐

  1. nim_duilib(9)之RichEdit

    introduction 更多控件用法,请参考 here 和 源码. 本文的代码基于这里 RichEdit的更多用法,请参考源码中RichEdit.h提供的函数,RichEdit控件,可以定制为多种多 ...

  2. 年底了是时候学新技术了「GitHub 热点速览 v.21.52」

    作者:HelloGitHub-小鱼干 年底了,又有新技术冒出来需要你来 Pick 了,第一个先要被 Pick 的是即将到来的元旦英文版:Happy New Year,再来的话就是这周非常火的新一代爬虫 ...

  3. 【LeetCode】1433. 检查一个字符串是否可以打破另一个字符串 Max Difference You Can Get From Changing an Integer

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序 日期 题目地址:https://leetcode ...

  4. 【LeetCode】1110. Delete Nodes And Return Forest 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcode ...

  5. 【九度OJ】题目1439:Least Common Multiple 解题报告

    [九度OJ]题目1439:Least Common Multiple 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1439 ...

  6. 圆桌问题(hdu4841)

    圆桌问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  7. python学习第五天:python基础(string、list、tuple)

    首先,什么是sequence(序列)操作? 字符串的特性被称为sequence(序列) H o w a r e y o u ? 就好像存储在一个个连续的单元格里面,每个单元格存储一个字符,每个字符就是 ...

  8. pandas tutorial

    目录 Series 利用dict来创建series 利用标量创建series 取 Dataframe 利用dict创建dataframe 选择 添加列 列移除 行的选择, 添加, 移除 Panel B ...

  9. vmware虚拟IOS系统

    安装虚拟机     --以管理员的身份运行

  10. [opencv]zxing c++ 库的编译,安装,以及api的介绍

    环境:ubuntu 16.04 1. 下载:zxing的源码 git clone https://github.com/15903016222/zxing-cpp.git2. 安装编译依赖的工具:cm ...