选做题
(选做题)设计学校父类,其中学校的属性包括学校名称、学校的地址、学校的学生人数、学校的教师人数和学校的面积;方法包括开学和放假。所有类、方法和变量命名按照Java命名规范进行。
设计学校子类:
(1)幼儿园。继承学校类,属性包含园长名称、保育员人数、保健医师人数。方法:幼儿园区域监察记录(打印一下信息即可)
(2)小学。继承学校类,属性包含校长姓名、班级总数量、科目数量。方法:某个班级春游(打印一下信息即可)。
(3)大学。继承学校类,属性包含校长姓名、院系总数量、讲师数量,录取分数。方法:录取分数验证。
要求:
(1)所有父子类均完成get和set封装,以及构造方法(无参构造方法和有参构造方法)封装。
(2)子类继承父类时,重写父类开学和放假方法,形式为输出开学和放假的时间信息。
(3)手动输入(Scanner)(幼儿园、小学、大学),判断输入内容,实例化不同子类对象,通过父类去接收子类对象,初始化学校信息,初始完之后,打印开学和放假的时间。
(4)在输入大学完成实例化后还需调用录取分数验证的方法,用户需输入报考分数,如果分数不超过500,打印未达到录取线,无法录取。如果分数超过,就提示录取成功。提示:instanceof(向下转型)
School父类
package com.stx.p6.gonghaoyue;
//学校父类
public class School {
private String scName;//学校名称
private String scAddr;//学校地址
private int stuQuantity;//学生数量
private int tecQuantity;//教师数量
private int scArea;//学校面积
//无参构造
public School() {
}
//get和set
public String getScName() {
return scName;
}
public void setScName(String scName) {
this.scName = scName;
}
public String getScAddr() {
return scAddr;
}
public void setScAddr(String scAddr) {
this.scAddr = scAddr;
}
public int getStuQuantity() {
return stuQuantity;
}
public void setStuQuantity(int stuQuantity) {
this.stuQuantity = stuQuantity;
}
public int getTecQuantity() {
return tecQuantity;
}
public void setTecQuantity(int tecQuantity) {
this.tecQuantity = tecQuantity;
}
public int getScArea() {
return scArea;
}
public void setScArea(int scArea) {
this.scArea = scArea;
}
//show方法
public void show(){
System.out.println("学校的名称是"+scName+"位于"+scAddr+",占地"+scArea+"平方米,"+"学生人数"+stuQuantity+"人,教师人数"+tecQuantity+"人。");
}
//开学方法
public void open(){}
//放假方法
public void over(){}
}
幼儿园子类
package com.stx.p6.gonghaoyue;
//幼儿园子类,继承学校父类
public class Kindergarten extends School{
private String yz;//圆长名称
private int byQuantity;//保育员人数
private int bjQuantity;//保健医师人数
//有参构造
public Kindergarten(String yz, int byQuantity, int bjQuantity) {
this.yz = yz;
this.byQuantity = byQuantity;
this.bjQuantity = bjQuantity;
}
//get和set方法
public String getYz() {
return yz;
}
public void setYz(String yz) {
this.yz = yz;
}
public int getByQuantity() {
return byQuantity;
}
public void setByQuantity(int byQuantity) {
this.byQuantity = byQuantity;
}
public int getBjQuantity() {
return bjQuantity;
}
public void setBjQuantity(int bjQuantity) {
this.bjQuantity = bjQuantity;
}
//重写开学放假方法
@Override
public void open() {
System.out.println("开学时间为9.1");
}
@Override
public void over() {
System.out.println("放假时间为2.1");
}
//方法:幼儿园区域监察记录(打印一下信息即可)
public void record(){
System.out.println("园长名称:"+yz+"\t"+"保育员人数:"+byQuantity+"\t"+"保健医师人数:"+bjQuantity);
School school = new School();
school.setScAddr("重庆");
school.setScArea(123);
school.setScName("重庆幼儿园");
school.setStuQuantity(123);
school.setTecQuantity(123);
school.show();
}
}
小学子类
package com.stx.p6.gonghaoyue;
//小学子类,继承学校父类
public class ElementarySchool extends School{
private String xz;//校长名称
private int clQuantity;//班级数量
private int subQuantity;//科目数量
//有参构造
public ElementarySchool(String xz, int clQuantity, int subQuantity) {
this.xz = xz;
this.clQuantity = clQuantity;
this.subQuantity = subQuantity;
}
//get和set方法
public String getXz() {
return xz;
}
public void setXz(String xz) {
this.xz = xz;
}
public int getClQuantity() {
return clQuantity;
}
public void setClQuantity(int clQuantity) {
this.clQuantity = clQuantity;
}
public int getSubQuantity() {
return subQuantity;
}
public void setSubQuantity(int subQuantity) {
this.subQuantity = subQuantity;
}
//开学放假方法的重写
@Override
public void open() {
System.out.println("开学时间为9.1");
}
@Override
public void over() {
System.out.println("放假时间为2.1");
}
//班级春游的方法
public void travel(){
System.out.println("校长名称:"+xz+"\t"+"班级数量:"+clQuantity+"\t"+"科目数量:"+subQuantity);
School school = new School();
school.setScAddr("重庆");
school.setScArea(123);
school.setScName("重庆小学");
school.setStuQuantity(123);
school.setTecQuantity(123);
school.show();
}
}
大学子类
package com.stx.p6.gonghaoyue;
//大学子类,继承学校父类
public class University extends School{
private String xz;//校长名称
private int yxQuantity;//院系数量
private int jsQuantity;//讲师数量
//有参构造器
public University(String xz, int yxQuantity, int jsQuantity) {
this.xz = xz;
this.yxQuantity = yxQuantity;
this.jsQuantity = jsQuantity;
}
//get和set方法
public String getXz() {
return xz;
}
public void setXz(String xz) {
this.xz = xz;
}
public int getYxQuantity() {
return yxQuantity;
}
public void setYxQuantity(int yxQuantity) {
this.yxQuantity = yxQuantity;
}
public int getJsQuantity() {
return jsQuantity;
}
public void setJsQuantity(int jsQuantity) {
this.jsQuantity = jsQuantity;
}
//开学放假方法的重写
@Override
public void open() {
System.out.println("开学时间为9.1");
}
@Override
public void over() {
System.out.println("放假时间为2.1");
}
//录取大学信息
public void message(){
System.out.println("校长名称:"+xz+"\t"+"院系数量:"+yxQuantity+"\t"+"讲师数量:"+jsQuantity);
School school = new School();
school.setScAddr("重庆");
school.setScArea(123);
school.setScName("重庆大学");
school.setStuQuantity(123);
school.setTecQuantity(123);
school.show();
}
}
主类
package com.stx.p6.gonghaoyue;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner s1 =new Scanner(System.in);
System.out.println("选择幼儿园请输入:1");
System.out.println("选择小学请输入:2");
System.out.println("选择大学请输入:3");
System.out.println("请输入您的选择:");
int x=s1.nextInt();
//对用户输入进行判断
if(x== 1){
School sch=new Kindergarten("张德丑",123,123);
((Kindergarten)sch).open();
((Kindergarten)sch).over();
((Kindergarten)sch).record();
}else if(x==2){
School sch=new ElementarySchool("张德胖",123,123);
((ElementarySchool)sch).open();
((ElementarySchool)sch).over();
((ElementarySchool)sch).travel();
}else if(x==3) {
System.out.println("请输入您的分数:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
//对录取分数进行判断
if(score>500){
System.out.println("录取成功,学校信息如下:");
School sch=new University("张德矮",123,123);
((University)sch).open();
((University)sch).over();
((University)sch).message();
}else {
System.out.println("和遗憾,您的成绩不合格,录取失败!");
}
}else{
System.out.println("您的输入不合法");
}
s1.close();
}
}
测试
幼儿园
选择幼儿园请输入:1
选择小学请输入:2
选择大学请输入:3
请输入您的选择:
1
开学时间为9.1
放假时间为2.1
园长名称:张德丑 保育员人数:123 保健医师人数:123
学校的名称是重庆幼儿园位于重庆,占地123平方米,学生人数123人,教师人数123人。
小学
选择幼儿园请输入:1
选择小学请输入:2
选择大学请输入:3
请输入您的选择:
2
开学时间为9.1
放假时间为2.1
校长名称:张德胖 班级数量:123 科目数量:123
学校的名称是重庆小学位于重庆,占地123平方米,学生人数123人,教师人数123人。
大学
500分以上
选择幼儿园请输入:1
选择小学请输入:2
选择大学请输入:3
请输入您的选择:
3
请输入您的分数:
501
录取成功,学校信息如下:
开学时间为9.1
放假时间为2.1
校长名称:张德矮 院系数量:123 讲师数量:123
学校的名称是重庆大学位于重庆,占地123平方米,学生人数123人,教师人数123人。
500分以下
选择幼儿园请输入:1
选择小学请输入:2
选择大学请输入:3
请输入您的选择:
3
请输入您的分数:
499
和遗憾,您的成绩不合格,录取失败!