第七周总结&实验报告5
这一周的课程内容比较难,而且比较不容易理解,所有学习的很吃力,现在接触的知识越来越多,也越来越难了,还是要多对照书本来进行学习!
这周主要学的有:
一、抽象类
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的更多相关文章
- 第七周作业&实验报告5
实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结 ...
- 20155310第一周JAVA实验报告
20155310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
- 20145310第一周JAVA实验报告
20145310第一周JAVA实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 使用JDK和IDE编译.运行简单 ...
- 第五周总结&实验报告三
第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s ...
- 第三周总结&实验报告一
第三周总结 在这周对Java进行了更深层次的学习,Java的学习也越来越难了,慢慢的加入了一些新的构造新的方法,还有许许多多简化代码的相关知识,我还是要认真的去吃透这些知识,自己也要慢慢的去研究一些题 ...
- 第六周&java实验报告四
实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...
- 第六周总结 & 实验报告(四)
第六周小结 一.instanceof关键字 在Java中使用instanceof关键字判断一个对象到底是哪个类的实例,返回boolean类型 1.instanceof关键字的作用 例c ...
- 第五周总结 & 实验报告(三)
第五周总结 一.继承 1.类的继承格式 class 父类{} class 子类 extends 父类{} 2.扩展类的功能 class 父类{ 父类属性: .......... ..... ...
- 20145307第七周JAVA学习报告
20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...
随机推荐
- 基于EPICS实现西门子S7通信
(1) EPICS官网下载Demo并复制文件到指定位置 (2) 创建Modules文件夹,wget https://epics.anl.gov/download/modules ...
- SAP模块一句话入门(专业术语的理解)
SAP模块一句话入门(专业术语的理解) SAP一句话入门:Financial & Controlling Accounting (FICO) 财务,财务,呵呵,让我们关心一下给我发工资的部门. ...
- js之运算符(位运算符)
一.概念 位运算在数字底层(表示数字的32个数位)进行运算的.由于位运算是低级的运算操作,所以速度往往也是最快的,但是它很不直观,许多场合不能够使用.大多数语言都提供了按位运算符,恰当的使用按位运算符 ...
- nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'enterpriseId' in 'class java.lang.String'
错误信息: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for p ...
- ansible的基本学习-安装和简单的配置测试
当下有许多的运维自动化工具(配置管理),例如:ansible.saltstack.puppet.fabric等 ansible 是一种集成it系统的配置管理.应用部署.执行特定任务的开源平台,是ans ...
- linux shell 数组的使用
引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...
- linux下sendmail邮件系统安装详情
介绍 sendmail是linux系统中一个邮箱系统,如果我们在系统中配置好sendmail就可以直接使用它来发送邮箱.sendmail的配置文件/etc/mail/sendmail.cf ...
- particlesjs
今天发现一个粒子动画的插件下个笔记做个备用: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 斐波那契数列 Java 不同的实现方法所需要的时间比较
# 首先我们直接看一个demo以及他的结果 public class QQ { public static void main(String[] args) throws ParseException ...
- nvidia-docker安装
如果之前安装过docker1.0版本,需要先删掉该版本和之前创建的容器 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 ...