java还没学字符类型的转换,这个应该只有return那部分需要转换的问题吧

img


package zhu;

public class Person {
    public String name;
    public int age;
    public String school;
    public String major;

    public void Person1(String name,int age) {
        this.name =name;
        this.age=age;
    }
    public String Person1() {
        return this.name;
        return this.age;

    }


    public void Person2(String name,int age,String school) {
        this.name =name;
        this.school=school;
        this.age=age;
    }
    public int Person2() {
        return name;
        return school;
        return age;
    }


    public void Person3(String name,int age,String school,String major) {
        this.name =name;
        this.school=school;
        this.age=age;
        this.major=major;
    }
    public String Person3() {
        return name;
        return school;
        return age;
        return major;
    }
}
package zhu;

public class test {
    public static void main(String[] args){
        Person p=new Person();
        p.Person1("小明",10);
        p.Person2("小明",10,"大学");
        p.Person3("小明",10,"大学","机械专业");

        System.out.println(p.Person1());
        System.out.println(p.Person2());
        System.out.println(p.Person3());

    }
}


构造方法:Java 类中的构造方法用于初始化对象,从语法上来说,和普通的方法相比,没有返回类型,名称和类名相同,通过 new 关键字调用,执行后返回的是类的实例对象。

方法重载:方法名相同、参数不同的多个方法称为重载方法。Java 虚拟机会根据参数选取合适的方法调用。参数少的方法调用参数多的重载方法是个减少代码量的小技巧。

this:this 关键字可用于在构造方法中调用其他构造方法。

根据上面的规则帮你修改代码如下:

public class Person {

    public String name;
    
    public int age;
    
    public String school;
    
    public String major;

    public Person(String n, int a) {
        this(n, a, null);
    }

    public Person(String n, int a, String s) {
        this(n, a, s, null);
    }


    public Person(String n, int a, String s, String m) {
        this.name = n;
        this.age = a;
        this.school = s;
        this.major = m;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school='" + school + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}
public class Test {

    public static void main(String[] args) throws SQLException, IOException {
        Person p1 = new Person("小明", 10);
        Person p2 = new Person("小明", 10, "大学");
        Person p3 = new Person("小明", 10, "大学", "机械专业");

        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
    }
}


class Person {
    private String name;
    private int age;
    private String school;
    private String major;

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

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

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

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school='" + school + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}


public class Test {
    public static void main(String[] args) {
        Person person1 = new Person("小明", 10);
        Person person2 = new Person("小明", 10, "大学");
        Person person3 = new Person("小明", 10, "大学", "机械专业");
        System.out.println(person1.toString());
        System.out.println(person2.toString());
        System.out.println(person3.toString());
    }
}

构造函数必须与类同名并且没有返回值,void也不行。

目前来看,你说的没错,Person3(),Person2(),Person1()的return都有问题

1楼写的太好了,私有化都改了,我都不知道说啥了