2014-12-19 100 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你打電話給構造函數