10/6-10/12 java学习总结(没有课堂的课后学习总结) &实验总结5
10/6-10/12 java学习总结(没有课堂的课后学习总结) &实验总
实验四 类的继承
- 实验目的
- 理解抽象类与接口的使用;
- 了解包的作用,掌握包的设计方法。
- 实验要求
- 掌握使用抽象类的方法。
- 掌握使用系统接口的技术和创建自定义接口的方法。
- 了解 Java 系统包的结构。
- 掌握创建自定义包的方法。
- 实验内容
(一)抽象类的使用
- 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
注:三角形面积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 NAME;
import java.util.*;
public class FIRST{
public static void main(String[] args){
triangle tr=new triangle(5,12,13);
rectangle re=new rectangle(8,8);
circle cr=new circle(8);
tr.output1();
re.output2();
cr.output3();
}
}
abstract class Shape{
public abstract double area();
}
class triangle extends Shape {
private double a,b,c,d;
public triangle(double a,double b,double c) {
setA(a);
setB(b);
setC(c);
setD((a+b+c)/2);
}
public double area()
{
return Math.sqrt(getD()*(getD()-getA())*(getD()-getB())*(getD()-getC()));
}
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 getD()
{
return d;
}
public void setD(double d)
{
this.d = d;
}
public void output1() {
System.out.println(area());
}
}
class rectangle extends Shape{
private double a,b;
public double area()
{
return a*b;
}
public rectangle(double a,double b)
{
setA(a);
setB(b);
}
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 void output2()
{
System.out.println(area());
}
}
class circle extends Shape{
private double radius;
public double area()
{
return 2*(Math.PI*Math.pow(radius, 2));
}
public double getRadius()
{
return radius;
}
public void setRadius(double radius)
{
this.radius = radius;
}
public circle(double radius)
{
setRadius(radius);
}
public void output3()
{
System.out.println(area());
}
}

package id;
import java.util.Scanner;
interface shape{
public void size();
}
class yuan implements shape{
private double m;
public double getBj() {
return m;
}
public void setBj(double bj) {
this.m = bj;
}
public yuan(double bj) {
setBj(bj);
}
public void size() {
System.out.println("圆的面积为:"+ Math.PI*Math.pow(m, 2));
System.out.println("圆的周长为:"+ Math.PI*2*m);
}
}
class line implements shape{
private double x1,y1,x2,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 line(double x1,double y1,double x2,double y2) {
this.x1=x1;
this.x2=x2;
this.y1=x2;
this.y2=y2;
}
public void size() {
System.out.println("直线的长度:"+ Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2)));
}
}
public class hope {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入圆的半径:");
double bj=sc.nextDouble();
yuan p1=new yuan(bj);
p1.size();
System.out.println("输入直线两点端点的坐标:");
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double x2=sc.nextDouble();
double y2=sc.nextDouble();
line p2=new line(x1,y1,x2,y2);
p2.size();
}
}

抽象类
抽象类和接口的区别
1. 抽象类中的方法可以有能实现方法的具体功能方法体,但是接口中不能有方法体。
2. 抽象类中的成员变量不限制类型,而接口中的成员变量只能是 public static final 类型的。
3. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
object类
Object类是所有类的父类,声明一个Object类的作用就是可以传递任何类型的类来使用。
Object是所有类的父类,它有很多类对象会用到的方法,例如比较常用的toString 、equals。
写封装方法的时候不确定传进来的值的类型,就可以使用Object作为类
接口
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
实现接口:
class 子类 implements 接口A,接口B,...{}
继承抽象类实现接口 :
class 子类 extends 抽象类 implements 接口A,接口B,...{}
接口的继承:
interface 子接口 extends 父接口A,父接口B,...{}
自我总结:昨天把上次没有听课讲的内容补回来了,这次作业基本上没什么问题,除了那个静态变量那里出了一点问题,多看了一下就解决了

浙公网安备 33010602011771号