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.mzph.cn/news/184707.shtml

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

相关文章

Vue中 实现自定义指令(directive)及应用场景

一、Vue2 1. 指令钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选): bind 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已…

三.排序与分页

目录 一.排序数据二.分页 一.排序数据 1.排序规则 使用ORDER BY 子句排序 ASC(ascend)升序DESC(descend)降序 ORDER BY 子句在SELECT语句的结尾 2.单列排序 SELECT last_name, job_id, department_id, hire_date FROM e…

(蓝桥杯)1125 第 4 场算法双周赛题解+AC代码(c++/java)

题目一&#xff1a;验题人的生日【算法赛】 验题人的生日【算法赛】 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 1.又是偶数&#xff0c;又是质数&#xff0c;那么只有2喽 AC_Code:C #include <iostream> using namespace std; int main() {cout<<2;return 0; …

windows系统bat脚本命令总结之复制命令(copy和xcopy)

前言 做了一段时间的bat脚本开发&#xff0c;bat脚本中有各种各样的命令跟传统的编程逻辑完全不同&#xff0c;本专栏会讲解下各种各式的命令使用方法。 本篇文章讲解的是获取windows系统的复制命令&#xff08;copy和xcopy&#xff09;&#xff0c;copy和xcopy是Windows命令行…

【Web端CAD/CAE文字标注】webgl+canvas 2d实现文字标注功能

一、需求背景 在CAD/CAE领域经常会遇到显示节点编号这种需求&#xff0c;效果如下图&#xff1a; 本文介绍如何在WebGL中实现文字的显示&#xff0c;对于如何在OpenGL中实现请绕路。 二、实现原理 Canvas是HTML5提供的元素&#xff0c;用于在网页上绘制图形&#xff0c;其支…

设计循环队列

目录 设计循环队列 &#x1f642;【1】数组循环队列 思路分析 ❓1 ❓2 ❓3 易错总结 创建MyCircularQueue 初始化myCircularQueueCreate 为空否myCircularQueueIsEmpty 为满否myCircularQueueIsFull 插入元素myCircularQueueEnQueue 删除元素myCircularQueueDeQue…

load_policy命令详解与实例

1. 概述 load_policy是一个与systemd相关的命令,用于加载SELinux(Security-Enhanced Linux)策略。load_policy命令通常与SELinux策略文件(通常是以.pp或.te为扩展名的文件)一起使用,用于加载新的或更新的SELinux策略。 在加载新的SELinux策略后,新的访问控制规则将生效…

无醇啤酒行业分析:预计2028年将达到106亿美元

按照国际惯用的标准划分&#xff0c;通常将酒精度3.5%-4%的称为普通啤酒&#xff0c;将酒精度大于0.5%、小于2.5%的称为低醇啤酒&#xff0c;而酒精度小于0.5%便称为无醇啤酒。酒精给人带来的兴奋感&#xff0c;与体育比赛的紧张刺激相辅相成&#xff0c;啤酒也成为了许多球迷们…

基于UDP的网络聊天室

客户端 #include <myhead.h> //定义存储信息结构体 typedef struct _MSG {char code; //操作码&#xff1a;L表示登录C表示群聊S表示系统消息S表示退出char name[128]; char txt[256];}msg_t;//定义保存客户端网络信息的链表 typedef struct _ADDR {struct sockaddr_i…

第十四章 算法和数据结构

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他 第十四章 算法和数据结构 1. 顺序表、链表的区别及应用场景。 顺序表&#xff08;Sequential List&#xf…

【elementUI】el-tab相关问题

Tabs 标签页 分隔内容上有关联但属于不同类别的数据集合。 <template><el-tabs v-model"activeName" tab-click"handleClick"><el-tab-pane label"用户管理" name"first">用户管理</el-tab-pane><el-tab-p…

Linux重置MySql密码(简洁版)

关闭验证 /etc/my.cnf-->[mysqld]-->skip-grant-tables 重启MySql service mysql restart 登陆MySql mysql -u root 刷新权限 FLUSH PRIVILEGES; 更新密码 ALTER USER rootlocalhost IDENTIFIED BY 123456; 退出MySql exit 打开验证 /etc/my.cnf-->[mysqld]-->skip…

建设“参与城市”大学--SMU在2023年绿色金融全球论坛上分享观点

2023年11月21日&#xff0c;由新加坡管理大学&#xff08;SMU&#xff0c;简称新大&#xff09;和中国人民大学&#xff08;RUC&#xff0c;简称人大&#xff09;联合主办的“绿色金融与治理&#xff1a;从承诺到行动”全球论坛在北京召开。论坛汇集了来自新加坡、中国及世界各…

数据类型及强制转换

数据类型范围&#xff08;基本&#xff09; 数据类型占内存字节数表示范围数量级char&#xff08;signed char&#xff09;1-128~1272unsigned char10~2552short int&#xff08;signed short int&#xff09;2-32,768~32,7674unsigned short int20~65,5354int&#xff08;sig…

ThreeJs样例 webgl_shadow_contact 分析

webgl_shadow_contact 官方样例中&#xff0c;对阴影的渲染比较特殊&#xff0c;很值得借鉴&#xff0c;学习渲染阴影的思路&#xff1b;这个例子中对阴影的渲染&#xff0c;并没有使用任何光源&#xff0c;没有用shadowmap的常规方式 渲染阴影&#xff1b;而是使用了深度材质T…

SpringBoot项目打成jar包后,上传的静态资源(图片等)如何存储和访问

1.问题描述&#xff1a; 使用springboot开发一个项目&#xff0c;开发文件上传的时候&#xff0c;通常会将上传的文件存储到资源目录下的static里面&#xff0c;然后在本地测试上传文件功能没有问题&#xff0c;但是将项目打成jar包放到服务器上运行的时候就会报错&#xff0c…

Comodo SSL证书适合电商企业使用吗?

在电子商务领域&#xff0c;保护用户的个人和财务信息是至关重要的。SSL证书作为一项重要的安全工具&#xff0c;可以为电商企业提供信任和保护。Comodo SSL证书作为市场上的一家知名的证书颁发机构&#xff0c;是否适合电商企业使用呢&#xff1f;本文将探讨这个问题。 1、可信…

深入理解什么是消息队列

一、什么是消息队列 消息&#xff08;Message&#xff09;是指在应用之间传送的数据&#xff0c;消息可以非常简单&#xff0c;比如只包含文本字符串&#xff0c;也可以更复杂&#xff0c;可能包含嵌入对象。 消息队列&#xff08;Message Queue&#xff09;是一种应用间的通信…

P26 C++创建并初始化对象

目录 前言 01 在堆栈上创建对象 02 堆栈上创建对象有什么区别 03 在栈上实例化对象 04 在堆中实例化对象 前言 本章我们讨论一下 C 创建对象的相关问题。 如果你还不了解什么是类&#xff0c;可以点击下文查看 P9 C类-CSDN博客 本章以下主要讲解以下几点 在栈上创建对象…

大数据分析与应用实验任务十

大数据分析与应用实验任务十 实验目的&#xff1a; 通过实验掌握spark SQL的基本编程方法&#xff1b; 熟悉RDD到DataFrame的转化方法&#xff1b; 通过实验熟悉spark SQL管理不同数据源的方法。 实验任务&#xff1a; 进入pyspark实验环境&#xff0c;在桌面环境打开jup…