day09作业:

必做题:
========================================
第一题:
1.定义一个Animal类,包含如下行为:
eat() 打印"要吃饭"
run() 打印"会跑步"
sleep() 打印"要睡觉"
2.定义一个Dog类,继承Animal类,重写eat(),run()方法
定义自己特有的行为 :
cry() 打印"狗会汪汪叫"
3.定义测试类DogTest, 创建Dog的对象,依次调用eat(),run(),sleep(),cry()方法,打印出如下语句
狗要吃那啥
狗跑的如脱缰的野狗
要睡觉
狗会汪汪叫

 1 package com.hp.work08;
2
3 public class Animal {
4 public void eat(){
5 System.out.println("要吃饭");
6 }
7 public void run(){
8 System.out.println("会跑步");
9 }
10 public void sleep(){
11 System.out.println("要睡觉");
12 }
13 }
package com.hp.work08;

public class Dog  extends Animal{
public void eat(){
System.out.println("狗要吃那啥");
}
public void run(){
System.out.println("狗跑的如脱缰的野狗");
} public void cry(){
System.out.println("狗会汪汪叫");
}
}
 1 package com.hp.work08;
2
3 public class DogTest {
4 public static void main(String[] args) {
5 Dog dog=new Dog();
6 dog.eat();
7 dog.run();
8 dog.sleep();
9 dog.cry();
10
11 }
12 }

第二题:
1.定义一个Phone抽象类,包含如下方法:
普通方法: call() 输出:"打电话"
普通方法: sendMessage() 输出:"发短信"
抽象方法: playGame();

 1 package com.hp.work08;
2
3 public abstract class Phone {
4 public void call(){
5 System.out.println("打电话");
6 }
7 public void sendMessage(){
8 System.out.println("发短信");
9 }
10 public abstract void playGame();
11 }

2.定义一个IPhone类,继承Phone类
重写sendMessage()方法,输出:"发彩信"
实现playGame()方法,输出:"打王者农药"
定义自己特有的行为 :
siri() 打印"人工智障"

 1 package com.hp.work08;
2
3 public class IPhone extends Phone {
4 public void sendMessage(){
5 System.out.println("发彩信");
6 }
7
8 @Override
9 public void playGame() {
10 System.out.println("打王者农药");
11 }
12 public void siri(){
13 System.out.println("人工智障");
14
15 }}

3.定义测试类IPhoneTest, 创建IPhone的对象,调用方法,打印出如下语句
打电话
发彩信
打王者农药
人工智障

 1 package com.hp.work08;
2
3 public class IPhoneTest {
4 public static void main(String[] args) {
5 IPhone iPhone=new IPhone();
6 iPhone.call();
7 iPhone.sendMessage();
8 iPhone.playGame();
9 iPhone.siri();
10 }
11
12
13 }

第三题:
1.定义Person类,包含空参、满参构造和以下成员变量:
姓名name
年龄age
生成所有成员变量set/get方法
定义方法:void printPerson(),打印出"我是山顶洞人"

 1 package com.hp.work08;
2
3 public class Person {
4 public String name;
5 public int age;
6
7 public Person(String name, int age) {
8 this.name = name;
9 this.age = age;
10 }
11
12 public Person() {
13 }
14
15 public String getName() {
16 return name;
17 }
18
19 public void setName(String name) {
20 this.name = name;
21 }
22
23 public int getAge() {
24 return age;
25 }
26
27 public void setAge(int age) {
28 this.age = age;
29 }
30 public void printPerson(){
31 System.out.println("我是山顶洞人");
32 }
33
34
35 }

2.定义Student继承于Person类,新增如下属性
学校 school
生成空参、满参构造和set/get方法
定义方法:void printStudent(),先输出"我叫XXX,我今年YYY岁,我现在的学校是:ZZZ" 再调用printPerson()方法

 1 package com.hp.work08;
2
3 public class Student extends Person{
4 private String school;
5
6 public Student() {
7 }
8
9 public Student(String name, int age, String school) {
10 super(name, age);
11 this.school = school;
12 }
13
14 public String getSchool() {
15 return school;
16 }
17
18 public void setSchool(String school) {
19 this.school = school;
20 }
21 public void printStudent(){
22 System.out.println("我叫"+name+",我今年"+age+"岁,我现在的学校是:"+school);
23 printPerson();
24 }
25 }

3.在测试类中,创建并初始化一个Student 对象 s, 调用printStudent()方法,打印出如下语句:
我叫卡特琳娜,我今年19岁,我现在的学校是:战争学院
我是山顶洞人

 1 package com.hp.work08;
2
3 public class StudentTest {
4 public static void main(String[] args) {
5 Student s=new Student("卡特琳娜",19,"战争学院");
6 s.printStudent();
7 }
8
9
10 }

第四题:
1.定义抽象类Phone,要求如下:
包含空参、满参构造和以下成员变量
品牌 brand( String 型)
生成所有成员变量set/get方法
定义抽象方法:void playMusic(String s)

 1 package com.hp.work0802;
2
3 public abstract class Phone {
4 public String brank;
5
6 public Phone() {
7 }
8
9 public Phone(String brank) {
10 this.brank = brank;
11 }
12
13 public String getBrank() {
14 return brank;
15 }
16
17 public void setBrank(String brank) {
18 this.brank = brank;
19 }
20 public abstract void playMusic(String s);
21
22 }

2.定义类IPhone,要求如下:
继承抽象类 Phone
构造方法包括:空参构造和满参构造方法
重写抽象方法:
void playMusic(String s),要求:输出打印"XXX手机正在播放歌曲:s"
PS:XXX是Phone类中的 brand属性值,s是传入的参数

package com.hp.work0802;

public class IPhone extends Phone{

    public IPhone() {
} public IPhone(String brank) {
super(brank);
}
public void playMusic(String s){
brank="华为";
System.out.println(brank+"手机正在播放歌曲:"+s);
}
}

3.定义测试类TestDemo,在main方法实现以下功能:
创建并初始化一个IPhone 对象 phone,调用phone的playMusic(String s)方法,传入参数"菊花台"
打印出如下语句:
华为手机正在播放歌曲:菊花台

1 package com.hp.work0802;
2
3 public class TestDome {
4 public static void main(String[] args) {
5 IPhone phone=new IPhone();
6 phone.playMusic("菊花台");
7 }
8 }

加强题:
=============================================================================
第五题:
1.定义一个Phone类.包含如下属性
品牌brand
价格price
生成所有成员变量set/get方法,空参构造和有参构造

 1 package com.hp.work0803;
2
3 public class Phone {
4 public String brank;
5 public int price;
6
7 public Phone() {
8 }
9
10 public Phone(String brank, int price) {
11 this.brank = brank;
12 this.price = price;
13 }
14
15 public String getBrank() {
16 return brank;
17 }
18
19 public void setBrank(String brank) {
20 this.brank = brank;
21 }
22
23 public int getPrice() {
24 return price;
25 }
26
27 public void setPrice(int price) {
28 this.price = price;
29 }
30 }

2.定义一个Person类,包含如下属性
姓名name
年龄age
生成所有成员变量set/get方法,空参构造和有参构造
定义一个玩手机行为 palyPhone(Phone p) 要求打印:"YYY岁的XXX正在玩手机,手机品牌是ZZZ,价格为QQQ

PS:YYY是Person类中的 age属性值,XXX是Person 类中的 name属性值,ZZZ是Phone 类中的 brand属性值,QQQ是Phone 类中的 price属性值"

 1 package com.hp.work0803;
2
3 public class Person extends Phone {
4 public String name;
5 public int age;
6
7 public Person() {
8 }
9
10 public Person(String name, int age) {
11 this.name = name;
12 this.age = age;
13 }
14
15 public String getName() {
16 return name;
17 }
18
19 public void setName(String name) {
20 this.name = name;
21 }
22
23 public int getAge() {
24 return age;
25 }
26
27 public void setAge(int age) {
28 this.age = age;
29 }
30 public void palyPhone(Phone p){
    System.out.println(age+"岁的"+name+"正在玩手机,手机品牌是"+p.brank+",价格为"+p.price);
32  } 33 }

3.在测试类TestDemo中,创建Person对象ren,调用ren的 palyPhone(Phone p) 方法,打印出
"40岁的罗永浩正在玩手机,手机品牌是小米,价格为2999"
ps:参数p需要自行创建并初始化变量brand与 price

 1 package com.hp.work0803;
2
3 public class TestDemo {
4 public static void main(String[] args) {
5 Person ren=new Person("罗永浩",40);
6
  
 9  } 10 }

第六题:
1.定义抽象类Study,要求如下:
包含空参、满参构造和以下成员方法
定义抽象方法:void stu(Phone p);
定义普通方法: void info1() 打印"好好学习,天天向上"
定义普通方法: void info2() 打印"键盘敲烂,月薪过万"

 1 package com.hp.work0804;
2
3 public abstract class Study {
4 public Study() {
5 }
6
7 public abstract void stu(Phone p);
8
9 public void info1(){
10 System.out.println("好好学习,天天向上");
11 }
12 public void info2(){
13 System.out.println("键盘敲烂,月薪过万");
14 }
15 }

2.定义类Phone,要求如下:
包含空参、满参构造和以下成员变量
品牌 brand
价格 price
生成所有成员变量set/get方法
定义方法:void printPhone(),打印出Phone的具体信息,如"XXX手机,价格YYY"
ps: XXX为Phone类的brand属性 yyy为Phone类的price属性

 1 package com.hp.work0804;
2
3 public class Phone {
4 public String brand;
5 public int price;
6
7 public Phone() {
8 }
9
10 public Phone(String brand, int price) {
11 this.brand = brand;
12 this.price = price;
13 }
14
15 public String getBrand() {
16 return brand;
17 }
18
19 public void setBrand(String brand) {
20 this.brand = brand;
21 }
22
23 public int getPrice() {
24 return price;
25 }
26
27 public void setPrice(int price) {
28 this.price = price;
29 }
30 public void printPhone(){
31 brand="华为";
32 price=1999;
33 System.out.println(brand+"手机,价格"+price);
34 }
35
36 }

3.定义类Student,包含空参、满参构造和以下成员变量
姓名 name(String 型)
年龄 age(int型)
生成所有成员变量set/get方法
定义成员方法:void studying(Learn le),要求:
1.输出“yyy岁的xxxx学习中”,
2.然后在方法内通过传入的Learnd对象le依次调用info1(),info2(),stu(Phone p)方法
ps: yyy为Student类中的age方法,xxxx为Student类中的name方法,
ps: Learn继承于Study类,需要实现stu(Phone p)抽象方法,实现要求:调用参数p的printPhone()方法;

 1 package com.hp.work0804;
2
3 public class Student {
4 public String name;
5 public int age;
6
7 public Student(String name, int age) {
8 this.name = name;
9 this.age = age;
10 }
11
12 public Student() {
13 }
14
15 public String getName() {
16 return name;
17 }
18
19 public void setName(String name) {
20 this.name = name;
21 }
22
23 public int getAge() {
24 return age;
25 }
26
27 public void setAge(int age) {
28 this.age = age;
29 }
30 public void studying(Learn le){
31 Phone p=new Phone();
32 age=15;
33 name="关晓彤";
34 System.out.println(age+"岁的"+name+"学习中");
35 le.info1();
36 le.info2();
37 le.stu(p);
38 }
39
40 }
package com.hp.work0804;

public abstract class Learn extends Study {

public void stu(Phone p) {
p.printPhone();
} }

4.定义测试类中,创建并初始化一个Student 对象 s, 调用studying(Learn le)方法,打印出如下语句:
15岁的关晓彤学习中
好好学习,天天向上
键盘敲烂,月薪过万
华为手机,价格1999

 1 package com.hp.work0804;
2
3 public class TestDome {
4
5 public static void main(String[] args) {
6
7 Student s=new Student();
8 Learn le=new Learn() {
9 @Override
10 public void stu(Phone p) {
11 super.stu(p);
12 }
13 };
14 s.studying(le);
15 }
16 }

work08的更多相关文章

  1. java学习笔记(详细)

    java平台 1.J2SE java开发平台标准版 2.J2EE java开发平台企业版 java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序.不同系统上要安装对应的虚 ...

随机推荐

  1. Serverless 应用优化四则秘诀

    ​简介:Serverless 架构下,虽然我们更多精力是关注我们的业务代码,但是实际上对于一些配置和成本也是需要进行关注的,并且在必要的时候,还需要根据配置与成本进行对我们的 Serverless 应 ...

  2. WPF 给 Pen 的 DashStyle 设置 0 0 的虚线数组将会让渲染线程消耗大量 CPU 资源

    给 WPF 的 Pen 的 DashStyle 属性设置 0 0 的虚线,在绘制几何图形时,绘制的几何图形的尺寸将关联渲染线程所使用的 CPU 资源.大约在周长大于 500 时,将可以从任务管理器上看 ...

  3. 2018-7-15-WPF-在-DrawingContext-的-push-如何使用

    title author date CreateTime categories WPF 在 DrawingContext 的 push 如何使用 lindexi 2018-7-15 15:51:0 + ...

  4. GeoHash实现附近的人功能(如微信附近的人、共享单车附近的车辆、美团附近的商家)

    如何查找当前点(118.818747°E,32.074497°N)附近500米的人? 这一类功能很常见(如微信附近的人.共享单车附近的车辆.美团附近的商家),那在java中是如何实 现的呢? 1 实现 ...

  5. 表和数据连接,而不是和表连接(JOIN)

    1.连接数据,但是顺序会受影响 在使用JOIN连接临时表或子查询时,无法保证结果的顺序与特定值的顺序完全一致.这是因为在查询过程中,数据库优化器可能会选择不同的执行计划,导致结果的顺序发生变化. SE ...

  6. fastposter v2.8.4 发布 电商海报生成器

    fastposter v2.8.4 发布 电商海报生成器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.贰维海报,图片海报,分享海报贰维码推 ...

  7. sql 查找是否存在的记录

    场景:根据条件从数据库表中查询 『有』与『没有』,只有两种状态 方法1: SELECT count(*) FROM table WHERE a = 1 方法2: SELECT 1 FROM table ...

  8. Java简单实现MQ架构和思路01

    实现一个 MQ(消息队列)架构可以涉及到很多方面,包括消息的生产和消费.消息的存储和传输.消息的格式和协议等等.下面是一个简单的 MQ 架构的实现示例,仅供参考: 定义消息格式和协议:我们可以定义一个 ...

  9. 用 C 语言开发一门编程语言 — 语法解析器

    目录 文章目录 目录 前文列表 编程语言的本质 词法分析 语法分析 使用 MPC 解析器组合库 安装 快速入门 实现波兰表达式的语法解析 波兰表达式 正则表达式 代码实现 前文列表 <用 C 语 ...

  10. 『手撕Vue-CLI』添加帮助和版本号

    前言 经过上一篇『手撕Vue-CLI』编码规范检查之后,手撕 Vue-CLI 已经进阶到了代码规范检查这一步,已经将基本的工程搭建好了,然后代码规范约束也已经加入了,并且将 nue-cli 指令绑定到 ...