大鹅努力学编程 2023-03-27 22:43 采纳率: 85.7%
浏览 87
已结题

报错error: incompatible types: boolean cannot be converted to int

import java.util.Scanner;
class Circle{
    private int radius;
    //为radius添加set方法,接收用户输入的半径,如果用户输入半径为<=0,则让半径的值为2
    public void setter(int radius){
        if(radius<=0){
            radius=2;
        }
        else
            this.radius=radius;
    }
    //无参构造方法 ,给radius赋值为2,并输出信息:"This is a constructor with no para."
    public Circle(){
        radius=2;
        System.out.println("This is a constructor with no para.");
    }
        //有参构造方法 ,接收用户给的radius赋值,并输出"This is a constructor with para."(如果给的半径小于等于0,则赋默认值为2)
        public Circle(int radius){
            if(radius<=0){
                radius=2;
            }
            else
                this.radius=radius;
            System.out.println("This is a constructor with para.");
        }
    //为radius半径添加get方法,返回用户输入的半径
    public int getter(){
        return radius;
    }
    //求圆面积方法getArea(), π使用Math.PI代替
    public float getArea(){
        double area;
        area=Math.PI*radius*radius;
        return (float)area;
    }
    //定义toString方法
    public String toString(){
        return "Circle [radius=" + radius + "]";
    }
}
public class Main{
    public static void main(String[] args){
        int radius;
        Circle c1,c2,c3;
        Scanner sc=new Scanner(System.in);
        //定义并创建Circle类对象c1,输出c1对象,求c1的面积并输出
        c1=new Circle();
        System.out.println(c1.toString());
        System.out.println(c1.getArea());
        //定义并创建Circle类对象c2,输出c2对象,求c2的面积并输出;
        c2=new Circle();
        System.out.println(c2.toString());
        System.out.println(c2.getArea());
        //从键盘接收整数半径,赋值给c2的半径,输出c2对象,求c2的面积并输出
        c2=new Circle(sc.hasNextInt());
        System.out.println(c2.toString());
        System.out.println(c2.getArea());
        //从键盘接收整数半径,用有参构造方法创建Circle类对象c3,输出c3对象,求c3的面积后输出
        c3=new Circle(sc.hasNextInt());
        System.out.println(c3.toString());
        System.out.println(c3.getArea());
    }
}
//Main.java:55: error: incompatible types: boolean cannot be converted to int
//        c2=new Circle(sc.hasNextInt());
//                                   ^
//Main.java:59: error: incompatible types: boolean cannot be converted to int
//        c3=new Circle(sc.hasNextInt());
//                                   ^
//Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
//2 errors
  • 写回答

2条回答 默认 最新

  • threenewbee 2023-03-27 22:47
    关注

    c2=new Circle(sc.hasNextInt());
    ->
    c2=new Circle(sc.nextInt());

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 C++ 菜单窗口独立出来,可以随意移动放大缩小。
  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?