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上找出比较适合自己实力的题目去拓展自己,不过要等到我能熟练的使用我所学的知识,加油!!!

第六次学习总结&&第四次实验总结的更多相关文章

  1. 第六周学习总结&第四次实验报告

    第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...

  2. 第六周学习总结&java实验报告四

    第六周学习总结&java实验报告四 学习总结: 上一周因为接近国庆假期,所以老师没有讲太多的新知识点,只要是带我们一起做了一个动物模拟变声器的实验,进一步了解和学习到继承的 有关知识点和应用: ...

  3. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  4. X-Cart 学习笔记(四)常见操作

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 五.常见 ...

  5. RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  6. C++Primer第5版学习笔记(四)

    C++Primer第5版学习笔记(四) 第六章的重难点内容         你可以点击这里回顾第四/五章的内容       第六章是和函数有关的知识,函数就是命名了的代码块,可以处理不同的情况,本章内 ...

  7. 我的MYSQL学习心得(四)

    原文:我的MYSQL学习心得(四) 我的MYSQL学习心得(四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(五) 我的MYSQL ...

  8. #20175204 张湲祯 2018-2019-2《Java程序设计》第六周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第六周学习总结 教材学习内容总结 -第七章内部类与异常类要点: 一.内部类: Java支持在一个类中定义另一个类,这样的 ...

  9. 20172328 2018-2019《Java软件结构与数据结构》第六周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第六周学习总结 概述 Generalization 本周学习了第十章:非线性集合与数据结构--树.主要讨论了树的使用和实现 ...

随机推荐

  1. 闰年计算——JavaScript 语言计算

    ㈠闰年是如何来的? 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的.补上时间差的年份为闰年. ㈡什么是闰年? 凡阳历中有闰日(二月为二十九日)的年, ...

  2. 【PKUSC2019】线弦图【计数】【树形DP】【分治FFT】

    Description 定义线图为把无向图的边变成点,新图中点与点之间右边当且仅当它们对应的边在原图中有公共点,这样得到的图. 定义弦图为不存在一个长度大于3的纯环,纯环的定义是在环上任取两个不相邻的 ...

  3. 在vue项目中添加一个html页面,开启本地服务器

    在vue项目里新增一个不需要登录的页面,那么我只能新增一个html页面了,不经过路由,直接在浏览器输入路径打开,那么就需要用到本地服务器, 1.vue里面的html页面最好放过在public文件夹里面 ...

  4. Thread的setDaemon(true)方法的作用

    定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开.优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务.设置:通过setDaemon(true)来设置线程为“守护线 ...

  5. Apicloud_(模板)登陆注册功能模板

    项目已托管到Github上 传送门 不需要使用任何图片资源,需要用到SHA1.js库文件, Apicloud_(接口验证)用户注册头部信息X-APICloud-AppKey生成 传送门 项目全代码放到 ...

  6. ServletConfig接口

    ServletConfig接口 Servlet容器初始化Servlet对象时会为Servlet创建一个ServletConfig对象,在ServletConfig对象中包含了Servlet的初始化参数 ...

  7. Redis大 key的发现与删除方法全解析

    个推作为国内第三方推送市场的早期进入者,专注于为开发者提供高效稳定的推送服务,经过9年的积累和发展,服务了包括新浪.滴滴在内的数十万APP.由于我们推送业务对并发量.速度要求很高,为此,我们选择了高性 ...

  8. 【Share Code | Javascript & HTML & CSS】链接悬停显示图像效果

    demo & 代码 链接悬停效果,显示缩略图. 今天给大家分享一组链接悬停效果.悬停链接时显示具有特定效果的缩略图. 这是一些效果: 参考 Image Reveal Hover Effects

  9. AES加密算法在Linux下出现随机加密结果

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  10. SpringMVC配置多个自定义拦截器

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...