您的位置:首页 > 编程语言 > Java开发

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






改正:



工具类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: