java - 在嵌套类中创建对象的情况

时间:2012-11-14 00:34:44

标签: java class nested

我看了四周,似乎我有正确的语法:

QueueOfChars queue = new QueueOfChars();
QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode();

但是我尝试创建的charNode对象出现了编译错误

  

Driver3.java:22:错误:类
中的构造函数QueueOfCharsNode   QueueOfChars.QueueOfCharsNode不能应用于给定类型;
           QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode();

     


要求:char
发现:没有争论的理由:实际   和形式参数列表长度不同
1错误

收到此错误是因为我有一个QueueOfCharsNode(char ch)

public class QueueOfChars{

      public class QueueOfCharsNode{
         QueueOfCharsNode next;
         QueueOfCharsNode prev;
         char c;

         public QueueOfCharsNode(char ch){ //line causing the error
            c = ch; 
            next = prev = null;
         }

当我为它制作对象时,如何才能读取“公共类QueueOfCharsNode”行?

2 个答案:

答案 0 :(得分:5)

您缺少一个无参数构造函数。

您需要一个构造函数声明,如下所示:

public QueueOfCharsNode() { }

QueueOfCharsNode课程中。

答案 1 :(得分:1)

QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode();

你的内部类QueueOfCharsNode在其构造函数中需要char asan参数。 试试

QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode('c');//some character that you wanna pass

或在内部类中创建一个no-args构造函数,如。

public UueueOfCharsNode() {

}

QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode();
在这种情况下

会起作用