第六次学习总结&&第四次实验总结
Java实验报告
班级 1班 学号 20188390 姓名 宋志豪
实验四 类的继承
1.实验目的
(1)掌握类的继承方法;
(2)变量的继承和覆盖,方法的继承、重载和覆盖实现;
2.实验内容
实验代码
package 继承;
import java.io.InputStream;
import java.util.Scanner;
class Circle{
private double radius;
public Circle() {
this.radius=0;
}
public Circle(double radius) {
this.radius=radius;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return Math.PI*2*this.radius;
}
public double getArea() {
return Math.PI*Math.pow(this.radius, 2);
}
public void disp() {
System.out.println("圆的半径:"+this.radius+"\n圆的周长:"+this.getPerimeter()+"\n圆的面积:"+this.getArea());
}
}
public class Cylinder extends Circle{
private double height;
public Cylinder(double r,double h) {
super(r);
this.height=h;
}
public double getHeight() {
return height;
}
public double getVol() {
return getArea()*this.height;
}
public void dispVol() {
System.out.println(getVol());
}
public static void main(String[] args) {
Scanner input=new Scanner (System.in);
Cylinder cylinder=new Cylinder(input.nextDouble(),input.nextDouble());
cylinder.disp();
System.out.println(cylinder.getVol());
}
}
实验结果
没有在同时输出圆的周长,和圆柱的面积,只是输出了圆的体积:已经解决问题,忘记调用方法disp()了。
出现了一个问题:使用 Scanner input=new Scanner(System.in); 错误提示说 Scanner无法解析为类型
原因是没有导入这个类, 因为前面使用了import java.io.InputStream;这个类,所以一时疏忽忘记了。
实验心得
在写这个题的时候,发现它的基础算法与以前的长方形问题大同小异,难点在于继承这个新知识的使用,使用时非常的难以理解,要看着软件里的警告和问题提示一点一点改正,看不懂的知识还要上网搜索。
学习总结
老师上课的时候提到了两个思考题,上周第一节课是猫类和狗类的判断吧,记得不是很清楚;第二个就是说判断传进来的参数是否是猫的子类或者是猫的实例,我们寝室讨论的结果是使用if语句,用instanceof关键字来判断传进来的参数是否是猫的子类或者是猫的实例。
implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的所有方法的实现。
instanceof关键字用来确定对象所属的类。
接口:
接口的定义
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口;
当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现;
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口的作用
(1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
(2)通过接口可以指明多个类需要实现的方法。
(3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
注意的点:
类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
自己对学习的看法
上课的内容的跨度比较大,一节课学习的内容比较多,不提前进行预习是很难跟得上老师的进度。
以后可以在PTA上找出比较适合自己实力的题目去拓展自己,不过要等到我能熟练的使用我所学的知识,加油!!!
第六次学习总结&&第四次实验总结的更多相关文章
- 第六周学习总结&第四次实验报告
第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...
- 第六周学习总结&java实验报告四
第六周学习总结&java实验报告四 学习总结: 上一周因为接近国庆假期,所以老师没有讲太多的新知识点,只要是带我们一起做了一个动物模拟变声器的实验,进一步了解和学习到继承的 有关知识点和应用: ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- X-Cart 学习笔记(四)常见操作
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 五.常见 ...
- RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- C++Primer第5版学习笔记(四)
C++Primer第5版学习笔记(四) 第六章的重难点内容 你可以点击这里回顾第四/五章的内容 第六章是和函数有关的知识,函数就是命名了的代码块,可以处理不同的情况,本章内 ...
- 我的MYSQL学习心得(四)
原文:我的MYSQL学习心得(四) 我的MYSQL学习心得(四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(五) 我的MYSQL ...
- #20175204 张湲祯 2018-2019-2《Java程序设计》第六周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第六周学习总结 教材学习内容总结 -第七章内部类与异常类要点: 一.内部类: Java支持在一个类中定义另一个类,这样的 ...
- 20172328 2018-2019《Java软件结构与数据结构》第六周学习总结
20172328 2018-2019<Java软件结构与数据结构>第六周学习总结 概述 Generalization 本周学习了第十章:非线性集合与数据结构--树.主要讨论了树的使用和实现 ...
随机推荐
- [转载]Apple Swift学习资料汇总
今年的苹果开发者大会(WWDC)上,公布了ios8的几个新特性,其中包括引入了群聊功能,支持第三方输入法等功能.但更让开发者感兴趣的莫过于Swift语言的发布了. Swift是apple自创的一门转为 ...
- C# 扩展方法——mysql-dapper(MySqlMapperExtensions)
其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 反射比较耗费性能,反射得到属性进行缓存 根据反射得到的属性,进行动态拼接sql语句 ...
- Python在VSCode环境抓取TuShare数据存入MongoDB环境搭建
本文出自:https://www.cnblogs.com/2186009311CFF/p/11573094.html 总览 此文分为5个部分 第一:Anaconda(下载和安装) 第二:VSCode( ...
- 百度之星 初赛三 最短路 2 Dijkstra
打比赛的时候切的,不过竟然 wa 了 14 次~ 挺简单的,直接在跑 $Dijkstra$ 的时候记录一下路径最大值就好了. #include <bits/stdc++.h> #defin ...
- 家谱树 x
家谱树 [问题描述] 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系. 给出每个人的孩子的信息. 输出一个序列,使得每个人的后辈都比那个人后列出. [输入格式] ...
- react-router-dom 实现左侧导航
1.介绍react-router-dom https://reacttraining.com/react-router/web/example/basic 这个官网有很多栗子可以练手 1.1 Hash ...
- Unity3D_(插件)使用Camera渲染制作Minimap小地图
制作小地图:使用Camera渲染出来Render Texture 原理:使用摄像机从上到下获得场景游戏物体,摄像机Culling Mask渲染层级可设置是否需要在小地图上展示游戏物体,将摄像机获得的场 ...
- docker删除容器再删除镜像
1. 查询镜像 docker images 现在想删除第一个,ID为 99f85991949f 的镜像. docker rmi ID 从上面看出,需要先停到ID为 67*** 的容器. 2. 查询容 ...
- MySQL格式化小数点为百分号并保留2为小数
#colname为字段名字,CONCAT的作用是把小数点转成百分号,TRUNCATE的作用是保留百分号的小数点成几位 SELECT CONCAT(TRUNCATE(colname*100,2),'%' ...
- C++入门经典-例6.17-输出每行数组中的最小值
1:代码如下: // 6.17.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...