JAVA构造函数(二)----一个简单的面向对象程序
本文对构造方法(函数)给出例子,进一步了解Java面向对象特性
要求:
-
完成一个java application 应用程序,描述一个人类。要求如下:
-
要求此人类必须包含有人的姓名、性别、出生日期等基本属性(变量)。
-
要求此人类描述吃饭的方法(函数)和描述睡觉的方法(函数)。例如睡觉方法的执行体为一个 System.out.println() 函数,此函数输出一段例如“ xx(姓名)往床上躺倒,不久就睡着了……”之类的描述睡觉的文本。
-
要求此人类的构造函数要具有无参数的构造函数,以及带有姓名、性别、出生日期等参数的构造函数,并在构造函数中输出一段描述xx(姓名)出生的文本。
-
实例化出张三和李四两个人类对象(变量),并为之赋初值。
-
调用张三、李四等人类对象的各种属性(类成员变量)和方法(函数)。
-
在上述人类的基础上派生一个继承自人类的新的学生类,加入学号等学生特有的属性,加入上课、考试等方法,并实例化一个或几个学生类对象,完成这些学生类对象的各种属性和方法的调用。
主要方法:
- 构造无参方法(函数)和有参方法(函数)。
- 通过extends继承超类的变量和方法,并添加自己独有的元素。(在java语言中,被继承的类称为超类,继承类被称为子类。)
- 使用super访问超类构造函数。
程序如下:
class Person {
public String name; //声明姓名变量
public String sex; //声明性别变量
public String birth;//声明生日变量
//描述吃饭的方法
void eat() {
System.out.println("合理搭配,注意养生。");
}
//描述睡觉的方法
void sleep() {
System.out.println("十一点半之前要睡觉,少熬夜。");
}
// 构造一个Person函数
Person(String n, String s, String b) {
name = n;
sex = s;
birth = b;
}
//描述基本信息的方法
void disc() {
System.out.println("姓名:"+ name + " 性别:" + sex +
" 出生年月:" + birth);
}
}
//创建一个子类(用extends)
class Student extends Person {
Student(String n, String s , String b) {
super(n,s,b ); // 使用super()调用Person的构造函数
}
String num ;// 声明学号变量
//输出学号
void showNum() {
num = "2018666";
System.out.println("学号:"+num);
}
//描述上课的方法
void learn() {
System.out.println("上课要认真对待。");
}
//描述考试的方法
void exam() {
System.out.println("诚信考试,决不作弊。");
}
}
class PersonDemo {
public static void main(String[] args) {
//创建对象
Person one = new Person("张三", "男", "1995年8月1日");
Person two = new Person("李四", "女", "1996年7月1日");
Student ming = new Student("明卓","男","1995年6月1日"); //子类对象
//调用属性和方法
one.disc();
one.eat();
one.sleep();
System.out.println();
two.disc();
two.eat();
two.sleep();
System.out.println();
ming.disc();
ming.showNum();
ming.eat();
ming.sleep();
ming.learn();
ming.exam();
}
}
运行结果: