当前位置: 技术问答>java相关
抢分问题!!!!快快快!!!
来源: 互联网 发布时间:2014-12-31
本文导语: package到底有何用? 建一个目录abc,编一个程序package abc;然后把*.class 拷入abc目录中, 用import abc;在另一个程序中引入 如不用package,也能这样引入,他到底何用??? | 答案是唯一的 就是 命名空...
package到底有何用?
建一个目录abc,编一个程序package abc;然后把*.class 拷入abc目录中,
用import abc;在另一个程序中引入
如不用package,也能这样引入,他到底何用???
建一个目录abc,编一个程序package abc;然后把*.class 拷入abc目录中,
用import abc;在另一个程序中引入
如不用package,也能这样引入,他到底何用???
|
答案是唯一的
就是 命名空间的管理
打个比方
a写了一个类叫Util
b写了一个类也叫Util
那启不是重了.
但java中类名指的是 包名+类名
所以如果a,b都按规则起包名的话
那就是a.Util/b.Util 就不重了
包名的规则是什么呢,就是最好和域名联系在一起
所以就有了
com.ibm.xxxClass
com.sun.xxxClass
就是 命名空间的管理
打个比方
a写了一个类叫Util
b写了一个类也叫Util
那启不是重了.
但java中类名指的是 包名+类名
所以如果a,b都按规则起包名的话
那就是a.Util/b.Util 就不重了
包名的规则是什么呢,就是最好和域名联系在一起
所以就有了
com.ibm.xxxClass
com.sun.xxxClass
|
老兄,如果你import的两个包中都有一个叫Applet的类的存在,
那你在程序里如果直接只写Applet的话,
编译器就会告诉你有重名存在,要你写清楚一点,也就是要清楚地这样写:
public class xxxx extends java.awt.Applet 而不是 public class xxx extends Applet,
否则根本就通不过编译的,不信尽管一试。
biti_9512207讲的没错,这就是一个命名空间的问题,
而且这是一个优点,不是你想象的一个不方便之处,
可以去参看一下为什么C++中要引入namespace这个关键字的用意,
这正是java是从C++中发展过来,而且吸收了C++的教训之后才拥有的先进特性之一!
那你在程序里如果直接只写Applet的话,
编译器就会告诉你有重名存在,要你写清楚一点,也就是要清楚地这样写:
public class xxxx extends java.awt.Applet 而不是 public class xxx extends Applet,
否则根本就通不过编译的,不信尽管一试。
biti_9512207讲的没错,这就是一个命名空间的问题,
而且这是一个优点,不是你想象的一个不方便之处,
可以去参看一下为什么C++中要引入namespace这个关键字的用意,
这正是java是从C++中发展过来,而且吸收了C++的教训之后才拥有的先进特性之一!
|
当你要写JAVA的程序是,绝大多数情况下要同时使用多个文件中的类或interface,这时如果用import指令一个一个的把类导入,就会很费时间,所以站在管理角度上讲,就需要用package把这些interface组织起来。通过类package的组织和导入,就可以很方便的导入需要的类和interface函数库。
另外,在同一个package中的类,可以直接引用(除private、protect),不需要再导入了。
另外,在同一个package中的类,可以直接引用(除private、protect),不需要再导入了。
|
lmy2000说的是工程管理方面了
其实在一个package里面如果定义class
的时候没有标注是public之类的
那么就是java的default属性,在同包里面是
可以引用的
对于开放性来说:
PUBLIC>PROTECT>DEFAULT>PRIVATE
所以可以节省了思考类的访问问题
其实在一个package里面如果定义class
的时候没有标注是public之类的
那么就是java的default属性,在同包里面是
可以引用的
对于开放性来说:
PUBLIC>PROTECT>DEFAULT>PRIVATE
所以可以节省了思考类的访问问题
|
jdk就是一个很好的例子,它含有很多包如:java.lang;java.applet;java.awt还有很多。
当你要引用这些包时,你说是把源文件再考一遍到你的程序中还是只要指定一下classpath
变量方便。如果你只有几个类当然没什么必要打包,当你的项目很大是呢,不打包把他们放
在一起,那你自己都不知道管理你类了,更无从优化你的代码。好好想想吧。
当你要引用这些包时,你说是把源文件再考一遍到你的程序中还是只要指定一下classpath
变量方便。如果你只有几个类当然没什么必要打包,当你的项目很大是呢,不打包把他们放
在一起,那你自己都不知道管理你类了,更无从优化你的代码。好好想想吧。
|
运行包中的类,与运行不是包中(也就是指没有用package声明过的类)是一样的,
java 类名
但是要指出的一点,一个类的名字全称就应该是 包名.类名! 只有一个例外就是没有用package声明过的类,包名是空的。所以运行一个包中的类例子如下:
package abc;
public class def {
public static void main(String argv[]) {
....
}
....
}
运行方法为: java abc.def
你该知道一个类可运行必须要有一个main方法吧。:)
java 类名
但是要指出的一点,一个类的名字全称就应该是 包名.类名! 只有一个例外就是没有用package声明过的类,包名是空的。所以运行一个包中的类例子如下:
package abc;
public class def {
public static void main(String argv[]) {
....
}
....
}
运行方法为: java abc.def
你该知道一个类可运行必须要有一个main方法吧。:)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。