学习总结

这周我们加深了对抽象类与接口的学习,获得的知识点也比上周多了许多,抽象类与接口很相似,就比如别人还没有做完的是交给你来做,而他那些样式都做好了,你只需要完善即可

但也有不同点。

区别点 抽象类 接口
定义 包含一个抽象方法的类 抽象方法和全局变量的集合
组成 构造方法、抽象方法、普通方法、常量、变量 常量、抽象方法
使用 子类继承抽象类(extends) 子类实现接口(implements)
关系 抽象类可以实现多个接口 接口不能继承抽象类,但允许继承多个接口
常见设计模式 模板设计 工厂设计,代理设计
局限 抽象类有单继承的局限 接口没有单继承的局限
实际 作为一个模板 是作为一个标准或不是一种能力
对象 都通过对象的多态性产生实例化对象 都通过对象的多态性产生实例化对象
选择 如果抽象类和接口都可使用的话,优先使用接口,因为避免单继承的局限 如果抽象类和接口都可使用的话,优先使用接口,因为避免单继承的局限
特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

这周我们还学习了一个特殊的类object类,object类就像一个公共类,如果一个类没有明显的继承一个类,那么它就是object的子类了。

实验报告

(一)抽象类的使用

设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

抽象父类

package test7;

abstract class Shape {
abstract public double Area(); }

三角形

package test7;

public class Triangle extends Shape {

	private double a;
private double b;
private double c; public Triangle(double a,double b,double c) {
this.a=a;
this.b=b;
this.c=c;
} public double getA() {
return a;
} public void setA(double a) {
this.a = a;
} public double getB() {
return b;
} public void setB(double b) {
this.b = b;
} public double getC() {
return c;
} public void setC(double c) {
this.c = c;
}
public double Area() {
double p=(a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
} }

矩形

package test7;

public class Ractangle extends Shape {

	private double height;
private double width;
public Ractangle(double height,double width) {
this.height=height;
this.width=width;
} public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double Area() {
return height*width;
} }

圆形

package test7;

public class Circle extends Shape {

	private double r;

	public Circle(double r) {
this.r=r;
} public double getR() {
return r;
} public void setR(double r) {
this.r = r;
}
public double Area() {
return Math.PI*r*r;
} }

测试类

package test7;

public class Ceshi {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Shape s1=new Triangle(4,5,6);
Shape s2=new Ractangle(7,8);
Shape s3=new Circle(4);
System.out.println("三角形面积:"+s1.Area());
System.out.println("长方形面积:"+s2.Area());
System.out.println("圆形面积:"+s3.Area()); } }

运行截图

(二)接口技术

1定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。

package test8;

interface Shape {
public double getSize(); }

圆类

package test8;

class Circle implements Shape {
private double r;
public Circle(double r) {
this.r=r;
} public double getR() {
return r;
} public void setR(double r) {
this.r = r;
} public double getSize() {
// TODO Auto-generated method stub
return Math.PI*r*r;
} }

直线类

package test8;

class Line implements Shape {
private double x1,y1,x2,y2;
public Line(double x1,double y1,double x2,double y2) {
this.x1=x1;
this.y1=y1;
this.x2=x2;
this.y2=y2;
}
public double getX1() {
return x1;
}
public void setX1(double x1) {
this.x1 = x1;
}
public double getY1() {
return y1;
}
public void setY1(double y1) {
this.y1 = y1;
}
public double getX2() {
return x2;
}
public void setX2(double x2) {
this.x2 = x2;
}
public double getY2() {
return y2;
}
public void setY2(double y2) {
this.y2 = y2;
}
public double getSize() {
return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
} }

测试类

package test8;

public class Ceshi {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Shape s1=new Circle(5);
Shape s2=new Line(4,5,7,9);
System.out.println("圆的面积:"+s1.getSize());
System.out.println("直线长度:"+s2.getSize()); } }

运行截图

第七周总结&第五次实验报告的更多相关文章

  1. 20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  2. 20145330《Java程序设计》第五次实验报告

    20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...

  3. Java第五次实验报告

    Java第五次实验报告 实验一 实验内容 两人一组结对编程: 参考 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC. ...

  4. 20145240 《Java程序设计》第五次实验报告

    20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...

  5. 第五次实验报告 java 网络编程

    20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...

  6. 20145317彭垚 《Java程序设计》第五次实验报告

    20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...

  7. 《JAVA程序设计》第五次实验报告

    20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...

  8. 20165210 Java第五次实验报告

    20165210 实验五 网络编程与安全 网络编程与安全一: 实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ...

  9. 第五次实验报告:使用Packet Tracer理解OSPF路由协议

    目录 1 实验目的 2 实验内容 3. 实验报告 3.1 建立网络拓扑结构 4. 配置 4.1 配置并激活串行地址和以太网地址 4.1.1 R1 4.1.2 R2 4.1.3 R3 4.1.4 PC ...

随机推荐

  1. 勒索病毒[recoverydata54@cock.li].harma,这样恢复文件。

    还没有从搬新家的喜悦中恢复回来,突然有一天发现,自己的1T的硬盘的历史遗迹里面的文件都不能打开了.尤其是孩子们的珍贵照片. 这可让我着急了好几天.过了几天我才知道,原来是有天晚上,4周岁的儿子自己不知 ...

  2. 预约系统(四) 管理页面框架搭建easyUI

    Manage控制器用于管理页面 Index视图为管理页面首页,采用easyUi的后台管理框架 Html头部调用,jquery库,easyui库,easyui.css,icon.css,语言包 < ...

  3. sql--select into,create database,create table,Constraints

    SQL SELECT INTO 语句可用于创建表的备份复件.SELECT INTO 语句SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中.SELECT INTO 语句常用于创建 ...

  4. ListVie的用法

    1.在布局中放入一个listView <ListView android:id="@+id/list_view" android:layout_width="mat ...

  5. java知识点复习(1):

    1.java整形变量078:在java数字里数字表达式前面加上0表示8进制,因为8进制里表示数字只有0-7,所以这里的表达式有错误.相对而言,077就是合法的,转换成10进制就是63(7*8+7=63 ...

  6. Linux cat命令详解(连接文件并打印到标准输出设备上)

    cat:连接文件并打印到标准输出设备上 一.命令格式: cat [-AbeEnstTuv] [--help] [--version] filename 二.参数说明: -n 或 --number:由 ...

  7. colaui基础

    监控 c-watch // 监控的方法函数 on 监控的参数名字 div(c-watch="fun on style" c-bind="styles") // ...

  8. dedecms sql 替换 或 删除

    UPDATE dede_archives SET writer='你需要修改的作者' WHERE writer=''; UPDATE dede_archives SET source='你需要修改的来 ...

  9. dlopen 加载so库

    #include <stdio.h> #include <dlfcn.h> int main(int argc, char **argv) { void *handle; do ...

  10. glViewport函数用法

    一. 其函数原型为glViewport(GLint x,GLint y,GLsizei width,GLsizei height) x,y 以像素为单位,指定了窗口的左下角位置. width,heig ...