如何引用具有冲突名称的特定类?

时间:2013-05-28 07:55:18

标签: java oop

我无法在以下代码中创建java.awt.Rectangle对象。但是,我仍然可以创建Rectangle对象... 请解释一下为什么会这样?

package examples;
import java.awt.*;
public class Rectangle {
    public static void main(String[] args) {
        java.awt.Rectangle rect = new Rectangle();
        System.out.println(rect.toString());    
    }
}

3 个答案:

答案 0 :(得分:7)

  

请解释为什么会这样?

您正在创建 Rectangle类的实例,但尝试将其分配给java.awt.Rectangle变量。您可以将其更改为:

java.awt.Rectangle rect = new java.awt.Rectangle();

当然,您应该尽可能地避免这种命名冲突,但是您可以始终使用完全限定名称,只要该类在包中即可。 (在默认包中,事情变得棘手,你应该避免。)

答案 1 :(得分:0)

您的班级Rectangle会隐藏包Rectangle中的班级java.awt。您需要完全限定的名称:

java.awt.Rectangle rect = new java.awt.Rectangle();

答案 2 :(得分:0)

喜欢

package examples;
import java.awt.*;

public class Rectangle {
public static void main(String[] args) {
    java.awt.Rectangle rect = new java.awt.Rectangle();
    System.out.println(rect.toString());    
}
}