2021-05-31

类和子类的简单实现

1、问题描述:

  1. 设计一个名为 Person 的类和它的两个名为 StudentEmployee 的子类。 每个人都有姓名和电话号码,学生类有年级状态(大一、大二、大三或大四),员工有工资。重写每个类中的 toString 方法,显示该类的所有属性。面积。

2、实现思路:

  1. 创建 Person 类 ,为其添加姓名(name)、电话号码(phone)这两个属性,这两个属性皆为 String 类型,分别为每个属性添加对应的 get 和 set 方法。
  2. 创建学生类 Student 并使其继承于 Person 类,为其添加 String 类型的年级(grade)属性,并为该属性添加 get 和 set 方法。
  3. 创建员工类 Employee 并使其继承于 Person 类,为其添加 double 类型的工资(salary)属性。为每个属性添加 get 和 set 方法。
  4. 为每个类添加一个无参构造方法和一个带有全部属性的构造方法。
  5. 为每个类重写 toString 方法,显示该类的所有属性。
  6. 创建测试类 Test 并创建每个类的对象,对象信息参照「挑战提示」中的表格,打印显示每个对象的 toString 方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hm2PKunx-1622435980464)(https://dn-simplecloud.shiyanlou.com/courses/uid1509696-20210531-1622435839952)]

3、实现代码:

package org.lanqiao.entity;

public class Person {
    private String name;
    private String phone;

    public String getName() {
        return name;
    }

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

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String toString() {
        return "Person{name="+getName()+",phone=" +getPhone()+"}";
    }

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

    public Person() {
    }
}
package org.lanqiao.entity;

public class Student extends Person{
    private String grade;

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }
    public String toString() {
        return "Student{name="+getName()+",phone=" +getPhone()+", grade="+this.grade+"}";
    }

    public Student(String name, String phone, String grade) {
        super(name, phone);
        this.grade = grade;
    }

    public Student(String grade) {
        this.grade = grade;
    }
    public Student(){
        super();
    }
}
package org.lanqiao.entity;

public class Employee extends Person {
    private double salary;

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    public String toString() {
        return "Employee{name="+getName()+",phone=" +getPhone()+", salary="+this.salary+"}";
    }

    public Employee(String name, String phone, double salary) {
        super(name, phone);
        this.salary = salary;
    }

    public Employee(double salary) {
        this.salary = salary;
    }
    public Employee(){
        super();
    }
}
package org.lanqiao.test;

import org.lanqiao.entity.*;
public class Test {
    public static void main(String[] args){
        Person person=new Person("小蓝","16655557777");
        Student student=new Student("小红","15588885555","大一");
        Employee employee=new Employee("小白","17676765656",4000);
        System.out.println(person.toString());
        System.out.println(student.toString());
        System.out.println(employee.toString());
    }
}

4、运行结果:

建包的截图:2021-05-31

2021-05-31

5、遇到的问题及解决方法:

未添加包名的时候,系统会不识别。

添加相应的包名后,VScode莫名的报错

在从新试了一下之后就没问题了

上一篇:小程序手机号注册登录


下一篇:IOS学习之block代码块