纠正程序报错和第二个思路

img


img

img


第一个程序已经打出来了但是十五行的Circle一直黄色改不过来求看哪里问题,第二个toSteing返回应该怎么使用

类名方法名一样称之为构造方法,
1、构造函数的名称必须与类名相同,包括大小写;
2、构造函数没有返回值,也不能用void修饰. 如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误。
3、一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
4、构造方法可以重载,以参数的个数,类型,顺序。

img


如这个

img

之前回答过,差不多就这样吧,代码可以用

public   class Person {
private String name;
private int age;
private String sex;

public Person(String name,int age,String sex){
    this.name=name;
    this.age=age;
    this.sex=sex;
}

public String getName() {
    return name;
}

public int getAge() {
    return age;
}

public String getSex() {
    return sex;
}

public void setName(String name) {
    this.name = name;
}

public void setAge(int age) {
    this.age = age;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String toString(){
    return "姓名:"+name+"性别:"+sex+"年龄:"+age;
}
}

public class Student extends Person{

private String no;
private int scoreMath;
private int scoreJava;
private int scoreEn;

public Student(String name, int age, String sex,String no,int scoreMath,int scoreJava,int scoreEn) {
    super(name, age, sex);
    this.no=no;
    this.scoreMath=scoreMath;
    this.scoreJava=scoreJava;
    this.scoreEn=scoreEn;
}
public double aver(){
    double avg=(scoreMath+scoreJava)/2.0;
    return avg;
}
@Override
public String toString(){
       
    return "姓名:"+super.getName()+",性别:"+super.getSex()+",年龄:"+super.getAge()+",学号:"+no+",平均分"+aver();
}
public static void main(String[] args) {
    Student student=new Student("小明", 18, "男", "20220101", 80, 70, 50);
    System.out.println(student.toString());
}

}

构造函数没有返回类型,void去掉
你用个String 变量等于toString()函数的返回值就好了啊