第五周课程总结

本周主要学习了

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() **代替。

对于知识的应用还不是很熟练,可以自己再找点题目来练习。

第五周课程总结&实验报告(四)的更多相关文章

  1. 第五周课程总结&实验报告(三)

    实验三 String类的应用 实验目的: (1)掌握类String类的使用: (2)学会使用JDK帮助文档: 实验内容: 1.已知字符串:"this is a test of java&qu ...

  2. 第五周课程总结&实验报告三

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) •统计该字符串中字母s出现的次数. •统计该字符串中子串" ...

  3. 第五周课程总结&实验报告(三)

    实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...

  4. 第五周课程总结&实验报告

    一.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"i ...

  5. 第五周学习总结&实验报告(三)

    第五周学习总结&实验报告(三) 这一周又学习了新的知识点--继承. 一.继承的基本概念是: *定义一个类,在接下来所定义的类里面如果定义的属性与第一个类里面所拥有的属性一样,那么我们在此就不需 ...

  6. 第五周学习总结&实验报告三

    第五周课程总结 1.this和super的区别: this:访问本类中的属性,如果本类没有此属性则从父类中继续查找:访问本类中的方法,如果本类中没有此方法则从父类中继续查找:调用本类构造,必须放在构造 ...

  7. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...

  8. 第七周课程总结 & 实验报告(五)

    第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...

  9. 第三周课程总结&实验报告

    课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...

随机推荐

  1. java接口的多继承

    Java类之间并不允许多继承,只可以单继承和实现多接口,一直以为接口也是一样的,但是查阅了相关资料,突然豁然开朗. 一个类只能extends一个父类,但可以implements多个接口. 一个接口则可 ...

  2. Luogu P4141 消失之物 背包 分治

    题意:给出$n$个物品的体积和最大背包容量$m$,求去掉一个物品$i$后,装满体积为$w\in [1,m]$背包的方案数. 有 N 个物品, 体积分别是 W1, W2, …, WN. 由于她的疏忽, ...

  3. 图论小专题C

    3 负环及其应用 3.1 判定算法 判断负环只能用"边松弛"算法,也就是Bellman-Ford和SPFA算法.这两个算法都是\(O(NM)\)级别的.因为负环中一定存在一条负边, ...

  4. OpenGL 开发环境配置:Visual Studio 2017 + GLFW + GLEW

    Step1:Visual Studio 2017 Why 开发环境,后面编译GLFW 和 GLEW也要用 How 这里使用的是Visual Studio 2017的 Community 版本,直接官网 ...

  5. MySQL-插入更新 ON DUPLICATE KEY UPDATE

    向数据库中插入一条记录,若该数据的主键值(UNIQUE KEY)已经在表中存在,则执行后面的 UPDATE 操作.否则执行前面的 INSERT 操作. 测试表结构 CREATE TABLE `flum ...

  6. 前端知识点回顾——Javascript篇(三)

    数组的冒泡.选择和插入排序法 冒泡排序法(从小到大) function bubble(arr){ for(let i = 0 ;i<arr.length-1;i++){ for(let j = ...

  7. 手把手教你用蒲公英获取udid

    如果需要获取udid,但是拥有手机的测试用户身边没有mac电脑和xcode环境, 今天就分享一个快捷的在线获得udid的方法 利用蒲公英网站的获取udid功能 手机浏览器访问 http://www.p ...

  8. 前端知识扫盲-VUE知识篇一(VUE核心知识)

    最近对整个前端的知识做了一次复盘,总结了一些知识点,分享给大家有助于加深印象. 想要更加理解透彻的同学,还需要大家自己去查阅资料或者翻看源码.后面会陆续的更新一些相关注知识点的文章. 文章只提出问题, ...

  9. close connection error java.sql.SQLRecoverableException: IO Error: Broken pipe

    java.sql.SQLRecoverableException: IO Error: Broken pipe Table of Contents 1. 错误信息 2. 分析 2.1. 连接池 2.2 ...

  10. Django博客系统

    零.创建项目及配置 一.编写 Model 层的代码 二.配置 admin 页面 三.根据需求定制 admin