2014-12-19 95 views
-3

我无法编译该程序,我尝试重写程序并获取错误。如果我删除了新的tes2(kata,key);到新的tes2();错误再次发生,java:21:错误:类tes2中的构造函数tes2不能应用于给定的类型;请帮助!对不起我的英文不好无法编译Java错误变量可能未被初始化

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

错误消息是非常清楚。你不需要在类tes2中没有参数的构造函数。 – Jens 2014-12-19 07:13:04

+0

在你的课堂上提供构造函数 – 2014-12-19 07:13:40

+0

不错。如果您要求人们阅读,请正确缩进您的代码。 – khelwood 2014-12-19 07:46:44

回答

1

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

替换:

String kata; 
    int key; 

随着

String kata = null; 
    int key = 0; 
+0

三江源,但现在我又在线程遇到错误。 输入卡塔= SFD 密钥来加密= 3 异常 “主” 显示java.lang.NullPointerException \t在tes2.asd(mod2.java:62) \t在mod2.main(mod2.java:26) 过程完成。 – newbie 2014-12-19 07:16:54

+0

这是简单的。将你的方法public void asd()更改为public void asd(String kata)。并且它们的方法调用必须是objj.asd(kata) ;并且你的两个方法obj.inputt(); objj.inputt1();必须有返回类型并且接受这个返回数据在你的main方法中。 – 2014-12-19 07:22:47

+0

obj.inputt(); objj.inputt1();必须返回在你的主要方法中输入并接受这个返回数据。 对不起,但如何使返回类型和返回数据?我是一个新手抱歉。 – newbie 2014-12-19 07:26:50

0

你的变量String kata; int key;当你调用例如kata="kata"; key=1构造tes2 objj = new tes2(kata, key);将工作不要保存值。在你的代码调用inputt和inputt1 mehtodes befor你打电话给构造函数

相关问题