我希望有很多很多的爱,如果没有很多的爱,我希望有很多很多的钱;没有很多的钱,我希望拥有健康! I am like the road in the night listening to the footfalls of its memories in silence.

Java:不同package下相同类名的调用方法

上一篇 / 下一篇  2016-02-16 15:27:25 / 个人分类:Java

总结:从下面的验证结果来我们可以看到,程序会优先处理为import进来类对象,所以为了不引起混乱的情况,不管是否在本包下调用还是其他的包同时用到它们,我们在创建类对象的时候,所定义的对象new时都加入包名称,见下面最后的图示。
良好的编码习惯也应该如此,避免将来发生同类名的情况。

 

 

现在有两个类,它们名称相同,但所在的package不同。

其结构如下图所示:

 

 

 

两个class A的代码如下:

 

  1. package pka;  
  2. public class A {  
  3.     public void printA(){  
  4.         System.out.println("print:pka.A");  
  5.     }  
  6. }  

 

  1. package pkb;  
  2. public class A {  
  3.     public void printA(){  
  4.         System.out.println("print:pkb.A");  
  5.     }  
  6. }  

 

 

另外Main.java测试类:

情况1:

Main中调用pka.A

Main代码如下:

 

  1. package pka;  
  2. public class Main {  
  3.     public static void main(String [] args){      
  4.         A a=new A();  
  5.         a.printA();       
  6.     }  
  7. }  

 

测试结果为:

print:pka.A

 

 

 

情况2:

当我们添加了对pkb.A的import之后,情况就不同了。

Main代码如下:

 

 

  1. package pka;  
  2. import pkb.A;  
  3. public class Main {  
  4.     public static void main(String [] args){  
  5.       
  6.         A a=new A();  
  7.         a.printA();       
  8.     }  
  9. }  

 

测试结果为:

print:pkb.A

此时通过A a=new A() ,创建的就不是本package中的A了,而是import进来的pkb中的A

 

此时我们想要创建pka中的A的对象时就必须使用以下方式了:

  1. package pka;  
  2. import pkb.A;  
  3. public class Main {  
  4.     public static void main(String [] args){      
  5.         pka.A a=new pka.A();  
  6.         a.printA();//结果为print:pka.A       
  7.     }  
  8. }  

 

 


TAG: java Java

 

评分:0

我来说两句

Open Toolbar