1、编写一个学生类,提供name,age,gender,phone,address,email成员变量,且为每个成员变量提供setter、getter方法。为学生提供默认构造器和带有所有成员变量的构造器。为学生提供方法,由于描绘吃、喝、玩、睡等行为。

1 class Student 
 2 {
 3     String name;
 4     int age;
 5     String gender;
 6     String phone;
 7     String address;
 8     String email;
 9 
10     public Student()
11     {
12         
13     }
14     public Student(String name,int age,String gender,String phone,String address,String email)
15     {
16         =name;
17         this.age=age;
18         this.gender=gender;
19         this.phone=phone;
20         this.address=address;
21         this.email=email;
22     }
23 
24     protected void setter(String name,int age,String gender,String phone,String address,String email)
25     {
26         =name;
27         this.age=age;
28         this.gender=gender;
29         this.phone=phone;
30         this.address=address;
31         this.email=email;
32     }
33 
34     protected void getter()
35     {
36         System.out.println("学生:"+);
37         System.out.println("性别:"+this.gender);
38         System.out.println("电话号:"+phone);
39         System.out.println("地址:"+this.address);
40         System.out.println("email:"+email);
41     }
42 
43     protected void eat()
44     {
45         System.out.println(+"正在吃东西");
46     }
47     protected void play()
48     {
49         System.out.println(+"正在玩");
50     }
51 
52 }
53 
54 public class StudentTest
55 {
56     public static void main(String[] args)
57     {
58         var st1=new Student();
59         st1.getter();
60         Student st2=new Student("李",20,"男","13438310326","北京","1234567891@");
61         st2.getter();
62         st2.eat();
63         st2.play();
64         
65         
66     }
67 }

2、利用第一题的学生类,定义一个Student[]数组保存多个Student对象作为通讯录数据。程序可通过name、email、address查询,如果找不到数据则进行友好提示。

1 class StudentResearch 
 2 {
 3     public Student nameSearch(Student[] st,String name)
 4     {
 5         Student result=new Student();
 6         for(int i=0;i<st.length;i++)
 7         {
 8             if(st[i].name==name)
 9             {
10                 result=st[i];
11             }
12         }
13         return result;
14     }
15     public Student emialSearch(Student[] st,String email)
16     {
17         Student result=new Student();
18         for(int i=0;i<st.length;i++)
19         {
20             if(st[i].email==email)
21             {
22                 result=st[i];
23             }
24         }
25         return result;
26     }
27     public Student addressSearch(Student[] st,String address)
28     {
29         Student result=new Student();
30         for(int i=0;i<st.length;i++)
31         {
32             if(st[i].address==address)
33             {
34                 result=st[i];
35             }
36         }
37         return result;
38     }
39 
40     public static void main(String[] args) 
41     {
42         Student[] st=new Student[5];
43         st[0]=new Student("李",20,"男","13438310321","北京","1234567891@");
44         st[1]=new Student("李明",20,"男","13438310322","上海","1234567892@");
45         st[2]=new Student("李二",20,"男","13438310323","广东","1234567893@");
46         st[3]=new Student("李三",20,"男","13438310324","重庆","1234567894@");
47         st[4]=new Student("李四",20,"男","13438310325","成都","1234567895@");
48 
49         //姓名查找
50         var p=new StudentResearch();
51         Student namefind=p.nameSearch(st,"李二");
52         if(namefind.name==null)
53         {
54             System.out.println("未查找到该用户");
55         }
56         else
57             namefind.getter();
58 
59         //邮箱查找
60         Student emailfind=p.emialSearch(st,"1234567894@");
61         if(emailfind.email==null)
62         {
63             System.out.println("未查找到该用户");
64         }
65         else
66             emailfind.getter();
67 
68         //地址查找
69         Student addressfind=p.addressSearch(st,"北京");
70         if(addressfind.address==null)
71         {
72             System.out.println("未查找到该用户");
73         }
74         else
75             addressfind.getter();
76     }
77 }

3、定义普通人、老师、班主任、学生、学校这些类,提供适当的成员变量、方法描述其内部数据和行为特征,并提供主类使之运行。要求良好的封装性,将不同的类放到不同包下,增加文档注释,生成API文档。

Person类:

1 package org.one;
 2 /*
 3  *Description 这是一个普通的类,用于派生其他类
 4  *@author star
 5  *@version 1.0
 6  */
 7 public class  Person
 8 {
 9     //成员变量,保存姓名
10     protected String name;
11     //Person类的成员变量,保存年纪
12     protected int age;
13 
14     /*
15      *描述人吃的方法
16      *@param name 指明谁在吃
17      *@param food 指明吃的食物
18      *@return void
19      */
20 
21     /*
22      *Person类的构造器
23      *@param name 初始化姓名
24      *@param age 初始化年龄
25      */
26     public Person(String name,int age)
27     {
28         =name;
29         this.age=age;
30     }
31     public void eat(String name,String food)
32     {
33         System.out.println(name+"正在吃"+food);
34     }
35 
36     /*
37      *描述人喝的方法
38      *@return void
39      */
40     public void drink()
41     {
42         System.out.println(name+"正在喝水");
43     }
44 
45     /*
46      *描述人玩的方法
47      *@return void
48      */
49     public void eat()
50     {
51         System.out.println(name+"正在玩泥巴");
52     }
53 
54     /*
55      *描述人方便的方法
56      *@return void
57      */
58     public void goToLoo()
59     {
60         System.out.println(name+"正在方便");
61     }
62 
63     /*
64      *描述人信息的方法
65      *@return void
66      */
67     public void getter()
68     {
69         System.out.println("姓名:"+name+",年龄:"+age);
70     }
71 }

 Student类:

1 package org.two;
 2 import org.one.Person;
 3 /*
 4  *Description 学生类
 5  *@author star
 6  *@version 1.0
 7  */
 8 public class Student extends Person
 9 {
10     //成员变量——年级
11     public int grade;
12     /*
13      *学生类的构造器
14      */
15     public Student(String name,int age,int grade)
16     {
17         super(name,age);
18         this.grade=grade;
19     }
20 
21     /*
22      *描述学生学习的方法
23      *@param name 描述谁在学习
24      *@return void
25      */
26     public void study()
27     {
28         System.out.println(name+"正在学习");
29     }
30     public void getter()
31     {
32         System.out.println("身份:学生");
33         System.out.println("姓名:"+name+",年龄:"+age+",年级:"+grade);
34     }
35 
36 }

 Teacher类:

1 package org.three;
 2 import org.one.Person;
 3 
 4 public class Teacher extends Person
 5 {
 6     public Teacher(String name,int age)
 7     {
 8         super(name,age);
 9     }
10 
11     /*
12      *描述学生学习的方法
13      *@param name 描述谁在教学
14      *@return void
15      */
16     public void teache()
17     {
18         System.out.println(name+"老师正在上课");
19     }
20     public void getter()
21     {
22         System.out.println("身份:老师");
23         System.out.println("姓名:"+name+",年龄:"+age);
24     }
25 
26 }

 School类:

1 package org.four;
 2 import org.two.*;
 3 import org.three.*;
 4 public class School 
 5 {
 6 
 7     protected Teacher[] Te;
 8     protected Student[] St;
 9 
10     //登记学生信息
11     public School(Teacher[] Te,Student[] St)
12     {
13         this.Te=Te;
14         this.St=St;
15     }
16     public void getter()
17     {
18         for(int i=0;i<Te.length;i++)
19         {
20             Te[i].getter();
21         }
22         for(int i=0;i<St.length;i++)
23         {
24             St[i].getter();
25         }
26     }
27 }

 主类入口:

1 import org.one.Person;
 2 import org.two.Student;
 3 import org.three.Teacher;
 4 import org.four.School;
 5 class Test 
 6 {
 7     public static void main(String[] args) 
 8     {
 9         Student s1=new Student("李一",12,6);
10         Student s2=new Student("李二",13,7);
11         Student s3=new Student("李三",14,8);
12         Student[] ss={s1,s2,s3};
13 
14         Teacher t1=new Teacher("张三",30);
15         Teacher t2=new Teacher("张四",35);
16         Teacher t3=new Teacher("张五",36);
17         Teacher[] ts={t1,t2,t3};
18         
19         School sch=new School(ts,ss);
20         sch.getter();
21 
22         s1.study();
23         t1.teache();
24 
25         s2.drink();
26     }
27 }

4、改写第一题的类,利用组合来实现复用

1 class Student 
  2 {
  3     String name;
  4     int age;
  5     String gender;
  6     String phone;
  7     String address;
  8     String email;
  9 
 10     public Student()
 11     {
 12         
 13     }
 14     public Student(String name,int age,String gender,String phone,String address,String email)
 15     {
 16         =name;
 17         this.age=age;
 18         this.gender=gender;
 19         this.phone=phone;
 20         this.address=address;
 21         this.email=email;
 22     }
 23 
 24     protected void setter(String name,int age,String gender,String phone,String address,String email)
 25     {
 26         =name;
 27         this.age=age;
 28         this.gender=gender;
 29         this.phone=phone;
 30         this.address=address;
 31         this.email=email;
 32     }
 33 
 34     protected void getter()
 35     {
 36         System.out.println("学生:"+);
 37         System.out.println("性别:"+this.gender);
 38         System.out.println("电话号:"+phone);
 39         System.out.println("地址:"+this.address);
 40         System.out.println("email:"+email);
 41     }
 42 
 43     protected void eat()
 44     {
 45         System.out.println(+"正在吃东西");
 46     }
 47     protected void play()
 48     {
 49         System.out.println(+"正在玩");
 50     }
 51 
 52 }
 53 
 54 class Find
 55 {
 56     private Student[] students;
 57     public Find(Student[] students)
 58     {
 59         this.students=students;
 60     }
 61     
 62     public Student NameFind(String name)
 63     {
 64         Student result=null;
 65         for(Student stu:students)
 66         {
 67             if(==name)
 68             {
 69                 result=stu;
 70             }
 71         }
 72         return result;
 73     }
 74 
 75     public Student EmailFind(String email)
 76     {
 77         Student result=null;
 78         for(Student stu:students)
 79         {
 80             if(stu.email==email)
 81             {
 82                 result=stu;
 83             }
 84         }
 85         return result;
 86     }
 87 
 88     public Student PhoneFind(String phone)
 89     {
 90         Student result=null;
 91         for(Student stu:students)
 92         {
 93             if(stu.phone==phone)
 94             {
 95                 result=stu;
 96             }
 97         }
 98         return result;
 99     }
100 }
101 public class StudentTest
102 {
103     public static void main(String[] args)
104     {
105     
106         Student st1=new Student("李一",20,"男","13438310321","北京","1234567891@");
107         Student st2=new Student("李二",20,"男","13438310322","北京","1234567892@");
108         Student st3=new Student("李三",20,"男","13438310323","北京","1234567893@");
109         Student st4=new Student("李四",20,"男","13438310324","北京","1234567894@");
110         Student st5=new Student("李五",20,"男","13438310325","北京","1234567895@");
111         Student[] stus={st1,st2,st3,st4,st5};
112        
113         Find F=new Find(stus);
114         var bool1=(F.NameFind("李二").name==null);
115         if(bool1)
116             System.out.println("查无此人");
117         else
118             F.NameFind("李二").getter();
119 
120         var bool2=(F.PhoneFind("13438310329")==null);
121         if(bool2)
122             System.out.println("查无此人");
123         else
124             F.PhoneFind("13438310329").getter();
125     }
126 }