第五周课程总结&实验报告(四)
第五周课程总结
本周主要学习了
1.抽象类
抽象类的定义格式
abstract class抽象类名称{
属性;
访问权限返回值类型方法名称(参数){ //普通方法
[return返回值];
}
访问权限abstract返回值类型方法名称(参数); //抽象方法
//在抽象方法中是没有方法体的
}
2.对象的多态性
- 向上转型(子类 → 父类)
- 向下转型(父类 → 子类)
向下转型前一定要先向上转型,并用instanceof关键字进行安全验证
3.接口
interface 接口名{
全局变量;
抽象方法;
}
抽象类与接口的关系
4.三角形的面积计算用海伦公式
上周问题:animal中调用dog和cat的方法需要用instanceof关键字进行判断是否转型
实验四 类的继承
一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
实验源码:
package homework;
public class Circle {
private double radius;
Circle() { //构造方法,将半径置0
radius = 0;
}
Circle(double r) { //构造方法,创建Circle对象时将半径初始化为r
radius = r;
}
double getRadius() { //获得圆的半径值
return radius;
}
double getPerimeter() { //获得圆的周长
return 2*(double)Math.PI*getRadius();
}
double getArea() { //获得圆的面积
return Math.PI*Math.pow(radius, 2);
}
public static void main(String[] args) { //将圆的半径和圆的周长,圆的面积输出到屏幕
Circle c = new Circle(2);
System.out.println("Perimeter:"+c.getPerimeter());
System.out.println("Radius:"+c.getRadius());
System.out.println("Area:"+c.getArea());
}
}
实验中遇到的问题:无,按照老师上课讲的办法一遍过
实验结果:
(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
double getHeight():获得圆柱体的高
double getVol():获得圆柱体的体积
void dispVol():将圆柱体的体积输出到屏幕
(3)按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
实验源码:
package homework;
public class Cylinder extends Circle {
private double height;
private double radius;
Cylinder(double r,double h){
this.radius = r;
this.height = h;
}
double getHeight() {
return this.height;
}
double getVol() {
return Math.PI*Math.pow(radius, 2)*height;
}
public static void main(String[] args) {
Cylinder s = new Cylinder(3, 6);
System.out.println("Height:"+s.getHeight());
System.out.println("Vol:"+s.getVol());
}
}
实验中遇到的问题:无
实验结果:
三、 总结
在写题时,发现了 double getHeight() 前可以加public 也可以不加,Math.PI*Math.pow(radius, 2) 也可以直接用 **super.getArea() **代替。
对于知识的应用还不是很熟练,可以自己再找点题目来练习。
第五周课程总结&实验报告(四)的更多相关文章
- 第五周课程总结&实验报告(三)
实验三 String类的应用 实验目的: (1)掌握类String类的使用: (2)学会使用JDK帮助文档: 实验内容: 1.已知字符串:"this is a test of java&qu ...
- 第五周课程总结&实验报告三
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) •统计该字符串中字母s出现的次数. •统计该字符串中子串" ...
- 第五周课程总结&实验报告(三)
实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...
- 第五周课程总结&实验报告
一.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"i ...
- 第五周学习总结&实验报告(三)
第五周学习总结&实验报告(三) 这一周又学习了新的知识点--继承. 一.继承的基本概念是: *定义一个类,在接下来所定义的类里面如果定义的属性与第一个类里面所拥有的属性一样,那么我们在此就不需 ...
- 第五周学习总结&实验报告三
第五周课程总结 1.this和super的区别: this:访问本类中的属性,如果本类没有此属性则从父类中继续查找:访问本类中的方法,如果本类中没有此方法则从父类中继续查找:调用本类构造,必须放在构造 ...
- 第六周课程总结&实验报告(四)
实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...
- 第七周课程总结 & 实验报告(五)
第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...
- 第三周课程总结&实验报告
课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...
随机推荐
- 【Python之路】特别篇--微信Web网页版通信的全过程分析
文章所使用Python版本为py3.5 1.微信服务器返回一个会话ID 微信Web版本不使用用户名和密码直接登录,而是采用二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录. ...
- (vue.js)Vue element tab 每个tab用一个路由来管理?
(vue.js)Vue element tab 每个tab用一个路由来管理? 来源:网络整理 时间:2017/5/13 0:24:01 关键词: 关于网友提出的“ (vue.js) ...
- [Luogu] 国王游戏
https://www.luogu.org/problemnew/show/P1080 按照 a * b 排序 高精度 #include <bits/stdc++.h> using nam ...
- 我爱网络流之最大流Dinic
直接上大佬博客: Dinic算法详解及实现来自小菲进修中 Dinic算法(研究总结,网络流)来自SYCstudio 模板步骤: 第一步,先bfs把图划分成分成分层图网络 第二步,dfs多次找增广路 当 ...
- 字符串匹配问题x
qwq这个是栈的w 不是树w qwq我承认我发题很杂啦 字符串匹配问题x [问题描述] 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配 ...
- vue-element-admin平时使用归纳
message提示的使用 import { Message } from 'element-ui'; Message({ message: res.data.message || 'Error', t ...
- codeforces#1150D. Three Religions(dp+序列自动机)
题目链接: https://codeforces.com/contest/1150/problem/D 题意: 给出长度为$n$的字符串,和$q$次询问 每次询问是,给$x$宗教增加一个字符$key$ ...
- redis redis-cli
默认无权限控制: 远程服务连接: $ redis-cli -h 127.0.0.1 -p 6379 windows下 :redis-cli.exe -h 127.0.0.1 -p 6379 redis ...
- Java核心复习 —— ArrayList源码阅读
一.ArrayList 介绍 ArrayList是List接口可变数组的实现. 特点 非线程安全 查找和修改效率高 二.ArrayList 使用方法 remove元素 @Test public voi ...
- Nginx-HTTP之ngx_http_top_body_filter
1. ngx_http_top_body_filter 该链表用于构造响应消息的响应正文. 大致有以下模块在该链表中插入了自己的函数: ngx_http_range_filter_module: ng ...