第五周课程总结

本周主要学习了

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. BZOJ 1036: [ZJOI2008]树的统计Count [树链剖分]【学习笔记】
  2. Leveldb之version与version_set详细对比
  3. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
  4. c++ 操作符 重载。
  5. HTTP协议——学习资料小结
  6. autodock 结果pdb的生成
  7. Python的OO思想
  8. 对 Sea.js 进行配置(一) seajs.config
  9. Qt根据类名创建对象(元对象反射)
  10. ueditor 编辑器的配置 实现上传图片---附效果图
  11. 锋利的jQuery事件
  12. Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
  13. ArcGIS二次开发AO软件安装破解教程
  14. Zookeeper 笔记-watch
  15. python 线程Queue 用法代码展示
  16. Matlab-8:松弛迭代法(SOR)
  17. opendressinghash //use resize array
  18. node.js global object,util and so on
  19. 在ASP.NET Core 2.x中获取客户端IP地址
  20. C++全总结

热门文章

  1. MFC 画字体DrawText()或TextOut(),CFont字体样式类
  2. php判断文件是否为txt文件
  3. Java面向对象5(V~Z)
  4. Zookeeper系列(十一)zookeeper的Leader选举详解(核心之一)
  5. MySQL所谓的脏页和“抖”一下是什么联系?
  6. shell脚本编程进阶
  7. java读取XML文件,及封装XML字符串
  8. nginx优化后的主配置文件
  9. 解决android sdk docs帮助文档打开慢的问题
  10. jeecg中的datagrid显示一条记录为橙色表示完结