实验报告(四)

一.实验目的

1.掌握类的继承

2.变量的继承和覆盖,方法的继承,重载和覆盖的实现

二.实验的内容

1.根据下面的要求实现圆类Circle。

  • 圆类Circle的成员变量:radius表示圆的半径。
  • 圆类Circle的方法成员:

     Circle():构造方法,将半径置0
    
     Circle(double r):构造方法,创建Circle对象时将半径初始化为r
    
     double getRadius():获得圆的半径值
    
     double getPerimeter():获得圆的周长
    
     void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

实验代码:

圆类Circle

package 测试;

public class Circle {
double radius; public void Circle() {
this.radius = 0;
}
public void Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
double perimeter;
perimeter=2*radius*Math.PI;
return perimeter;
}
public double getArea() {
double area;
area=radius*radius*Math.PI;
return area;
}
public void disp() {
System.out.println("圆的半径:"+getRadius());
System.out.println("圆的周长:"+getPerimeter());
System.out.println("圆的面积:"+getArea());
} }

2.继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:

  • 圆柱体类Cylinder的成员变量:height表示圆柱体的高。
  • 圆柱体类Cylinder的成员方法:

      Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
    
      double getHeight():获得圆柱体的高
    
      double getVol():获得圆柱体的体积
    
      void dispVol():将圆柱体的体积输出到屏幕
  • 按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

实验代码:

圆柱体类Cylinder

package 测试;

public class Cylinder extends Circle {
double height; public void Cylinder(double radius,double height) {
this.height=height;
this.radius=radius;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getVol() {
double vol;
vol=radius*radius*height*Math.PI;
return vol;
}
public void dispVol() {
System.out.println("圆柱的体积:"+getVol());
} }

实验运行

package 测试;
import java.util.Scanner;
public class 测试0 {
public static void main(String[] args) {
Scanner num=new Scanner(System.in);
System.out.println("请输入圆的半径:");
double radius=num.nextDouble();
System.out.println("请输入圆柱体的高:");
double height=num.nextDouble();
Cylinder cyl=new Cylinder();
cyl.Cylinder(radius,height);
cyl.disp();
cyl.dispVol();
} }

实验运行结果截图:

实验大致思路:

先创造父类Circle,构建其中的方法成员,再创建子类Cylinder继承父类Circle,再构建其中的方法成员,最后再构建一个用于接收键盘输入数据的类,引用类Cylinder进行计算及输出数据.

实验中遇到的问题:

题目不是很复杂,就是让我们了解继承的使用,在编写的时候,Eclipse提醒我此方法具有构造函数名,虽然好像不是错误,但是我想知道会不会有什么影响,特地会将这个标出来.还有就是我想在父类加一个public static void main(String[] args)函数进行调试,输入没问题,但是调用方法的时候提示我不能对非静态方法进行静态引用虽然在前面的构造函数前加上static就没问题了,但是觉得可能不符合题目要求,就在调试完了之后就把代码改回去了,对于这个"不能对非静态方法进行静态引用"还是不是很明白,

第六周课程总结

因为国庆假期的缘故,这周只上了一节课,老师没有讲太多的东西,就是进一步的学习了有关继承的知识

这周学习的内容:

1.接口

接口是java中最重要的概念之一,接口可以理解为一种特殊的类,里面全部是由全局变量和公共的抽象方法所组成.

接口的定义格式

interface 接口名称{
全局常量;
抽象方法;
}

需要注意的是在接口中的抽象方法必须定义成public访问权限,这是绝对不可改变的.

实现接口格式

class 子类 implements 接口A,接口B,...{
}

继承抽象类实现接口格式

class 子类 extends 抽象类  implements 接口A,接口B,...{
}

接口的继承格式

interface 子接口 extends 父接口A,父接口B,....{
}

2.对象的多态性

(1).向上转型:子类对象->父类对象

(2).向下转型:父类对象->子类对象

对于向上转型,程序会自动完成,而对于向下转型时,一定要明确的指明要转型的子类类型.向下转型前要进行一次向上转型.如下格式:

对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;

3.instanceof关键字:

在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例,如下格式:

对象 instanceof 类 → 返回boolean类型

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

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

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

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

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

  3. 第八周课程总结&实验报告(六)

    第八周课程总结 启动多线程售票(上课老师说要加入作业的部分) public class TestDemo { public static void main(StringD args) throws ...

  4. 第八周课程总结 & 实验报告(六)

    第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定 ...

  5. 第五周课程总结&实验报告(四)

    第五周课程总结 本周主要学习了 1.抽象类 抽象类的定义格式 abstract class抽象类名称{ 属性; 访问权限返回值类型方法名称(参数){ //普通方法 [return返回值]; } 访问权 ...

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

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

  7. 第九周课程总结 & 实验报告(七)

    第九周课程总结 一.多线程 1.线程的状态 2.线程操作的相关方法 二.Java IO 1.操作文件的类---File ()基本介绍 ()使用File类操作文件 .RandomAccessFile类 ...

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

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

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

    实验报告(一) 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...

随机推荐

  1. python+minicap(二)

    一.push文件至手机中 minicap 的使用有很强的针对性,针对不同架构的CPU和SDK制作了不同的 "minicap" 和 "minicap.so" 文件 ...

  2. 第二篇 jQuery 选择器

    2-1,2  table隔行变色 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  3. 这十个MySQL经典错误

    今天就给大家列举 MySQL 数据库中,最经典的十大错误案例,并附有处理问题的解决思路和方法,希望能给刚入行,或数据库爱好者一些帮助,今后再遇到任何报错,我们都可以很淡定地去处理.学习任何一门技术的同 ...

  4. weex 通用样式以及需要注意的问题

    一.说明 weex 对于 css 样式的支持是非常有限的,并且使用样式的时候,必须遵循 weex 定义的规则. 对于不遵循 weex 样式规则的代码,往往在 web 页面上有效,而在 native 环 ...

  5. Vue报错:Property or method "XXX" is not defined on the instance but referenced during render. Make sure that this property is reactive...

    在Vue中定义方法或者属性时,因为粗心疏忽可以能会报该错误 [Vue warn]: Property or method "search" is not defined on th ...

  6. CentOS查看Java进程并部署jar包

    查看Java进程获取pid号:ps -ef|grep java|grep -v grep 部署Javajar包并指定输出日志文件(null不输出):nohup java -jar xx.jar > ...

  7. PL/SQL题型代码示例

    1.记录类型(注意标点符号的使用) 结果: 2.学习流程 3. 4. 5. 6. 写法二: 结果: 写法三: 7.使用循环语句打印1-100 方法一: 或者 方法二: 方法三: 8. 方法二: 9. ...

  8. mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  9. 《python解释器源码剖析》第0章--python的架构与编译python

    本系列是以陈儒先生的<python源码剖析>为学习素材,所记录的学习内容.不同的是陈儒先生的<python源码剖析>所剖析的是python2.5,本系列对应的是python3. ...

  10. Fiddler实现iPhone手机抓包

    最近某小程序大火,许多非专业人员也在跃跃欲试,但是在查找自己的session_id的时候卡住了,本文只从技术方面介绍如何通过通过Fiddler来抓取手机的数据,不涉及如何作弊... 1.电脑上安装Fi ...