java - 在 Java 中使用参数化构造函数创建对象时出错

标签 java class oop object

使用参数化构造函数创建对象时出现以下错误。

Main.java:6: error: constructor Cipher in class Cipher cannot be applied to given types

Cipher cy = new Cipher(k);              ^

必需:无参数

发现:整数

原因:实际参数列表和形式参数列表的长度不同

这是我的文件,看起来像

<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 

最佳答案

改变

public void Cipher(int k)

public Cipher(int k)

返回类型为void,这不是构造函数。在 Java 中,构造函数不指定返回类型。返回类型只是类的名称。

因此,在您的示例中,由于您尚未定义构造函数,Java 将提供以下格式的默认无参构造函数:

public Cipher() {}

因此,错误消息告诉您仅存在无参数构造函数,但您正在调用需要 int 参数的构造函数。

关于java - 在 Java 中使用参数化构造函数创建对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684205/

相关文章:

c++ - 尝试打印字符串返回时为什么会出现编译器错误?

c++ - 超市管理系统的类之间应该是什么关系?

java - 启动 Tomcat 9.0 时收到异常

c# - OOP 约定 - 单函数方法

oop - Go 中的构造函数

java - 删除 Java 文本文件内容后所有不需要的行

Java 相当于 Ruby ObjectSpace.each_object

java - 如何在骨架实现(即类)中实现一个接口(interface),该接口(interface)的两个实例可以相互依赖,而无需向下转型?

java - 日历比较不起作用

java - Java 可以在实例级别重写函数吗?