第六周学习总结&(实验报告四)
一.实验目的
(1)掌握类的继承方法
(2)变量的继承和覆盖,方法的继承,重载和覆盖实现
二.实验内容
一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
(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 实验三;
import java.util.Scanner; class Circle {
private double radius;
private double perimeter;
private double area; public Circle(){
this.setRadius(0);
}
public Circle(double r) {
this.setRadius(r);
}
public double getRadius(){
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public void setPerimeter(double perimeter) {
this.perimeter = perimeter;
}
public double getPerimeter() {
return getRadius()*2*Math.PI;
}
public void setArea(double area) {
this.area = area;
}
public double getArea() {
return Math.PI*Math.pow(getRadius(),2);
}
public void disp(){
System.out.println("圆的半径:"+getRadius());
System.out.println("圆的周长:"+getPerimeter());
System.out.println("圆的面积:"+getArea());
}
}
class Cylinder extends Circle{
private double height ;
public double getHeight(){
return height;
}
public void setRadius(double height) {
this.height = height;
}
Cylinder(double r,double h) {
this.setRadius(r);
this.setRadius(h);
}
public double getV() {
return getArea()*height;
}
public void dispV(){
System.out.println("圆柱的体积:"+getV());
}
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.println("请输入半径:");
double r=s.nextInt();
System.out.println("请输入高:");
double h=s.nextInt();
Cylinder T=new Cylinder(r,h);
T.disp();
T.dispV();
} }
实验结果:
编程总结:
上课还是要多听点好,在前面那个做长方形的时候,我们已经对此类程序有一定了解和编写基础,按照那一周做题的思路来是没什么问题的,而且这周老师讲了一键set和get,打代码也快了。但是在新知识继承上还是会出现问题,(方法 main 不能声明为“静态”;只能在静态类型或顶级类型中才能声明静态方法),这是我在实验中遇到的问题,百度了,给我的建议是:
在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。
似懂非懂, public class Cylinder extends Circle{;问题就出现在这里,这里的public和后面的public static起冲突了,导致后面的静态无法声明,所以把前面的public删除后,就没什么问题了。但是写起来还是不怎么熟练。
学习总结:
继承:在Java类中只允许单一继承,即一个子类只可以继承一个父类,且子类将继承父类的非私有属性和方法,但父类与子类只能一对一,即一个父类下面只有一个子类,但是那个子类可以作为父类进行下一次的继承。
方法的重载与复写:在重载中,方法名称相同,参数的类型或者个数不同,而覆盖都是相同的。覆盖只有发生在父类与子类之间,而重载可以发生在同一类中。
super():
1.super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
2.super()和this()均需放在构造方法内第一行,因此与this不能同时出现。
另外老师好像是还讲了instanceof和implements这两个关键字。
implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的所有方法的实现。
instanceof关键字用来确定对象所属的类。
第六周学习总结&(实验报告四)的更多相关文章
- 第六周学习总结&实验报告四
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- 第五周学习总结&实验报告(三)
第五周学习总结&实验报告(三) 这一周又学习了新的知识点--继承. 一.继承的基本概念是: *定义一个类,在接下来所定义的类里面如果定义的属性与第一个类里面所拥有的属性一样,那么我们在此就不需 ...
- 第六周课程总结&实验报告(四)
实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...
- 第八周学习总结&实验报告(6)
实验六 异常 一.实验目的: (1)理解异常的基本概念: (2)掌握异常处理方法及熟悉常见异常的捕获方法. 二.实验要求: (1)练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使 ...
- 第五周学习总结&实验报告三
第五周课程总结 1.this和super的区别: this:访问本类中的属性,如果本类没有此属性则从父类中继续查找:访问本类中的方法,如果本类中没有此方法则从父类中继续查找:调用本类构造,必须放在构造 ...
- 第十三周学习总结&实验报告(八)
图像界面 件处理及监听处理 1.键盘事件(KeyEvent)及监听处理(KeyListener) 1.1加入事件监听 super.addWindowListener(new WindowAdapter ...
- 第九周学习总结&实验报告七
实验报告: 实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 实验 ...
- 第八周学习总结&实验报告六
实验总结 :类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 : 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异 ...
- 第九周学习总结&实验报告(7)
完成火车站售票程序的模拟. 要求: (1)总票数1000张; (2)10个窗口同时开始卖票; (3) 卖票过程延时1秒钟; (4)不能出现一票多卖或卖出负数号票的情 况 实验代码: package y ...
- 第六周课程总结&实验报告
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
随机推荐
- Python-一些总结
背景 主要是用来记录我在学习python过程中学习到他人的一些建议和自己的经验,有些内容可能并不妥,如果有请及时通知我纠正,谢谢.qq:472668561 我使用的python版本是3.7.4. 内容 ...
- vue 解决axios 跨域问题
闲着没事,假期敲vue 请求数据,总结下vue跨越问题 第一种.服务器服务器不支持跨域请求 1.当跨域无法请求的时候我们可以修改工程下config文件夹下的index.js中的dev:{}部分. ...
- hive中的null
在处理流水增量表的时候,出现了一个判定的失误. select a.a1,a.a2 from ( select a.a1 ,,) as diff ,a.a2 from a lefter join b o ...
- CodeForces-437C(贪心)
链接: https://vjudge.net/problem/CodeForces-437C 题意: On Children's Day, the child got a toy from Delay ...
- 设计模式Design Pattern(4) -- 访问者模式
什么是访问者模式? 一个对象有稳定的数据结构,却为不同的访问者提供不同的数据操作,对象提供接收访问者的方法,从而保证数据结构的稳定性和操作的多样性.也可以理解为,封装对象的操作方法,达到不改变对象数据 ...
- ftp CentOS7安装
1.安装ftp服务yum install vsftpd 2.修改ftp配置文件(/etc/vsftpd/vsftpd.conf)ascii_upload_enable=YESascii_downloa ...
- js 中使用typeof
>typeof(null) <"object" 对null执行typeof预算,结果返回字符串'object',也就是说,可以将null认为是一个特殊的对象值,含义是“ ...
- webUploader---实现大文件断点续传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- Zookeeper简介及安装(一)
1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...
- Android 通过应用设置系统日期和时间的方法
Android 通过应用设置系统日期和时间的方法 android 2.3 android 4.0 测试可行,不过需要ROOT权限. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...