java疯狂讲义第五版第五章练习
2020-04-05 07:19
751 查看
第一题,定义一个学生类,提供成员变量的setter方法和getter方法,和带全体变量的构造器
public class Student{ private String name; private int age; private String gender; private String phone; private String address; private String email; public void setName(String name){ this.name=name; } public void setAge(int age){ this.age=age; } public void setGender(String gender){ this.gender=gender; } public void setPhone(String phone){ this.phone=phone; } public void setAddress(String address){ this.address=address; } public void setEmail(String email){ this.email=email; } public String getName(){ return this.name; } public int getAge(){ return this.age; } public String getPhone(){ return this.phone; } public String getGender(){ return this.gender; } public String getAddress(){ return this.address; } public String getEmail(){ return this.email; } /** *空构造器 */ public Student(){ } /** *含有全部属性的构造器 */ public Student(String name,int age,String gender,String phone,String address,String email) { this.name=name; this.age=age; this.gender=gender; this.phone=phone; this.address=address; this.email=email; } public void eat(){ System.out.println("学生具有吃的功能"); } public void drink(){ System.out.println("学生具有喝的功能"); } public void sleep(){ System.out.println("学生会睡觉"); } }
第二题,利用第一题的类,定义一个数组保存多个数据,并提供查询方法
`
public class Student{ private String name; private int age; private String gender; private String phone; private String address; private String email; public void setName(String name){ this.name=name; } public void setAge(int age){ this.age=age; } public void setGender(String gender){ this.gender=gender; } public void setPhone(String phone){ this.phone=phone; } public void setAddress(String address){ this.address=address; } public void setEmail(String email){ this.email=email; } public String getName(){ return this.name; } public int getAge(){ return this.age; } public String getPhone(){ return this.phone; } public String getGender(){ return this.gender; } public String getAddress(){ return this.address; } public String getEmail(){ return this.email; } /** *空构造器 */ public Student(){ } /** *含有全部属性的构造器 */ public Student(String name,int age,String gender,String phone,String address,String email) { this.name=name; this.age=age; this.gender=gender; this.phone=phone; this.address=address; this.email=email; } public void eat(){ System.out.println("学生具有吃的功能"); } public void drink(){ System.out.println("学生具有喝的功能"); } public void sleep(){ System.out.println("学生会睡觉"); } }
第三题,定义普通人,老师,班主任,学生,学校这些类,并提供测试方法
import java.util.*; import java.io.*; public class Person{ /** *成员变量 */ public int age; public String work; public String name; /** *含参构造器 */ public Person(int age,String work,String name){ do{ if(age>=0)this.age=age; else { System.out.println("年龄输入错误,请重新输入!"); var sc=new Scanner(System.in); age=sc.nextInt(); this.age=age; } }while(age<0); this.work=work; this.name=name; } /** *无参构造器 */ public Person(){ } }
public class School{ /** *成员变量 */ private Student[] student; private Teacher[] teacher; private TeacherAdviser[] teacherAdviser; /** *student的get方法 */ public Student[] getStudent(){ return this.student; } /** *teacher的get方法 */ public Teacher[] getTeacher(){ return this.teacher; } /** *teacherAdviser的get方法 */ public TeacherAdviser[] getTeacherAdvisrer(){ return this.teacherAdviser; } /** *student的set方法 */ public void setStudent(Student[] student){ this.student=student; } /** *teacher的set方法 */ public void setTeacher(Teacher[] teacher){ this.teacher=teacher; } /** *teacherAdviser的set方法 */ public void setTeacherAdviser(TeacherAdviser[] teacherAdviser) { this.teacherAdviser=teacherAdviser; } }
public class Student extends Person { /** *含参构造器 */ public Student(int age,String name){ super(age,"学生",name); } /** *描述学生任务 */ public void study(){ System.out.println("学生的工作是努力学习"); } }
public class Teacher extends Person { /** *含参构造器 */ public Teacher(int age,String name){ super(age,"老师",name); } /** *无参构造器 */ public Teacher(){ } /** *功能描述 */ public void teach(){ System.out.println("老师的工作是教导学生"); } }
public class TeacherAdviser extends Teacher { /** *成员变量 */ private String partTime="班主任"; /** *含参构造器 */ public TeacherAdviser(int age,String name){ super(age,name); } /** *无参构造器 */ public TeacherAdviser(){ } /** *功能描述 */ public void teach(){ super.teach(); System.out.println("班主任还要管理一个班级"); } }
import java.util.*; import java.io.*; public class test{ /** *主调函数 */ public static void main(String[] args){ var tr=new test(); School br=new School(); br.setStudent(tr.newStudent(3)); br.setTeacher(tr.newTeacher(2)); br.setTeacherAdviser(tr.newTeacherAdviser(1)); tr.printl(br); } /** *创建一组学生对象 */ public Student[] newStudent(int a){ Student[] student=new Student[a]; var sc=new Scanner(System.in); System.out.println("请依次输入学生年龄,姓名"); for(int i=0;i<a;i++) { student[i]=new Student(sc.nextInt(),sc.next()); } return student; } /** *创建一组老师对象 */ public Teacher[] newTeacher(int a){ Teacher[] teacher=new Teacher[a]; var sc=new Scanner(System.in); System.out.println("请依次输入老师年龄,姓名"); for(int i=0;i<a;i++) { teacher[i]=new Teacher(sc.nextInt(),sc.next()); } return teacher; } /** *创建一组班主任对象 */ public TeacherAdviser[] newTeacherAdviser(int a) { TeacherAdviser[] teacherAdviser=new TeacherAdviser[a]; var sc=new Scanner(System.in); System.out.println("请依次输入班主任年龄,姓名"); for(int i=0;i<a;i++) { teacherAdviser[i]=new TeacherAdviser(sc.nextInt(),sc.next()); } return teacherAdviser; } /** *输出School对象的成员变量 */ public void printl(School br){ for(Student a:br.getStudent()) { System.out.println("学生姓名:"+a.name+" 年龄:"+a.age); } for(Teacher a:br.getTeacher()) { System.out.println("老师姓名:"+a.name+" 年龄:"+a.age); } for(TeacherAdviser a:br.getTeacherAdvisrer()) { System.out.println("班主任姓名:"+a.name+" 年龄:"+a.age); } } }
第四题,改写第一题程序,利用组合来实现类的复用
public class Person{ public void eat(){ System.out.println("通过牙齿咀嚼吃东西"); } public void drink(){ System.out.println("有喝的能力"); } public void sleep(){ System.out.println("困了就要睡觉"); } }
public class Student{ private String name; private int age; private String gender; private String phone; private String address; private String email; Person br=new Person(); public void setName(String name){ this.name=name; } public void setAge(int age){ this.age=age; } public void setGender(String gender){ this.gender=gender; } public void setPhone(String phone){ this.phone=phone; } public void setAddress(String address){ this.address=address; } public void setEmail(String email){ this.email=email; } public String getName(){ return this.name; } public int getAge(){ return this.age; } public String getPhone(){ return this.phone; } public String getGender(){ return this.gender; } public String getAddress(){ return this.address; } public String getEmail(){ return this.email; } /** *空构造器 */ public Student(){ } /** *含有全部属性的构造器 */ public Student(String name,int age,String gender,String phone,String address,String email) { this.name=name; this.age=age; this.gender=gender; this.phone=phone; this.address=address; this.email=email; } public void eat(){ br.eat(); } public void drink(){ br.drink(); } public void sleep(){ br.sleep(); } }
第五题,定义一个交通工具类,提供多个构造器,将相同部分提为代码块
public class Tool{ { System.out.println("这是交通工具"); } /** *无参构造器 */ public Tool(){ System.out.println("能载人或载物"); } /** *含int参数的构造器 */ public Tool(int sum){ System.out.println("能载"+sum+个人"); } /** *含String参数的构造器 */ public Tool(String str){ System.out.println("能载"+str+"货物"); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 疯狂JAVA讲义---第五章(下):面向对象
- Java疯狂讲义第五章笔记
- 疯狂JAVA讲义---第五章(中)面向对象
- 疯狂Java 第五章章节练习 第1题
- [疯狂Java讲义精粹] 第五章|面向对象(下)
- 疯狂JAVA讲义第三章练习
- 疯狂JAVA 讲义---第五章:面对对象(上) 未完成
- 疯狂Java 第五章 章节练习 第二题
- 【疯狂JAVA讲义练习】 数字转人民币大写【加强版】
- java疯狂讲义 第6章练习
- java8 疯狂java讲义
- [疯狂Java讲义精粹] 第十二章|网络编程
- 疯狂Java讲义笔记_面向对象(下)
- 疯狂JAVA讲义---第十三章:JDBC编程(下)
- Java疯狂讲义(四)
- C Primer Plus (第五版) 第五章 编程练习
- [疯狂JAVA讲义].李刚.高清扫描版.part20.rar[疯狂JAVA讲义].李刚.高清扫描版.part20.rar...
- 疯狂JAVA讲义---第十五章:输入输出(中)序列化
- 3.1 流程控制语句 -【Java入门--疯狂Java讲义】
- 疯狂java讲义习题7.2