当前位置: 首页 > 知识库问答 >
问题:

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

姬捷
2023-03-14

我在创建对象和参数化构造函数时遇到以下错误。

Main.java: 6:错误:构造函数Cipher类中的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 

共有2个答案

亢嘉茂
2023-03-14
<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
        } 

    }
越雨泽
2023-03-14

改变

public void Cipher(int k)

public Cipher(int k)

如果返回类型为< code>void,则不是构造函数。在Java中,构造函数不指定返回类型。返回类型只是类的名称。

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

public Cipher() {}

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

 类似资料:
  • 我想有一个java中的构造函数参数化一个类来运行这个类,类似于这个 其中classToRun可能的类没有共同的祖先,但都有方法someStaticMethod。 但也存在一些问题,比如内部类不能有静态方法,类不能被转换为类,等等。 有一些用类方法参数化的解决方案,如 如何在Java中传递类作为参数? 在java中将类作为参数传递给方法 但对建造者来说不是。 这样做的正确解决方案是什么?

  • 这是我的代码: 以下是我的任务要求: 一个参数化构造函数,将接收endpoint(作为点)、方向(作为int)和样式(作为字符串)。如果接收到的点或字符串为空,则抛出新的IllegalArgumentException( 我知道我检查样式是虚线、虚线还是双精度的部分出了问题,因为当我把它注释出来时,除了那个部分,所有的东西都工作了。就现在的情况而言,它只是在所有事情上抛出了非法的辩论例外。 我有一

  • 问题内容: 在Java中,数组是AN对象。我的问题是…创建新数组时是否调用了Object构造函数?我们希望利用这一事实来为Object构造函数提供一些额外的字节码,以检查所构造数组的长度。那行得通吗? 问题答案: 就Java语言规范而言,尽管它们都使用关键字,但类实例创建表达式和数组创建表达式是不同的表达式形式,每种都有自己的规则。数组创建表达式的描述未提及调用构造函数。

  • 我正在从一个教程中重构下面的代码。当我< s >运行编译它时,我得到以下错误: Vierbeiner类中的构造函数Vierbeiner不能应用于给定类型;必需:java.lang.找到字符串:无参数原因:实际参数列表和正式参数列表长度不同 我的理解是,发生这个错误是因为父类Vierbeiner有一个需要字符串参数的构造函数,而没有一个不需要参数的构造函数。我不明白的是,为什么我在没有创建Hund类

  • 我编写了以下代码和驱动程序,但我不知道如何使用两个构造函数创建银行账户对象。一个构造函数获取初始余额,第二个构造函数在没有钱的情况下开设账户。此外,Account tBalance是否应该包括有效性检查? 或者,我可以执行以下操作: 将费用作为描述银行账户的一部分。根据需要更新BankAccount类。用户应该能够为每个帐户设置费用金额,并通过一种方法添加费用。向驱动程序添加代码以演示费用功能。(

  • 在hibernate的xml方法中,创建hibernate SessionFactory对象时使用