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. 浅析.netcore中的Configuration

    不管是.net还是.netcore项目,我们都少不了要读取配置文件,在.net中项目,配置一般就存放在web.config中,但是在.netcore中我们新建的项目根本就看不到web.config,取 ...

  2. C++封装C语言读写文件

    自己项目需要,封装C语言读写文件. 为了兼容低版本的编译器,因为低版本的编译器(比如,Vs2010,Vs2008)他们可能不支持 modern c++. 项目 使用 cmake管理的项目. 可以在 g ...

  3. 【LeetCode】544. Output Contest Matches 解题报告 (C++)

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

  4. 如何跳出springboot的service层中某一个方法?

    有一个需求,就是中断某个方法中的for循环 目前的做法是:for循环中,增加if判断,如果满足条件就return,会中断这个方法 for (int i = 0; i < totalIndex; ...

  5. SpringBoot中JPA使用动态SQL查询

    https://www.jianshu.com/p/f72d82e90948 可以重点关注方法二,把原生sql传入数据库去查询 好处是:更加灵活坏处是:拼接sql比较痛苦,也容易出问题,比如拼接的sq ...

  6. sqlsugar freesql hisql 三个ORM框架性能测试对比

    hisql与目前比较流行的ORM框架性能测试对比 总体测试结果 插入记录数 hisql(耗时) sqlsugar(耗时) freesql(耗时) 5条 0.0107秒 0.0312秒 0.02675秒 ...

  7. springMVC+redis+redis自定义工具类 的配置

    1. maven项目,加入这一个依赖包即可, <dependency> <groupId>redis.clients</groupId> <artifactI ...

  8. yii2安装配置完成后,网页打开报错yii\web\Request::cookieValidationKey must be configured with a secret key

    下载了Yii2.0的basic版,配置好nginx之后,浏览器访问,出现如下错误: Invalid Configuration – yii\base\InvalidConfigException yi ...

  9. NIO【同步非阻塞io模型】关于 文件io 的总结

    1.前言 这一篇随笔是写 NIO 关于文件输入输出的总结 /* 总结: 1.io操作包括 socket io ,file io ; 2.在nio模型,file io使用fileChannel 管道 , ...

  10. 公网ip定位原理-心得

    1.前言 正在做一个根据公网ip来定位到大体的位置,一般是精确到城市或地区, 如果想要精确到街道和地图一一对应,那得使用GPS才可以,这里不讨论. 2.科普 公网也就是外网,由运营商的机房服务器自动给 ...