chapter10-homework-Java

第十章作业

    • Homework01
      • 知识点
    • Homework02
      • 知识点
    • Homework03
      • 知识点
    • Homework04
      • 知识点
    • Homework05
      • 知识点
    • Homework06
    • Homework07
    • Homework08

Homework01

分析执行结果。

public static void main(String[] args) {Car_ c = new Car_();Car_ c1 = new Car_(100);System.out.println(c);System.out.println(c1);
}
class Car_ {double price = 10;static String color = "white";public String toString() {return price + "\t" + color;}public Car_() {this.price = 9;this.color = "red";}public Car_(double price) {this.price = price;}
}

我的答案:
9 white
100 white

正确答案为:
9.0 red
100.0 red

知识点

toString的改写
静态变量(类变量)
变量类型

打印对象代表输出对象的toString方法。
静态变量(类变量)的值是可以修改的。
同一个类的所有对象共享类变量&类方法。
属性price是double类,输出应为小数。

Homework02

在这里插入图片描述

知识点

(1)类变量&类方法不可以使用this。
类变量访问: ①类名.类变量名 [推荐] 或者 ②对象名.类变量名
类方法调用: ①类名.类方法名 或者 ②对象名.类方法名
(2)静态成员也有访问修饰符,如果用了private修饰,那么在main方法中就不能通过“类名.静态变量”访问了。

Homework03

编程题Homework03.java
按要求实现下列问题:
1.动物类Animal包含了抽象方法shout();
2.Cat类继承了Animal,并实现方法shout,打印“猫会瞄瞄叫”
3.Dog类继承了Animal,并实现方法shout,打印“狗会汪注叫”
4.在测试类中实例化对象Animal cat =new Cat(),并调用cat的shout方法
5.在测试类中实例化对象Animal dog=new Dog()。并调用dog的shout方法

知识点

(1)抽象类相关
A.抽象类不一定要包含abstract方法,如果只有普通方法也是可以的。
B.一旦类包含了abstract方法,则这个类必须声明为abstract。
C.抽象方法不能使用 private、final 和 static 来修饰。【注意】默认、protected、public是可以的!但是子类要与父类一致
(2)多态
A.向上转型:父类的引用指向了子类的对象 Animal cat = new Cat();
B.向下转型:Cat kitty = (Cat) cat ;

Homework04

编程题Homework04.java 2min
1.计算器接口具有work方法,功能是运算,有一个手机类Cellphone,定义方法testWork测试计算功能,调用计算接口的work方法
2.要求调用CellPhone对象的 testWork方法,使用上匿名内部类

!!!不会写。。。/(ㄒoㄒ)/

public class Homework04 {public static void main(String[] args) {Cellphone cellphone = new Cellphone();cellphone.testWork(new ICalculate() {@Overridepublic double work(double n1, double n2) {return n1 + n2;}}, 10, 8);//18.0}
}interface ICalculate {public double work(double n1, double n2) ;
}class Cellphone {public void testWork(ICalculate iCalculate, double n1, double n2) {double result = iCalculate.work(n1, n2);//动态绑定System.out.println("计算后的结果是=" + result);}
}
/*
分析题目:“接口 work方法”
这里的work是程序员自定义的。
interface ICalculate {public double work(double n1, double n2) ;
}
------------------------------------------------------------------
“手机类Cellphone,定义方法testWork测试计算功能,调用计算接口的work方法”
class Cellphone {//Q:testWork为什么设置成这样?public void testWork(ICalculate iCalculate, double n1, double n2) {double result = iCalculate.work(n1, n2);//动态绑定System.out.println("计算后的结果是=" + result);}
}
------------------------------------------------------------------
“调用CellPhone对象的 testWork方法,使用上匿名内部类”
Cellphone cellphone = new Cellphone();
cellphone.testWork(new ICalculate() {@Overridepublic double work(double n1, double n2) {return n1 + n2;}
}, 10, 8);
------------------------------------------------------------------
匿名内部类:
【位置】外部类的方法/代码块里
【语法】new 类或者接口(参数列表) {类体}
【本质】匿名内部类是对象。
【底层】
分析上述代码:因为这里是基于接口的匿名内部类,所以底层是implements
① 类XXX(XXX表示匿名)先实现接口ICalculate
class XXX implements ICalculate {@Overridepublic void cry() work(double n1, double n2) {return n1 + n2;}
}
这里的XXX其实是,Homework04$1 (class Homework04$1 implements ICalculate)
② new XXX();
创建了Homework04$1类的一个对象
------------------------------------------------------------------
testWork方法中的参数是ICalculate iCalculate
public void testWork(ICalculate iCalculate, double n1, double n2)
接口ICalculate的引用iCalculate 接收(指向) main方法 传来的对象《new XXX()》
接口引用可以指向实现了接口的类的对象
------------------------------------------------------------------
iCalculate -> new XXX() -> XXX implements ICalculate
double result = iCalculate.work(n1, n2);
先去XXX类中寻找work方法,发现已经被重写,就调用。*/

知识点

(1)接口中所有的方法是public方法
(2)interface 中的方法有三种
① 抽象方法,可以不写abstract
② 默认实现方法,需要使用default关键字修饰
③ 静态方法
(3)匿名内部类:在外部类的方法/代码块内。在Homework04类的main方法内使用。

Homework05

内部类
1.编一个类A,在类中定义局部内部类B,B中有一个私有常量name,有一个方法show()打印常量name。进行测试
2.进阶:A中也定义一个私有的变量name,在show方法中打印测试

内部类
1.编一个类A,在类中定义局部内部类B,B中有一个私有常量name,有一个方法show()打印常量name。进行测试
2。进阶:A中也定义一个私有的变量name,在show方法中打印测试

知识点

1.常量怎么定义:final,大写
final private String name=“haha”;这样就是常量
2.内部类访问外部类
① 内部类可以直接访问外部类的成员,System.out.println(name);
② 如果外部类和内部类的属性重名 System.out.println(A.this.name);

Homework06

编程题Homework06.java
1、有一个交通工具接口类Vehicles,有work接口
2、有Horse类和Boat类分别实现Vehicles
3、创建交通工具工厂类,有两个方法分别获得交通工具Horse和Boat
4、有Person类,有name和Vehicles属性,在构造器中为两个属性赋值
5、实例化Person对象“唐僧”,要求一般情况下用Horse作为交通工具,遇到大河时用Boat作为交通工具

分析
【交通工具工厂类】是创建工具的
创建 -> 返回两个工具的对象
获得交通工具Horse和Boat -> 不创建类 -> static

【一般情况下用Horse作为交通工具,遇到大河时用Boat作为交通工具】
把这两个封装成方法,到Person类中

Homework07

有一个Car类,有属性temperature(温度),车内有Air(空调)类,有吹风的功能flow,
Air会监视车内的温度,如果温度超过40度则吹冷气。如果温度低于0度则吹暖气,如果在这之间则关掉空调。
实例化具有不同温度的Car对象,调用空调的flow方法,测试空调吹的风是否正确。

我用的是局部内部类
老师用的是成员内部类

Homework08

枚举类
1、创建一个Color枚举类
2、有RED,BLUE,BLACK,YELLOW,GREEN这个五个枚举值/对象;
3、Color有三个属性redValue,greenValue,blueValue,
4、创建构造方法,参数包括这三个属性,
5、每个枚举值都要给这三个属性赋值,三个属性对应的值分别是
6、red: 255,0,0 blue:0,0,255 black:0,0,0 yellow:255,255,0 green:0,255,0
7、定义接口,里面有方法show,要求Color实现该接口
8、show方法中显示三属性的值
9、将枚举对象在switch语句中匹配使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm的汽车论坛管理系统设计与实现

基于ssm的汽车论坛管理系统设计与实现 摘要:信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题…

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业

Written Part 1. 基于表 1 1 1 回答下列问题(min_sup40%, min_conf75%): Transaction IDItems Bought0001{a, d, e}0024{a, b, c, e}0012{a, b, d, e}0031{a, c, d, e}0015{b, c, e}0022{b, d, e}0029{c, d}0040{a, b, c}0033{a, d, e}0038…

解析Top-K问题及堆排序算法

Top-K问题是在海量数据中找到最大或最小的K个元素,它在实际应用中非常常见,例如专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。在面对大规模数据时,直接对数据进行排序可能效率低下,因为排序的时间复杂度通常为O(n lo…

C语言进阶指南(14)(部分字符串库函数及其模拟实现)

欢迎来到博主的专栏——C语言进阶指南 博主id:reverie_ly 文章目录 1、strlen()——字符串长度计算函数自定义strlen函数的实现 2、strcpy——字符串拷贝函数strcpy的模拟实现 3.strcat——字符串追加函数strcat的模拟实现 4、strcmp——字符…

【Python】yaml.safe_load()函数详解和示例

在Python中,PyYAML库提供了对YAML(YAML Ain’t Markup Language)文件的强大支持。YAML是一种直观的数据序列化标准,可以方便地存储和加载配置文件、数据日志等。 yaml.safe_load和yaml.load是Python的PyYAML库提供的两个函数&…

边界突破之linux系统上线Cobalt Strike

别低头,皇冠会掉;别流泪,坏人会笑 基础文件 加载插件 服务端开启监听 windows/beacon_https/reverse_https 类型的beacon 生成木马Beacon 命令如下 linux ./genCrossC2.Linux [TeamServer的IP] [HTTPS监听器端口] [.cobaltstrike.beacon_k…

【洛谷算法题】P5716-月份天数【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5716-月份天数【入门2分支结构】🌏题目描述🌏输入格式&a…

(C++)移动零--双指针法

个人主页:Lei宝啊 愿所有美好如期而遇 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://le…

IDEA如何配置Git 遇到问题的解决

新建项目 点击 会变红 会生成.git隐藏文件 配置远程仓库路径:点击Manage Remotes:将远程仓库的链接放到这里: 得到如下样式: 此时提交到本地仓库 点击add,添加到暂存文件: 此时文件变绿&#xf…

J2EE征程——第一个纯servletCURD

第一个纯servletCURD 前言在此之前 一,概述二、CURD1介绍2查询并列表显示准备实体类country编写 CountryListServlet配置web.xml为web应用导入mysql-jdbc的jar包 3增加准备增加的页面addc.html编写 CAddServlet配置web.xml测试 4删除修改CountryListServlet&#xf…

36.JavaScript补完计划:typescript

点赞收藏加关注,你也能住大别墅! 一、什么是typescript 二、应用场景 我认为JavaScript的特点就是在于它强大的延展性,不仅蔓延到了后端,而且也逐渐成为代码世界无法被忽视的存在。那么,编写js代码时我们都会经常遇到…

【Springboot系列】SpringBoot整合Jpa

文章目录 前言:什么是JPA?JPA优缺点优点1.简化开发:2.高度抽象:3.跨数据库支持:4.自动化的事务管理: 缺点1.学习成本较高:2.性能问题:3.灵活性受限: 示例版本依赖代码Use…