一、知识点(必做):
1. Student.java
需求:定义一个符合JavaBean规范的学生类(name, age)并使用this关键字
作业目的:掌握this的使用,通过this解决变量的二义性
package task1;
public class Student {
/**
* ### 1. Student.java
* 需求:定义一个符合JavaBean规范的学生类(name, age)并使用this关键字
* 作业目的:掌握this的使用,通过**this解决变量的二义性**
*
* @param args
*/
// 定义一个符合JavaBean规范的学生类(name, age)
private String name;
private int age;
public String getName() {
return name;
}
// 并使用this关键字
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
// 并使用this关键字
public int getAge() {
return age;
}
public Student() {
}
void mes() {
System.out.println(name + " " + age);
}
public static void main(String[] args) {
Student stu = new Student();
stu.mes();
}
}
总结:弄清楚this关键字作用点和javabean语法
2.ExtendDemo.java(重点)
需求:使用面向对象的知识定义出老师(Teacher)、学生(Student)、员工(Employee)三个类, 抽取出三者的共同父类Person
老师:拥有名字、年龄、级别三个状态,有授课和休息两个功能
学生:拥有名字、年龄、学好三个状态,有学习和休息两个功能
员工:拥有名字、年龄、入职时间三个状态,有工作和休息两个功能
作业目的:掌握继承语法
package task2;
public class Employee extends Person {
/**
* ### ExtendDemo.java(重点)
* 需求:使用面向对象的知识定义出老师(Teacher)、学生(Student)、
* 员工(Employee)三个类, 抽取出三者的共同父类Person
* - 老师:拥有名字、年龄、级别三个状态,有授课和休息两个功能
* - 学生:拥有名字、年龄、学好三个状态,有学习和休息两个功能
* - 员工:拥有名字、年龄、入职时间三个状态,有工作和休息两个功能
* 作业目的:**掌握继承语法**
* @param
*/
private int date;
private Person person;
public Employee(){}
public int getDate() {
return date;
}
public void setDate(int date) {
this.date = date;
}
void work(){
System.out.println("工作");
}
}
package task2;
public class ExtendDemo {
public static void main(String[] args) {
Employee employee = new Employee();
Teacher teacher = new Teacher();
Student student =new Student();
employee.setAge(21);
employee.setName("bata");
employee.getDate();
employee.rest();
employee.work();
teacher.setLevel(1);
teacher.setAge(43);
teacher.setName("arfar");
teacher.rest();
teacher.teach();
student.setName("朱可夫");
student.setAge(11);
student.setHobby("光域");
student.rest();
student.Study();
}
}
package task2;
public class Person {
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age <0) {
System.out.println("不合理");
}else{this.age = age;}
}
public Person() {
}
void rest() {
System.out.println("休息");
}
}
package task2;
public class Student extends Person{
private String hobby;
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public Student(){
}
void Study(){
System.out.println("学习");
}
}
package task2;
public class Teacher extends Person {
private int level;
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public Teacher(){}
void teach(){
System.out.println("授课");
}
}
3.OverrideDemo.java(重点)
需求:演示方法覆盖
父类鸟类(Bird),鸟类中含有飞翔(fly)行为
鸟的子类鸵鸟类(Ostrich),子类中覆盖父类飞翔(fly)方法
作业目的:掌握方法覆盖的作用和写法
4.AbstractDemo.java(重点)
需求:分别求出圆形和矩形的面积
矩形(Rectangle):求出矩形的面积
圆形(Circle):求出圆形的面积
图形(AbstractGraph):表示求形状面积的抽象类,里面包含求面积的抽象方法,其他子类必须覆盖此方法
要求:先写没有继承抽象类的情况,再根据类抽取出抽象类,并且必须测试
作业目的:引出抽象类和抽象方法
5.AbstractDemo2.java
需求:演示抽象类特点
抽象类不能创建对象,调用没有方法体的抽象方法没有任何意义
抽象类中可以同时拥有抽象方法和普通方法
抽象类要有子类才有意义,子类必须覆盖父类的抽象方法,否则子类也得作为抽象类
作业目的:掌握抽象类的定义和特点
6.ObjectDemo.java (预习题)
需求:演示Object类中的toString和equals方法
创建一个Person类,通过覆盖toString方法,打印Person对象的内容
使用和equals比较两个Person对象,通过结果得到和equals的区别
作业目的:
掌握Object类中的toString方法和equals方法
掌握==和equals的区别
二、综合练习(必做):
1. 按要求代码实现:
徒弟(Prentice):父类
孙悟空
字段:name,age,武器(weapon),紧箍咒(formula)
方法:吃斋(doMaigre),念佛(buddha),取经(doPilgrimage),战斗(fight), 降妖 (extDevil)
猪八戒
字段:name,age,武器,媳妇(wife),
方法,念佛,取经,战斗, 牵马 holding horses ---> (holdHorse)
沙和尚
字段:name,age,武器, 流沙河(sandRiver),
方法:念佛,取经,战斗, 挑行李 Pick up the luggage --> pickUpLuge
要求:
1、分析上面信息,代码优化(用到知识点:1、this 2、super 3、javabean 4、继承)。
2、写测试类 Test测试
3、添加一定的剧情(随意发挥)。
2. 需求: 定义商品类, 并封装商品对象
商品类: Item
具有成员变量,:
编号(code) String类型 商品编号
名称(name) String 类型 商品名称
类别(type) String 类型 商品的具体类别
价格(price) double 类型 商品的价格
1)提供两个构造器
没有参数的构造器
创建一个以编号(code),名称(name) 作为形式参数的构造器
2)编写一个main方法,添加一个商品,其商品信息如下
创建两个笔记本电脑的商品(computer),
商品1:
编号(code):666
名称: 戴尔(DELL) 游戏笔记本
类型: 游戏
价格: 5499.00
商品2:
编号(code):007
名称: 苹果(Macbook pro)笔记本
类型: 电脑,办公
价格: 18000.00
在main方法打印商品的基本信息
三、拓展练习(选做)
1. User类
定义一个网络用户类(User),包含用户ID(id)、用户密码(password)、email地址(emailAdrr)三个私有化成员变量,
请定义一个含有用户ID(id)、用户密码(password)两个参数的构造器,
完成三个实例成员变量的初始化,其中email地址(emailAdrr)是用户ID加上字符串”@gameschool.com”。
定义一个成员方法 showInfo,用于输出用户的基本信息
请利用上述构造器,在main方法中实例化网络用户类对象并打印用户基本信息。