您的位置:首页 > 其它

包的应用

2015-10-08 23:28 183 查看
package pack;

class PackageDemo{
public static void main(String[] args){
packa.Packa a = new packa.Packa();
a.show();
a.method();
}
}

/*
PackageDemo.java:5: 错误: 找不到符号
Packa a = new Packa();
^
符号: 类 Packa
位置: 类 PackageDemo
PackageDemo.java:5: 错误: 找不到符号
Packa a = new Packa();
^
符号: 类 Packa
位置: 类 PackageDemo
2 个错误

错误原因:类名写错
因为类名的全名是:包名.类名
________________________________________
PackageDemo.java:5: 错误: 找不到符号
pack.Packa a = new pack.Packa();
^
符号: 类 Packa
位置: 程序包 packa
PackageDemo.java:5: 错误: 找不到符号
pack.Packa a = new pack.Packa();
^
符号: 类 Packa
位置: 程序包 packa
2 个错误

错误原因:packa包不在当前目录下
需要设置classpath告诉jvm去哪里找指定的packa包
————————————————————————————————————————————————
PackageDemo.java:5: 错误: Packa在packa中不是公共的; 无法从外部程序包中对其进行访

packa.Packa a = new packa.Packa();
^
PackageDemo.java:5: 错误: Packa在packa中不是公共的; 无法从外部程序包中对其进行访

packa.Packa a = new packa.Packa();
^
2 个错误

错误原因:有了包,范围变大,一个包中的类要被访问,必须有
足够大的权限。被访问的类的修饰符加上public
________________________________________________
PackageDemo.java:6: 错误: show()在Packa中不是公共的; 无法从外部程序包中对其进行
访问
a.show();
^
1 个错误

错误原因:类公有后,被访问的成员也要公有才可以被访问。

总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
不同包中的子类还可以直接访问父类中被protected权限修饰的成员
包与包之间可以使用的权限只有两种:public和protected

public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 Ok ok
不同包中 ok

*/

package packa;

public class Packa extends packb.Packb{
public void show(){
System.out.println("A hello");

}
}

/*
G:\javaTest>javac -d . \myclass Packa.java
javac: 无效的标记: \myclass
用法: javac <options> <source files>
-help 用于列出可能的选项

G:\javaTest>javac -d .\myclass Packa.java


G:\javaTest>java pack.PackageDemo
A hello

类名为公有,其类名必须与文件名一致。
一个文件中不可以出现两个或以上公有的类或接口。

为了简化类名的书写,使用import,import导入的是包中的类
建议不要写通配符*,需要用到包中的哪个类就导入哪个类

建立包名不要重复,可以使用url来定义,url是唯一的

www.itcast.cn

package cn.itcast.demo
package cn.itcast.test

*/

package packb;

public class Packb{
protected void method(){
System.out.println("haha");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: