博客
关于我
继承案例分析一(学生类)
阅读量:339 次
发布时间:2019-03-04

本文共 1797 字,大约阅读时间需要 5 分钟。

Java继承关系的案例分析

通过设计和实现简单的Java类,能够帮助开发者巩固继承关系的概念。对于编程而言,基本的Java类是构建应用程序的基石,也是理解各种概念的最佳载体。

案例一:Person类与Student类的设计

目标:

  • 创建一个Person类,包含姓名、地址、性别和年龄这四个私有属性。
  • 为该类设计四种不同的构造方法:
    • 四参数构造方法(接受姓名、地址、性别和年龄)。
    • 两参数构造方法(接受姓名和地址,默认性别为“男”,年龄为0)。
    • 无参数构造方法。
  • 增加一个getInfo()方法,用于返回四个属性的值。
  • 实现:

    class Person {    private String name; // 姓名    private String addr; // 地址    private char sex;  // 性别    private int age;   // 年龄    public Person() { } // 无参数构造方法    public Person(String name, String addr) {        this(name, addr, '男', 0);    }    public Person(String name, String addr, char sex, int age) {        this.name = name;        this.addr = addr;        this.sex = sex;        this.age = age;    }    public String getInfo() {        return "姓名:" + this.name + "\t地址:" + this.addr + "\t性别:" + this.sex + "\t年龄:" + this.age;    }}

    扩展:Student类

    Student类继承自Person类,增加两个私有属性mathenglish来存储数学和英语成绩。

  • 设计三种构造方法:
    • 六参数构造方法(接受姓名、地址、性别、年龄、数学成绩和英语成绩)。
    • 两参数构造方法(接受姓名和地址,其他属性默认值)。
    • 无参数构造方法。
  • 重写getInfo()方法,返回学生的全部属性信息。
  • 实现:

    class Student extends Person {    private double math; // 数学成绩    private double english; // 英语成绩    public Student() { } // 无参数构造方法    public Student(String name, String addr) {        super(name, addr);    }    public Student(String name, String addr, char sex, int age, double math, double english) {        super(name, addr, sex, age);        this.math = math;        this.english = english;    }    public String getInfo() {        return super.getInfo() + "数学成绩:" + this.math + "\t英语成绩:" + this.english;    }}

    使用示例:

    public class JavaDemo {    public static void main(String[] args) {        Student stuA = new Student(12.3, 99.2, "张三", "湖南", '男', 18);        System.out.println(stuA.getInfo());    }}

    总结

    通过上述案例,可以清晰地看到Java继承关系的实际应用。Student类继承Person类,继承了所有基本属性和方法,同时新增了特有的属性和方法。这是Java面向对象编程的核心概念,也是理解更复杂继承关系的基础。

    转载地址:http://aqwe.baihongyu.com/

    你可能感兴趣的文章
    pandas 分组并使用最小值更新
    查看>>
    pandas 叶上的热图
    查看>>
    pandas 均值(mean), 均值填充NA(fill_na)
    查看>>
    Pandas 对数据框的布尔比较
    查看>>
    Pandas 将多个数据帧与时间戳索引对齐
    查看>>
    pandas 将通话数据分割为15分钟的间隔
    查看>>
    pandas 找到局部最大值和最小值
    查看>>
    Pandas 按年份分组,按销售列排名,在具有重复数据的数据框中
    查看>>
    pandas 按日期和年份分组,并汇总金额
    查看>>
    pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗?
    查看>>
    pandas 数据帧多行查询
    查看>>
    Pandas 数据框:使用线性插值重新采样
    查看>>
    pandas 数据框将 INT64 列转换为布尔值
    查看>>
    pandas 数据框将列类型转换为字符串或分类
    查看>>
    pandas 数据框条件 .mean() 取决于特定列中的值
    查看>>
    pandas 数据框至海运分组条形图
    查看>>
    Pandas 数据透视表:列顺序和小计
    查看>>
    pandas 时序统计的高级用法!
    查看>>
    pandas 时间序列重新采样结束给定的一天
    查看>>
    pandas 根据不是常量的第三列的值将值从一列复制到另一列
    查看>>