我在创建对象和参数化构造函数时遇到错误。
Main.java:6:错误:构造函数Cipher类中的密码不能 适用于给定类型
Cipher cy = new Cipher(k); ^
必需:没有参数
发现:int
原因:实际和正式的参数列表长度不同
这是我的文件看起来像
<b>Main.java</b>
public class Main {
public static void main(String []args){
int k=8;
Cipher cy = new Cipher(k);
String encrypted_msg = cy.encrypt(message);
String decrypted_msg = cy.decrypt(encrypted_msg);
view1.displayResult("Decrypted message: "+decrypted_msg);
}
}
<b>Cipher.java</b>
import java.util.*;
public class Cipher
{
private int key;
// Constructor
public void Cipher(int k)
{
key = k;
}// end Constructor
} // end class
答案 0 :(得分:7)
更改
public void Cipher(int k)
到
public Cipher(int k)
返回类型为void
,这不是构造函数。在Java中,构造函数不指定返回类型。返回类型只是类的名称。
因此,在您的示例中,由于您尚未定义构造函数,因此Java将提供以下格式的默认无参数构造函数:
public Cipher() {}
因此错误消息告诉您只存在无参数构造函数,但您正在调用需要int
参数的构造函数。
答案 1 :(得分:1)
<b>Cipher.java</b>
import java.util.*;
public class Cipher
{
private int key;
public Cipher(int k) //remove the void
{
this.key = k; //use this for object level reference
}
}