CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
参赛话题:Java学习记录
话题描述:零基础学习Java类(面向对象二)
————————————————
版权声明:本文为CSDN博主「Code_ForYou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
本篇文章是《零基础学Java》专栏的第六篇文章,文章采用通俗易懂的文字、图示及代码实战,从零基础开始带大家走上高薪之路!
本篇文章是《零基础学Java》专栏的第六篇文章,文章采用通俗易懂的文字、图示及代码实战,从零基础开始带大家走上高薪之路!
本文章首发于公众号【编程攻略】
继承
创建一个Person类
我们创建一个用于描述人
的类。我们怎么抽象出一个人
这个类呢?我们以不同的角度做抽象,得到的属性和行为都会有些区别。这里,我们主要从人
的社会属性来抽象。为了表示性别,我们先顶一个枚举类型,该枚举类型中有两个值,用于表示男
、女
,代码如下:
public enum Sex {
male,female}
上面的代码写入单独的一个源代码文件中:Sex.java
,因为上面的枚举类型是需要公开使用的,所以,也需要定义为public,因此,必须将之放在独立的源文件中 。
再定义Person这个类,代码如下:
public class Person{
private String name;//姓名
private Sex sex;//性别
private Date birthday;//出生日期
private String ID;//身份证号
//下面是一系列上述私有成员变量的setter和getter
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setSex(Sex sex){
this.sex = sex;
}
public Sex getSex(){
return sex;
}
public void setBirthday(Date date){
birthday = date;
}
public Date getBirthday(){
return birthday;
}
public void setID(String ID){
this.ID = ID;
}
public String getID(){
return ID;
}
public Person(String name, Sex sex, Date birthday, String ID){
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.ID = ID;
}
}
我们编译上面的Person.java
,它所涉及到的相关的类也会一并编译完成,如:Sex.java
文件。
定义学生
子类
如果我们考虑一个班级的组成,大致有三种类别的人员,学生
、教师
、辅导员
,我们依次进行定义。这三类都具有人
所具有的属性,因此,我们没必要在三个类中重新定义那些公共属性,我们只需继承Person
类即可。当然,这些类一定也具有不同于普通人
的属性和行为。先定义学生
类。
public class Student extends Person {
private String studentID;//学号
private Date rollInDate;//入学时间
public void setStudentID(String studentID){
this.studentID = studentID;
}
public String getStudentID(){
return studentID;
}
public void setRollInDate(Date rollInDate){
this.rollInDate = rollInDate;
}
public Date getRollInDate(){
return rollInDate;
}
public Student(String name,
Sex sex,
Date birthday,
String ID,
String studentID,
Date rollInDate){