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

如何使类对象中的构造函数对象可以应用于给定类型?

壤驷升
2023-03-14
  1. 写一个名为Circle的类。该类需要一个名为radius的类型为double的字段(实例变量)

该类需要有一个参数半径为double类型的构造函数,并且需要初始化字段。

如果半径参数小于0,则需要将半径字段值设置为0。

编写以下方法(实例方法):

  • 方法名为getRadius,没有任何参数,需要返回半径字段的值。
  • 名为getArea的方法,没有任何参数,需要返回计算的面积(半径*半径*PI)。对于PI使用Math。PI常量。

该类需要有一个构造函数,两个参数半径和高度都是双精度类型。它需要调用父构造函数并初始化高度字段。

如果高度参数小于0,则需要将高度字段值设置为0。

编写以下方法(实例方法):

  • 名为getHeight的方法没有任何参数,它需要返回高度字段的值

测试示例

→ 测试代码:

Circle circle = new Circle(3.75);
System.out.println("circle.radius= " + circle.getRadius());
System.out.println("circle.area= " + circle.getArea());
Cylinder cylinder = new Cylinder(5.55, 7.25);
System.out.println("cylinder.radius= " + cylinder.getRadius());
System.out.println("cylinder.height= " + cylinder.getHeight());
System.out.println("cylinder.area= " + cylinder.getArea());
System.out.println("cylinder.volume= " + cylinder.getVolume());

→ 输出

circle.radius= 3.75
circle.area= 44.178646691106465
cylinder.radius= 5.55
cylinder.height= 7.25
cylinder.area= 96.76890771219959
cylinder.volume= 701.574580913447

注意:所有方法都应定义为public而不是public static。

注意:总共,您必须编写2个类。

注意:不要将主方法添加到解决方案代码中。

这是我的圆圈课

public class Circle {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        if(radius < 0){
            radius = 0;
            return radius;
        }else{
            return radius;
        }
    }

    public double getArea(){
        double area = (radius * radius * Math.PI);
        return area;
    }
}

这是我的汽缸课

public class Cylinder extends Circle{
    private double height;

    public Cylinder(double radius, double height) {
        super(radius);
        this.height = height;
    }

    public double getHeight() {
        if(height > 0){
            return height;
        }else{
            height = 0;
            return height;
        }
    }

    public double getVolume(){
        double area = getArea() * getHeight();
        return area;
    }
}

但问题是类对象中的构造函数对象不能应用于给定的类型,并且super(radius)不需要参数。我还在双面积=getArea()*getHeight()处得到一个错误;也就是说找不到符号。有人能帮我解决这个问题吗?

共有1个答案

刘骏祥
2023-03-14

私有双半径;

public Circle(double radius) {
    if (radius < 0) {
        this.radius = 0;
    } else {
        this.radius = radius;
    }

}

public double getRadius() {
    return radius;
}

public double getArea() {

    return this.radius * this.radius * Math.PI;

}

圆柱类:公共类圆柱延伸圆{私有双高;

public Cylinder(double radius, double height) {
    super(radius);
    if (height < 0) {
        this.height = 0;
    } else {
        this.height = height;
    }

}

public double getHeight() {
    return height;
}

public double getVolume() {
    return getArea() * this.height;
}

}

!!!但重要的是把圆柱延伸圆放在我的课程中,为了正确编译。。。

 类似资料:
  • 我在弄清楚如何根据给定的类型在构造函数中创建一个新对象时遇到了困难。 例如,我有一个机器人驱动程序,它有一个默认构造函数,不接受任何参数,并创建一个基本的机器人。但我有另一个构造器,根据这个论点创造了一个新的机器人。 是一个接口。那么,如果我想创建,使其是另一种类型,比如?我需要做一些类型的铸造吗?

  • 我试图使一个用户类和使用类来处理登录,但从某种原因我的用户类构造函数是读取我的mysqli对象作为一个字符串 这是我的密码 Class.php mysql.php checklogin.php 它给了我这个错误 可捕获的致命错误:在第13行的C:\wamp\www\class.php中,类mysqli的对象无法转换为字符串 我要把头发拔出来了,有什么想法吗?

  • 我得到了下面的代码,使用数组来查找一些prim数。然而,当试图编译我的用户类PalindromeArrayUser时,它说——“类中的构造函数不能应用于给定的类型” 要求:int。找到:没有论点。原因:实际参数和正式参数列表的长度不同。 但是,我已经向构造器传递了一个int值(与我的蓝图中设计的方式相同)。我不太明白问题来自哪里。谢谢。 这是我的两节课 而这就是我的用户类问题的来源。上面的类编译良

  • 问题内容: 我通过()存储了一个类列表,想实例化一个吗?这可能吗? 在我追求的方法看来,但它不支持构造函数? 问题答案: 您不能以这种方式构造新的类。 如果您具有类的名称,则可以使用Class.forName(className)加载/引用一个类。 如果您有要创建的类的字节码,则可以让类加载器加载字节码并为您提供该类。这可能比您预期的要先进。

  • 我有2个子类:职员、学生,他们属于超类人。 以下是我的老师给出的代码(任务): 我不知道我可以输入什么来创建一个没有参数的对象。它总是出现这样的错误:Person类中的构造函数Person不能应用于给定的类型;必选:java.lang.String,int 我在网上查过,有两种方法可以解决这个问题: > < li> 在超类中添加默认值:< code > Person()//不带参数。 在子类学生中

  • 在问我的问题之前,我想把一些事情说清楚。首先,我是Java和编程的新手。第二,这是我的第一个帖子,所以如果我做错了什么,请宽容对待我。最后,我不想要任何具体的解决办法,我的任务在任何回应这篇文章。这些问题要我来解决。我想要的是一个解释,为什么我的测试代码不能编译/运行。为了更好地理解这个问题,我将粘贴赋值信息,然后是给定的驱动程序类,然后是驱动程序类访问的我的类代码。我的编译器错误显示在标题中,但