java在同一类中使用两次类名时传递变量

java在同一类中使用两次类名时传递变量,java,function,class,Java,Function,Class,在上面的代码中,“blah”应该引用公共类“test”,但是我被告知将“test()”的可见性更改为公共,因为我在“test blah=new test(null);”行中得到一个错误。我很困惑为什么“公共类测试”没有被“blah”引用,以及“test()的第二个实例在这里是如何被使用的。我感谢任何帮助我理解这个问题 显示的代码有两个问题 1) 您不能将new()作为方法名作为new它是一个关键字 2) 行测试blah=新测试(空)正在调用另一个包中的测试类的构造函数。所以默认可见性应用于测试类

在上面的代码中,“blah”应该引用公共类“test”,但是我被告知将“test()”的可见性更改为公共,因为我在“test blah=new test(null);”行中得到一个错误。我很困惑为什么“公共类测试”没有被“blah”引用,以及“test()的第二个实例在这里是如何被使用的。我感谢任何帮助我理解这个问题

显示的代码有两个问题

1) 您不能将
new()
作为方法名作为
new
它是一个关键字

2) 行<代码>测试blah=新测试(空)正在调用另一个包中的测试类的构造函数。所以默认可见性应用于测试类中的测试(…)构造函数。根据java可见性规则,您必须公开在不同的包中访问它


进行这些更改后,您的代码应该可以正常工作

请显示真实的代码,尽可能接近有效的代码,而不是空洞的代码,以及完整的错误消息。如果demo.test有多个构造函数,则传入“null”可能不会命中您期望的公共构造函数。如果您想使用默认构造函数,它应该是
testblah=newtest()您的构造函数是包私有的,您似乎从另一个包引用了您的构造函数(否则您就不必导入
demo.test
)。因此,将构造函数公开,一切都应该工作。这很有意义,在同一个包中,我也调用了构造函数,但我不需要公开它,我没有意识到不同包中的可见性问题。非常感谢。
public class test extends AbstractTableModel {

    public static void main(String[] args) {
    }

    public String valuePass(int rowIn)
    {
        String value = "open";
        return value;
    }


    test(mdpTEST parentPanel) {
        m_parentPanel = parentPanel;
    }

    ...
}

import demo.test;
public class order{

    public void new() 
    {
        test blah = new test(null);
        String text = blah.valuePass(0);    
    }

}