声明和赋值变量

时间:2016-01-27 15:21:45

标签: java variables variable-assignment declaration

这个类有一个名为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时,它会报告非法的表达开始。代码有什么问题?

谢谢!

3 个答案:

答案 0 :(得分:2)

而不是编写以下id无效的Java,

  Paraula tipo1 = new Paraula("t1");

也许你打算写

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

然而,更简洁的方法是将String传递给构造函数

{{1}}

你的构造函数在哪里

{{1}}

答案 1 :(得分:0)

  

当我宣布tipo1时,它会报告非法的表达开始。代码有什么问题?

您为java编写的无效代码。试试这个:

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

答案 2 :(得分:0)

您未正确初始化tipo1。要定义新的Paraula对象,需要调用构造函数。 (tipo初始化正常,但这也不合适)。考虑一个像:

这样的构造函数
public Paraula(char[] c, int i) {
    lletres = c;
    llargaria = i;
}

tipo1初始化

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