您的位置:首页 > 编程语言 > Java开发

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+"货物");
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
whlikect 发布了6 篇原创文章 · 获赞 3 · 访问量 96 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: