1、编写一个学生类,提供name、age、gender、phone、address、email成员变量,且为每个成员变量提供setter、getter方法。为学生类提供默认的构造器和带有成员变量的构造器。为学生类提供方法,用于描绘吃、喝、玩、睡等行为。
答案:
import java.util.*;
public class Student
{
//定义六个成员变量,并隐藏起来
private String name;
private int age;
private String gender;
private String phone;
private String address;
private String email;
//提供操作name成员变量的方法
public void setName(String name)
{
//执行合理性校验,要求学生姓名必须在2-8位之间
if (name.length()>8 || name.length()<2)
{
System.out.println("输入的学生姓名不符合要求!");
return;
}
else
{
this.name=name;
}
}
public String getName()
{
return this.name;
}
//提供操作age成员变量的方法
public void setAge(int age)
{
//执行合理性校验,要求学生年龄必须在6-30之间
if (age>30 || age<6)
{
System.out.println("输入的学生年龄不符合要求!");
return;
}
else
{
this.age=age;
}
}
public int getAge()
{
return this.age;
}
//提供操作gender成员变量的方法
public void setGender(String gender)
{
if (gender != "男" || gender != "女")
{
System.out.println("输入的学生的性别不符合要求!");
return;
}
else
{
this.gender=gender;
}
}
public String getGender()
{
return this.gender;
}
//提供操作phone成员变量的方法
public void setPhone(String phone)
{
if (phone.length()<15) //最好用正则表达式,本书第七章有介绍。
{
System.out.println("输入的学生电话号码位数不正确!");
return;
}
else
{
this.phone=phone;
}
}
public String getPhone()
{
return this.phone;
}
//提供操作address成员变量的方法
public void setAddress(String address)
{
this.address=address;
}
public String getAddress()
{
return this.address;
}
//提供操作email成员变量的方法
public void setEmail(String email)
{
this.email=email;
}
public String getEmail()
{
return this.email;
}
//学生类默认的构造器
public Student()
{
this.name="刘备";
this.age=28;
this.gender="男";
this.phone="134567890";
this.address="大汉涿郡楼桑村";
this.email="dahanhuangshu@126.com";
}
//学生类带成员变量的构造器
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 play()
{
System.out.println("玩:"+"牧童骑黄牛,歌声振林樾。意欲捕鸣蝉,忽然闭口立。");
}
//提供“睡”的行为方法
public void sleep()
{
System.out.println("睡:"+"大梦谁先觉?平生我自知。草堂春睡足,窗外日迟迟。");
}
//主方法入口
public static void main(String[] args)
{
Student st1=new Student();
Student st2=new Student("刘备",28,"男","123456789","大汉涿郡楼桑村","dahanhuangshu@126.com");
Student [] stu = {st1, st2};
Scanner in = new Scanner(System.in);
System.out.println("请输入名字或邮箱或地址中的一个:");
String input = in.next();
for (Student stus : stu)
{
// 用“==”运算符,该运算符表示指向字符串的引用是否相同
// 用.equals()方法,该方法比较的是字符串的内容是否相同
if (input.equals(stus.getName()) || input.equals(stus.getAddress()) || input.equals(stus.getEmail()))
{
System.out.println("存在该学生...");
System.out.println("===============================");
System.out.println(stus.name+"|"+stus.age+"|"+stus.gender+"|"+stus.phone+"|"+stus.address+"|"+stus.email);
System.out.println("===============================");
st1.eat();
st1.drink();
st1.play();
st1.sleep();
break;
}
else
{
System.out.println("不存在该学生...");
break;
}
}
}
}
2、利用第一题定义的Student类,定义一个Student[]数组保存多个Student对象作为通讯录数据。程序可通过name、email、address查询,如果找不到数据,则进行友好提示。
答案:见上一题源代码。
3、定义普通人、老师、男主任、学生、学校这些类,提供适当的成员变量、方法用于描述其内部数据和行为特征,并提供主类使之运行。要求有良好的封装性,将不同类放在不同哦包小面,增加文档注释,生成API文档。
学生类设计与应用

本文设计了一个学生类,包括姓名、年龄等属性及其增删改查方法,并实现了吃、喝等行为方法。同时,利用该类创建了学生数组作为通讯录,支持按姓名、邮箱、地址查询。
576





