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楼写的太好了,私有化都改了,我都不知道说啥了