这一周的课程内容比较难,而且比较不容易理解,所有学习的很吃力,现在接触的知识越来越多,也越来越难了,还是要多对照书本来进行学习!

这周主要学的有:

一、抽象类

1.Java中可以创建一种类专门用来当作父类,这种类称为“抽象类”。

2.抽象类的作用类似“模版”,其目的是要设计者依据它的格式来修改并创建新的类。

二、抽象类的定义及使用规则

1.包含一个抽象方法的类必须是抽象类;

2.抽象类和抽象方法都要使用abstract关键字声明;

3.抽象方法只需要声明而不需要实现;

4.抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。

 

实验四 类的继承

实验内容

(一)抽象类的使用

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

2.编程技巧

(1)    抽象类定义的方法在具体类要实现;

(2)    使用抽象类的引用变量可引用子类的对象;

(3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

(二)使用接口技术

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

编程技巧

(1) 接口中定义的方法在实现接口的具体类中要重写实现;

(2) 利用接口类型的变量可引用实现该接口的类创建的对象。

实验源码:

package first;
import java.util.Scanner; abstract class Shapes
{
public abstract void area();} class Triangle extends Shapes{
private double a,b,c;
private double p; Triangle(double a, double b, double c, double p){
this.a = a;
this.b = b;
this.c = c;
this.p = (a+b+c)/;}
public void area()
{
System.out.println(Math.sqrt(p*(p-a)*(p-b)*(p-c)));
}
}
class Rectangle extends Shapes{
private double h,g;
Rectangle(double h, double g){
this.h = h;
this.g = g;
}
public void area() {
System.out.println(h*g);
}
}
class Cricle extends Shapes{
private double r;
Cricle(double r){
this.r=r;
}
public void area()
{
System.out.println(Math.pow(r,)*Math.PI);
}
}
public class a{
public static void main(String[] args)
{
Scanner boniu=new Scanner(System.in);
System.out.println("triangle length a:" );
double a=boniu.nextDouble();
System.out.println("triangle length b:" );
double b=boniu.nextDouble();
System.out.println("triangle length c:" );
double c=boniu.nextDouble();
Triangle triangle=new Triangle(a,b,c,(a+b+c)/);
System.out.println("area of triangle:");
triangle.area(); System.out.println("length of rectangle h:");
double h=boniu.nextDouble();
System.out.println("width of rectangle g:");
double g=boniu.nextDouble();
Rectangle rectangle=new Rectangle(h,g);
System.out.println("area of rectangle:");
rectangle.area(); System.out.println("radius of circle:");
double r=boniu.nextDouble();
Cricle cricle=new Cricle(r);
System.out.println("area of circle:");
cricle.area(); }
}

实验结果:

实验源码:

package first;

import java.util.Scanner;
interface Shape1{
public double size();
}
class Line implements Shape1{
private double x1,x2,y1,y2;
public Line(double x1,double x2,double y1,double y2) {
this.x1=x1;
this.x2=x2;
this.y1=y1;
this.y2=y2;
}
public double size() {
return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
}
class Circle implements Shape1{
private double reidus;
public Circle(double reidus) {
this.reidus=reidus;
}
public double size() {
return Math.PI*this.reidus*this.reidus;
}
}
public class Shape{
public static void main(String args[]) {
Scanner s=new Scanner(System.in);
System.out.println("请输入两点的坐标");
double x1=s.nextDouble();
double y1=s.nextDouble();
double x2=s.nextDouble();
double y2=s.nextDouble();
Line line=new Line(x1,y1,x2,y2);
System.out.println("直线的大小为:"+line.size());
Scanner s1=new Scanner(System.in);
System.out.println("请输入圆的半径");
double reidus=s1.nextDouble();
Circle circle=new Circle(reidus);
if(reidus>) {
System.out.println("圆的大小为:"+circle.size());
}
else {
System.out.println("不符合圆的定义请重新运行程序");
return;
}
}
}

实验结果:

总结:这周的题目比较难,写的也十分的困难,对新知识不够理解,也忘了一些以前的知识点,接下来还是要加强对知识点的巩固!!

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

  1. 第七周作业&实验报告5

     实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结 ...

  2. 20155310第一周JAVA实验报告

    20155310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...

  3. 20145310第一周JAVA实验报告

    20145310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...

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

    第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s ...

  5. 第三周总结&实验报告一

    第三周总结 在这周对Java进行了更深层次的学习,Java的学习也越来越难了,慢慢的加入了一些新的构造新的方法,还有许许多多简化代码的相关知识,我还是要认真的去吃透这些知识,自己也要慢慢的去研究一些题 ...

  6. 第六周&java实验报告四

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

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

    第六周小结 一.instanceof关键字         在Java中使用instanceof关键字判断一个对象到底是哪个类的实例,返回boolean类型 1.instanceof关键字的作用 例c ...

  8. 第五周总结 & 实验报告(三)

    第五周总结 一.继承       1.类的继承格式 class 父类{} class 子类 extends 父类{} 2.扩展类的功能 class 父类{ 父类属性: .......... ..... ...

  9. 20145307第七周JAVA学习报告

    20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...

随机推荐

  1. js之运算符(位运算符)

    一.概念 位运算在数字底层(表示数字的32个数位)进行运算的.由于位运算是低级的运算操作,所以速度往往也是最快的,但是它很不直观,许多场合不能够使用.大多数语言都提供了按位运算符,恰当的使用按位运算符 ...

  2. 关于mail mailx 以及sendmail 的理解

    最近在弄邮件告警相关的东西,接触到了mail这一块,但是发送邮件的时间看到网上的用法 yum install mailx sednmail -y 这一块很迷糊 所以决定自己研究下 首先套用官话解释: ...

  3. 从FBV到CBV一(开始)

    span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror ...

  4. Delphi Memo组件

  5. Ansible-Playbook实战

    一.Playbook 实战案例 1.准备环境 角色 外网IP(NAT) 内网IP(LAN) 部署软件 m01 eth0:10.0.0.61 eth1:172.16.1.61 ansible ly-ba ...

  6. 2019.9.25使用BP和Hydra爆破相关的服务

    使用BP和Hydra爆破相关的服务. Hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用hydra爆破c/s架构的服务.使用bp爆破web登录端口. dvwa:web应用程序漏洞演练 ...

  7. Zabbix Agent配置文件详解

    # This is a config file for the Zabbix agent daemon (Unix)# To get more information about Zabbix, vi ...

  8. 小程序UI设计(1)-布局

    工欲善其事必先利其器.下面为大家介绍一款工具软件,如何做到轻松布局. 工具简介:小程序layout设计工具,可视化方式进行小程序UI设计.通过鼠标拖拽组件方式进行UI布局.工具提供符合微信视觉统一的模 ...

  9. 详解thinkphp+redis+队列的实现代码

    1,安装Redis,根据自己的PHP版本安装对应的redis扩展(此步骤简单的描述一下) 1.1,安装 php_igbinary.dll,php_redis.dll扩展此处需要注意你的php版本如图: ...

  10. Kattis - bitwise Bitwise (RMQ+尺取+树上dfs)

    题意:有一个长度为n的序列,让你把它分成k段,段内元素取or,段间取and,求能够得到的最大值. 这个算法是我和xz场上yy出来的,然而时间不够了没写出来,而且时间复杂度是$O(nlogn+nlogA ...