一、知识点(必做):

SuperDemo.java (重点)

需求:请用面向对象知识构建以下类信息。

类型 字段 行为
狗狗 昵称 健康值 品种 输出信息
猫猫 昵称 健康值 性别 输出信息

作业目的:熟练使用this和super关键字

  1. H:\idea-workspace\Day11\src\hw\text1

StaticDemo.java (重点)

需求:定义一个狗类Dog,在狗类中定义静态字段和静态方法(属于类的成员),定义非静态字段和非静态方法(属于对象的成员),并在StaticDemo方法中测试调用狗类中的方法和字符

作业目的:理解static关键字的含义和使用

  1. H:\idea-workspace\Day11\src\hw\text2

FinalDemo.java

需求:演示final修饰符的特点

  • final修饰的类:表示最终的类, 该类不能再有子类

  • final修饰的方法:最终的方法, 该方法不能被子类覆盖

  • final修饰的变量:表示常量,该变量只能赋值一次,不能再重新赋值。

  • 基本数据类型:表示的值不能改变

  • 引用数据类型:所引用的地址值不能改变

作业目的:final修饰符的特点

  1. H:\idea-workspace\Day11\src\hw\text3

CodeBlockDemo.java

需求:演示静态代码块、初始化代码块、局部代码块的写法

作业目的:掌握静态代码块的语法

  1. H:\idea-workspace\Day11\src\hw\text4
  2. //总结 初始化代码块(构造代码块):直接定义在类中,每次创建的对象的时候都会执行初始化代码块,开发中不适用初始化代码块,即便要做初始化代码工作,可以直接在构造器中完成。 静态代码块:使用static修饰的初始化代码块。当该代码块的类的字节被加载进JVM中,就会执行static代码块代码,在开发中,用来加载资源、加载配置文件等操作。 局部代码块:直接定义在方法内的代码块,一般的,不会直接使用局部代码块的,结合if,while,for等关键字使用,表示一块代码区域

匿名内部类(一定要讨论)

需求:演示匿名内部类用法

  • 定义一个接口IUSB

  • 在测试类中创建一个IUSB的匿名内部类对象

作业目的:掌握匿名内部类的语法和使用

  1. H:\idea-workspace\Day11\src\hw\text5
  2. // 一定要总结 匿名内部类,可以使用父类构造器和接口名来直接完成。
  3. 针对类,定义匿名内部类来继承父类(使用较少)
  4. new 父类构造器(【实参列表】){
  5. //匿名内部类的类体部分}
  6. 针对接口,定义匿名内部类来实现接口(使用较多)
  7. new 接口名称(){
  8. //匿名内部类的类体部分 }
  9. 注意:这里不是根据接口创建对象,而是一种语法

二、综合练习(必做):

练习一

需求:

商品类: Item

具有成员变量,:

  1. 编号(code) String类型 商品编号
  2. 名称(name) String 类型 商品名称
  3. 类别(type) String 类型 商品的具体类别
  4. 价格(price) double 类型 商品的价格
  5. **总商品数量(totalNum int 类型 商品的总商品数量**

1)提供两个构造器

  1. 没有参数的构造器
  2. 创建一个以编号(code),名称(name) 作为形式参数的构造器

2)编写一个main方法,添加一个商品,其商品信息如下

  1. 创建两个笔记本电脑的商品(computer),

商品1:

  1. 编号(code):666
  2. 名称: 戴尔(DELL) 游戏笔记本
  3. 类型: 游戏
  4. 价格: 5499.00

商品2:

  1. 编号(code):007
  2. 名称: 苹果(Macbook pro)笔记本
  3. 类型: 电脑,办公
  4. 价格: 18000.00

3)在main方法打印笔记本电脑(computer)的名称和价格

4)每创建一个商品对象总商品数量(totalNum)加一,请在main方法中打印totalNum值。

  1. H:\idea-workspace\Day11\src\hw\text6

练习二

按以下要求编写一个程序:

1)请用javaBean规范设计一个学生类Student,具有:

  1. 属性:no(学号)、name(姓名)和score(成绩)
  2. 功能:输出一位学生的数据内容(toString)、**计算学生的平均分(getAvg)**

2)在main()方法中创建五个学生信息,并定义一个对象数组用于存储创建的五位学生的数据,

  1. 使用**Student类的getAvg方法**计算出这些学生的平均分;并打印所有学生的信息。
  1. 思路:

在Student类中定义getAvg()方法, 并接收Student[]数组类型的参数,计算传递进来的学生的平均成绩

  1. H:\idea-workspace\Day11\src\hw\text7

练习三

定义一个网络用户类(User),包含用户id(id)、用户名(username)、用户密码(password)、email地址(emailAdrr)四个私有化成员变量和一个属于类的用户总人数(totalUser)

(1)请定义一个含有用户ID(ID)、用户密码(password)两个参数的构造器,完成三个实例成员变量的初始化,其中email地址(emailAdrr)是用户id加上字符串@gameschool.com

(2)请利用上述构造器,在main方法中实例化网络用户类对象,每创建一个对象,用户总人数(totalUser)加一,创建三个实例,最后打印用户总人数。