【问题标题】:declaring and assigning variable [closed]声明和分配变量
【发布时间】:2016-01-27 15:21:45
【问题描述】:

这个类有一个名为 Paraula 的变量,我给它赋值时遇到了麻烦。

public Paraula() {
lletres = new char[MAXIM];
llargaria = 0;
}

public static Paraula llegir() {
Paraula nova = new Paraula();
botarBlancs();
while ((lletra != fiSequencia) && // No ha acabat la seqüència
        (lletra != blanc)) { // Hi ha prou espai
    nova.lletres[nova.llargaria++] = lletra;
    lletra = leerCarTeclado();
}
return nova;
}

public String toString() {
String msg = "";
for (int idx = 0; idx < llargaria; idx++) {
    msg += lletres[idx];
}
return msg;
}

public boolean esIgualA(Paraula b) {
boolean iguals = llargaria == b.llargaria;
for (int idx = 0; (idx < llargaria) && iguals; idx++) {
    iguals = lletres[idx] == b.lletres[idx];
}
return iguals;
}

public static boolean iguals(Paraula a, Paraula b) {
return a.esIgualA(b);
}

public boolean buida() {
return llargaria == 0;
}

public static void botarBlancs() {
while (lletra == blanc) {
    lletra = leerCarTeclado();
}
}

public static void botarParaula() throws Exception {
while ((lletra != '.') && (lletra != blanc)) {
    lletra = leerCarTeclado();
}
}
static public char leerCarTeclado() {
char res = '.';
if (frase != null) {
    res = frase[indice++];
}
return res;
}

我想声明两个名为的 Paraula 变量:tipo(使用从字符序列读取的方法 llegir())和 tipo1:

Paraula tipo;
        tipo = Paraula.llegir();

              Paraula tipo1;
              tipo1  = {   
              Paraula.lletres[0] = 't';
              Paraula.lletres[1]='1';
              Paraula.llargaria = 2;
       }

当我声明tipo1 时,它报告一个非法的表达式开始。代码有什么问题?

谢谢!

【问题讨论】:

    标签: java variables variable-assignment declaration


    【解决方案1】:

    而不是写下面which id not valid Java,

              Paraula tipo1;
              tipo1  = {   
              Paraula.lletres[0] = 't';
              Paraula.lletres[1]='1';
              Paraula.llargaria = 2;
    

    也许你打算写

              Paraula tipo1 = new Paraula();
              tipo1.lletres[0] = 't';
              tipo1.lletres[1]='1';
              tipo1.llargaria = 2;
    

    不过,更简洁的方法是将字符串传递给构造函数

      Paraula tipo1 = new Paraula("t1");
    

    你的构造函数在哪里

    public Paraula(String s) {
        lletres = s.toCharArray();
        llargaria = lletres.length;
    }
    

    【讨论】:

      【解决方案2】:

      当我声明tipo1 时,它报告一个非法的表达式开始。代码有什么问题?

      您编写的代码对 java 无效。试试这个方法:

      Paraula tipo1 = new Paraula();
      tipo1.lletres[0] = 't';
      tipo1.lletres[1] = '1';
      tipo1.llargaria = 2;
      

      【讨论】:

      • 这并不能解释最初的问题是什么,因此无助于提问者将来避免它。
      • 代码无效,添加到答案中。
      【解决方案3】:

      您没有正确初始化tipo1。要定义一个新的Paraula 对象,您需要调用一个构造函数。 (tipo 已经初始化好了,但这也不太合适)。考虑这样的构造函数:

      public Paraula(char[] c, int i) {
          lletres = c;
          llargaria = i;
      }
      

      tipo1 初始化

      tipo1 = new Paraula(new char[]{'t','1'}, 2);
      

      【讨论】:

        猜你喜欢
        • 2014-08-27
        • 2016-10-28
        • 2012-11-02
        • 2015-12-23
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多