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

这周主要学的有:

一、抽象类

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. mac下开启phpredis扩展

    下载 官网下载php合适的版本:http://pecl.php.net/package/redis 这里我的php版本:7.1.23,下载的phpredis版本:5.0.0 配置安装 解包.重命名 s ...

  2. 数据绑定-@ CookieValue

    测试:

  3. PostgreSQL 自增主键

    1.自增主键:2.创建序列 一.使用SERIAL自增主键 create table test_no( id SERIAL primary key, name ) ); 二.创建序列 INCREMENT ...

  4. 实体类与数据库字段不匹配问题,java.sql.SQLSyntaxErrorException: Unknown column 'xxx' in 'field list'

    控制台报错 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'user_nam ...

  5. 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】

    1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:     管理节点(MGM):这类节点的作用是管理MySQLCluster ...

  6. Linux VPS 常用重启命令

    重启vps:reboot CentOS重启ssh:/etc/init.d/sshd restart Debian/Ubuntu重启ssh:/etc/init.d/ssh restart 重启Lnmp: ...

  7. mysql语句修改zencart产品原价为特价的倍数

    mysql语句修改zencart产品原价为特价的倍数,下面语句将原价设为特价的3倍: ; ;

  8. supdf

    https://github.com/sumatrapdfreader/sumatrapdf/tree/master/src c++  java

  9. 【codevs1690】开关灯 线段树

    这道题需要支持区间修改和区间询问,因此采用线段树加以维护. 由于求的是开着的灯的数目,因此维护sum:区间[ l , r ]中开着的灯的数目. tag取做0/1,表示区间是否反转,在进行标记下传时,如 ...

  10. UML(Rational Rose)安装教程【载百度经验】

    ---恢复内容开始--- Win7安装rational rose2007教程 在UML建模的众多工具中,IBM公司的rational rose建模工具可以说是最好用的建模工具了.哪我们又该如何在win ...