JavaSe基础XX14——包

来源:互联网 发布:找车拉货用什么软件 编辑:程序博客网 时间:2024/05/22 07:46






类所属于包。

*(包-包之间访问-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:只有不同包的子类能用。



           publicprotecteddefault  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





改正:



工具类。

0 0
原创粉丝点击