自学JAVA,我哪里做错了,为啥不能运行

img


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());
    }
}

package zhu;

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

    public void Person1(String n, int a) {
        name = n;
        age = a;
    }

    public String Person1() {
        return name;
        return age;
    }

    public String Person2(String n,int a,String s) {
        name = n;
        school = s;
        age = a;
    }

    public String Person2() {
        return age;
        return name;
        return school;
    }

    public void Person3(String n,int a,String s,String m) {
        name = n;
        school = s;
        age = a;
        major = m;
    }

    public double Person3() {
        return name;
        return age;
        return school;
        return major;
    }
}

首先编译器可以生成不同参数的构造器(都是类名,不用person1、person2这种)

img

加油学习吧!代码如下:

package zhu;

public class test1 {
    public static void main(String[] args){
        Person p=new Person("猪",10);
        Person p2=new Person("猪",10,"动物园");
        Person p3=new Person("猪",10,"动物园","大的");
        System.out.println(p.toString());
        System.out.println(p2.toString());
        System.out.println(p3.toString());
    }
}

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

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

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

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

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

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

    //return  name 要干两件事情  返回 name 并停止Person3()这个方法继续执行  所以 下面的三个 return 是不会执行的  可能是这个原因  其他类似的方法也有这个问题 ,你把控制台的贴出来看下
    public double Person3() {
        return name;
        return age;
        return school;
        return major;
    }

Person类漏洞百出。。建议先学基础。