JAVA代码分析问题!

2024-12-29 20:59:45
推荐回答(5个)
回答1:

class Person {
public String name; //定义一个name属性
public String location; //定义一个location属性

Person(String name){ //定义一个构造方法,用于初始化name属性
this.name = name;
location = "beijing"; //初始化location属性
}
Person(String name,String location) { //重载一个构造方法,用于初始化name属性和location属性
this.name = name;
this.location = location;
}
public String info() { //定义一个方法,返回实例的属性信息
return "name:"+ name +"location:"+location;
}
}

class Teacher extends Person { //定义一个Teacher类,从Person继承
private String capital;

Teacher (String name,String capital) { //定义一个构造方法,用于初始化name和capital属性
this(name,"beijing",capital); //调用本类中定义的构造方法
}

Teacher (String n,String l,String capital){ //定义一个构造方法,用于初始Teacher类中的capital,name和location属性
super (n,l); //调用父类中的构造方法初始化name,location属性
this.capital = capital; //初始化Teacher类中的capital属性
}

public String info() { //重写父类中的info()方法,并且附加capital属性的信息
return super.info() + "capital" + capital; //返回Teacher的各个属性信息
}
}

class Student extends Person { // 定义一个Student类,从Person继承
private String school; //定义chool字段

Student(String name,String school) { //定义一个构造方法,用于初始化name和school属性
this(name,"beijing",school); //调用本类中定义的构造方法
}

Student(String n,String l,String school) { //定义一个构造方法,用于初始Student类中的school,name和location属性
super(n,l); //调用父类中的构造方法初始化name,location属性
this.school = school; //初始化Student类中的school字段
}

public String info() { /重写父类中的info()方法
return super.info() + "school:" + school; //返回Student类中各个字段或属性信息
}
}

public class Test { //定义Test主类,用于测试定义各个类

public static void main (String[] args) {
Person p1 = new Person("A"); //实例化Person类,调用构造器初始化name属性
Person p2 = new Person("B","shanghai"); //实例化Person类,调用构造器初始化name,location属性
Student s1 = new Student("C","s1"); //实例化Student类,调用构造器初始化name,school属性
Student s2 = new Student("C","shanghai","s2"); //实例化Student类,调用构造器初始化name,location,school属性
Teacher t1 = new Teacher("D","perfessor"); //实例化Teacher类,调用构造器初始化name,capital属性
System.out.println(p1.info()); //输出实例p1的属性信息
System.out.println(p2.info()); //输出实例p2的属性信息
System.out.println(s1.info()); //输出实例s1的属性信息
System.out.println(s2.info()); //输出实例s2的属性信息
System.out.println(t1.info()); //输出实例t1的属性信息
}
}

回答2:

class Person
{
public String name; // 初始化一个变量 name
public String location; // 初始化一个变量 location

Person(String name)
{ // 人类构造方法
this.name = name;//将name属性值设置为入参值
location = "beijing";//没有传递location参数,默认值为beijing
}

Person(String name, String location)
{ // 人类构造方法
this.name = name;//将name属性值设置为入参值
this.location = location;//将location属性值设置为入参值
}

public String info()
{ // 人类使用的方法
return "name:" + name + "location:" + location;//返回这样一个字符串
}
}

class Teacher extends Person
{ // 新建一个老师类,从人类继承
private String capital;

Teacher(String name, String capital)
{ // 老师类的构造方法
this(name, "beijing", capital);//调用三个参数的构造方法
}

Teacher(String n, String l, String capital)
{// 老师类构造方法
super(n, l);//调用父类的构造方法
this.capital = capital;//将capital属性值设置为入参值
}

public String info()
{ // 老师类使用的方法
return super.info() + "capital" + capital;//覆写info方法
}
}

class Student extends Person
{ // 新建一个学生类,由人类所继承
private String school;

Student(String name, String school)
{ // 学生类的构造方法
this(name, "beijing", school);//调用三个参数的构造方法
}

Student(String n, String l, String school)
{ // 学生类的构造方法
super(n, l);//调用父类的构造方法
this.school = school;//将school属性值设置为入参值
}

public String info()
{ // 学生类使用的方法
return super.info() + "school:" + school;//覆写person的info方法
}
}

public class Test
{ // 新建一个Test类
public static void main(String[] args)
{
Person p1 = new Person("A");//新建一个Person类,通过调用一个参数的构造方法
Person p2 = new Person("B", "shanghai");//新建一个Person类,通过调用两个个参数的构造方法
Student s1 = new Student("C", "s1");//新建一个Student类,通过调用两个个参数的构造方法
Student s2 = new Student("C", "shanghai", "s2");//新建一个Student类,通过调用三个参数的构造方法
Teacher t1 = new Teacher("D", "perfessor");//新建一个Teacher类,通过调用两个个参数的构造方法
System.out.println(p1.info()); // 打印出Person这个类的对象p1
System.out.println(p2.info()); // 打印出Person这个类的对象p2
System.out.println(s1.info()); // 打印出Student这个类的对象s1
System.out.println(s2.info()); //打印出student这个类的对象s2
System.out.println(t1.info()); //打印出Teacher这个类的对象t1
}
}

回答3:

不好意思 我不能按照你的意思注释每一行的意思。java最重要的在于思想。

比如:Person p1 = new Person("A"); 你要是知道new新建,Person是一个类,p1是Person new(新建)的对象。通俗说p1就是一个人,名字为A,地址在beijing。Student就和Person类似了。

再比如:System.out.println(p1.info()); 这是打印都知道,p1.info(),是p1调用info()方法,打印的内容是p1这个人的信息

回答4:

全写出来没有必要,挑主要的告诉你吧,
super (n,l); 调用父类
super.info() 调用父类的方法
this(name,"beijing",capital); 自然就是调用本类的对象

回答5:

如果你真的想学习的话。不应该这样要求别人给你每一行都去给你解释。
其实你已经解释了很多了。如果你还是不明白。就应该问哪一行的代码不明白