JavaSe基础XX14——包
2014-08-21 14:24
316 查看
类所属于包。
*(包-包之间访问-protected)
不同的包之间类与类之间的访问。
之前的是默认包。
包的出现,可以将字节码文件和源文件分开。
第一个错误:
class PackageDemo { public static void main(String[] args) { //packa.DemoA d = new packa.DemoA(); DemoAbc d = new DemoA(); d.show(); } } /* PackageDemo.java:8: 找不到符号 符号: 类 DemoA 位置: 类 mypack.PackageDemo DemoA d = new DemoA(); ^ PackageDemo.java:8: 找不到符号 符号: 类 DemoA 位置: 类 mypack.PackageDemo DemoA d = new DemoA(); ^ 2 错误 原因:类名写错。 因为DemoA类已经有包的所属,所以必须要明确其报名。 记住:DemoA这个名词错的。 正确名称是报名.类名 packa.DemoA --------------------------------------
*/
</pre>第二个错误:<p></p><p></p><pre name="code" class="java">PackageDemo.java:8: 软件包 packa 不存在 packa.DemoA d = new packa.DemoA(); ^ PackageDemo.java:8: 软件包 packa 不存在 packa.DemoA d = new packa.DemoA(); ^ 2 错误 原因是在当前目录下没找到,因为packa存放在其他目录下, 应该配置一个classpath。
第三个错误:
PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进 行访问 packa.DemoA d = new packa.DemoA(); ^ PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进 行访问 packa.DemoA d = new packa.DemoA(); ^ 2 错误
第四个错误:
PackageDemo.java:9: show() 在 packa.DemoA 中不是公共的;无法从外部软件包中对其进 行访问 d.show(); ^ 1 错误
做了以上的修改,就可以了正常的运行了。
总结:
总结: 包与包之间的类进行访问,被访问的包中的类必须是public的,被访问的包中的类的方法也必须是public的。
问题:包与包之间的类是不同的所属,那能继承么?
package mypack; class PackageDemo { public static void main(String[] args) { //packa.DemoA d = new packa.DemoA(); DemoAbc d = new DemoA(); d.show(); packb.DemoB b = new packb.DemoB(); b.method(); System.out.println("Hello Package!"); } }
package packa; public class DemoA extends packb.DemoB { public void show() { method(); System.out.println("demoa show run"); } }
package packb; public class DemoB { public void method() { System.out.println("DemoB method run "); } }
=================================================
package packb; public class DemoB { /*public*/protected/*保护*/ void method() { System.out.println("DemoB method run "); } }
protect:只有不同包的子类能用。
public protected default private 同一类中 ok <span style="white-space:pre"> </span> ok <span style="white-space:pre"> </span> ok <span style="white-space:pre"> </span> ok 同一包中 ok <span style="white-space:pre"> </span> ok <span style="white-space:pre"> </span> ok <span style="white-space:pre"> </span> 子类中 ok <span style="white-space:pre"> </span> ok <span style="white-space:pre"> </span> 不同包中 ok
*面向对象(包-导入)
*面向对象(Jar包)
会多出压缩包的一个清单文件。
Jar包的好处——
package pack; /* Jar:java的压缩包。 */ class JarDemo { public static void main(String[] args) { System.out.println("Hello Jar!"); } } //./pack //./haha.jar/pack
改正:
工具类。
相关文章推荐
- JavaSe基础XX14——习题解答_1
- JavaSe基础XX14——习题解答_2
- JavaSe基础XX15——线程_3
- JavaSe基础XX15——线程_1
- JavaSe基础XX16——Eclipse使用
- JavaSe基础XX09——面向对象
- JavaSe基础XX11——面向对象——[内部类]
- JavaSe基础XX05——面向对象
- JavaSe基础XX17——常用对象API-集合框架_5_ 工具类
- JavaSe基础XX15——线程_2
- JavaSe基础XX02——数组
- JavaSe基础XX18——IO流_1
- 黑马程序员_JavaSE基础14 之 线程间通信 等待唤醒机制 多生产多消费者 ...
- JavaSe基础XX17——常用对象API-集合框架_2
- JavaSe基础XX17——常用对象API-集合框架_3
- JavaSe基础XX16——API对象-String
- JavaSe基础XX04——多维数组
- JavaSe基础XX03——数组
- JavaSe基础XX08——面向对象
- JavaSe基础XX12——面向对象——[异常_2]