我无法编译此程序,我尝试重写程序并得到错误。如果我删除了新的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 );
}
}
答案 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,你可以调用构造函数