无法编译java错误变量可能尚未初始化

时间:2014-12-19 07:09:50

标签: java

我无法编译此程序,我尝试重写程序并得到错误。如果我删除了新的tes2(kata,key);到新的tes2();再次出错,java:21:错误:类tes2中的构造函数tes2不能应用于给定的类型;请帮忙!抱歉我的英文不好

import java.util.*; 
import java.io.*;
public class mod2 {

    public static void main(String[] args)throws IOException {
    String kata;
    int key;
    System.out.print("          PROGRAM CAESARCHIPER  \n");


    tes1 obj = new tes1();
    tes2 objj = new tes2(kata, key);
    obj.inputt();
    objj.inputt();
    objj.asd();
    }
  }

class tes1 {

DataInputStream input = new DataInputStream(System.in);

public void inputt() throws IOException{

System.out.print("Input Kata = ");
String kata=input.readLine();

}
}

class tes2 extends tes1{
public String kata;
public int key;

public tes2(String kata, int key){
    this.kata=kata;
    this.key=key;
}

public void inputt() throws IOException{
    System.out.print("Key Encrypt = ");
    int key=Integer.parseInt(input.readLine());
}

public void inputt1()throws IOException{
    super.inputt();
}

public void asd(){
    String hasil = "" ;
    for(int i = 0; i < kata.length() ; i++)
    {
        int ascii = kata.charAt(i);
        int cipher = ascii + key ;
        hasil = hasil + (char)cipher;
    }
    System.out.println("Kata Yang Telah Di Encrypt = " + hasil );

}
}

2 个答案:

答案 0 :(得分:1)

在java中,必须初始化局部变量。

替换:

String kata;
    int key;

使用

 String kata = null;
    int key = 0;

答案 1 :(得分:0)

当您调用构造函数String kata; int key;时,您的变量tes2 objj = new tes2(kata, key);不会保存值,例如kata="kata"; key=1将起作用。在你的代码中调用inputt和inputt1 mehtodes,你可以调用构造函数