package 的用法
javac -d . Who.java
/ p1 Z! i! P& ]2 t3 v2 J7 z _; Z-d〈dir〉的作用时在dir目录下自动生成package的包目录。 这样在 java tool.net.Who localhost就能正常运行了。至此我明白了package的用法7 k4 b/ I ?% V1 f
package 的用法。
0 {! b. ]# X/ k在JAVA里package关键字是用来 访问控制的(附表1-1),今天下午在编写代码的时候却出了个小错误,以下面的代码为例:
/ ?$ |1 H+ y% B6 V8 N package tool.net;
8 Z. I; `# f; s import java.net.*;- L7 {9 V: o6 |- ` y0 [/ V
public class Who{//显示所给域名的IP地址
3 w8 R$ w6 g! G, R( r0 k7 j4 y public static void main(String[] args)throws Exception{
3 W8 |6 b/ q5 h( Z+ p4 R, M if(args.length!=1){System.out.println("Useage:Who hostname");}. S, W# b4 x) S+ ]: |: e) C
InetAddress a = InetAddress.getByName(args[0]);7 u) r5 |: y) }: p' ?3 {
System.out.println(a);; b( n. I$ n' B4 t0 e2 T4 A
}
2 z; v8 K( i. n) y. d6 J }//此代码已经过调试完全没友问题
: Z$ H9 T q/ M* i最后编译的时候我开始是这样的:javac Who.java 可以通过并可以在.目录下生成Who.class文件,但java Who是却提示找不到class文件我晕了,这是什么原因那(我的classpath配置是没友问题的)? 后来在一个CSNDBLOG上找到了答案 编译时应该这样 " M! E7 m# S; c( y9 j0 V
javac -d . Who.java
# ?/ M) F' A, @/ a1 Q8 X-d〈dir〉的作用时在dir目录下自动生成package的包目录。 这样在 java tool.net.Who localhost就能正常运行了。至此我明白了package的用法。6 T) t2 E3 y' R) F+ H
, o: l+ A- c5 k6 O* w `+ S表1-1 ' x+ R/ r/ t: J) c
, V; g! b& `0 S* C
9 G5 E9 U" W1 P
! a) n0 F; q7 m2 ~& W; z) w说明:
6 W6 U% g& G, h/ ]( x) P, N(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
9 D; R: `$ S, j9 @6 T(2) 在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。; m5 G9 e, ?+ d
(3) 在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。: J) `& x* A- o8 i, x& S
3 R! e& h2 {: K" h' r9 Z" J- L; Q[ 本帖最后由 huihui0103 于 2006-4-11 13:49 编辑 ]