实验6面向对象基本概念2

本博文源于上课的第六周内容,主要实现了java的课后习题,内容还是比较繁杂,且须慢慢道来。

实验1

题目再现

在这里插入图片描述
在这里插入图片描述

分部分源码

在这里插入图片描述

Geometry.java

package com.crazynkx.demo;

import java.util.Date;

public class Geometry {
    
    
    private String color;
    private boolean filled;
    private Date dateCreated;

    public Geometry(){
    
    
    }
    public Geometry(String cor){
    
    
        this.color = cor;
        this.filled = false;
        this.dateCreated = new Date();
    }

    public Geometry(String color, boolean filled) {
    
    
        this.color = color;
        this.filled = filled;
    }

    public String getColor(){
    
    
        return color;
    }

    public void setColor(String color) {
    
    
        this.color = color;
    }

    public boolean isFilled() {
    
    
        return filled;
    }

    public void setFilled(boolean filled) {
    
    
        this.filled = filled;
    }

    public Date getDateCreated() {
    
    
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
    
    
        this.dateCreated = dateCreated;
    }

    @Override
    public String toString() {
    
    
        return "Geometry{" +
                "color='" + color + '\'' +
                ", filled=" + filled +
                ", dateCreated=" + dateCreated +
                '}';
    }
}

Rectangle.java

package com.crazynkx.demo;

public class Rectangle extends Geometry {
    
    
    private double width;
    private double height;
    public Rectangle(){
    
    }
    public Rectangle(double width,double height){
    
    
        this.width = width;
        this.height = height;
    }
    public Rectangle(double width,double height,String color,boolean filled){
    
    
        super(color,filled);
        this.width = width;
        this.height = height;
    }

    public double getWidth() {
    
    
        return width;
    }

    public void setWidth(double width) {
    
    
        this.width = width;
    }

    public double getHeight() {
    
    
        return height;
    }

    public void setHeight(double height) {
    
    
        this.height = height;
    }
    public double getArea(){
    
    
        return width*height;
    }
    public double getPerimeter(){
    
    
        return 2*(width+height);
    }

    @Override
    public String toString() {
    
    
        return "Rectangle{" +
                "area=" + getArea() +
                ", c=" + getPerimeter() +
                '}';
    }
}

Circle.java

package com.crazynkx.demo;

public class Circle extends Geometry {
    
    
    private double radius;
    public Circle(){
    
    }
    public Circle(double radius){
    
    
        this.radius = radius;
    }
    public Circle(double radius,String color,boolean filled){
    
    
        super(color,filled);
        this.radius = radius;
    }
    public double getRadius(){
    
    
        return radius;
    }

    public void setRadius(double radius) {
    
    
        this.radius = radius;
    }
    public double getArea(){
    
    
        return radius*radius*3.14;
    }
    public double getPerimeter(){
    
    
        return 2*3.14*radius;
    }

    @Override
    public String toString() {
    
    
        return "form{" +
                "radius=" + radius +
                "\narea:" + getArea() +
                "\n c:" + getPerimeter();
    }
}

test1.java

package com.crazynkx.demo;

import java.awt.*;

public class test1 {
    
    
    public static void main(String[] args){
    
    

        Geometry geometry = new Geometry("蓝色");
        System.out.println(geometry);
        System.out.println("------------------------");
        Circle circle = new Circle(10,"绿色",false);
        System.out.println(circle);
        System.out.println("------------------------");
        Rectangle rectangle = new Rectangle(5,10,"红色",true);
        System.out.println(rectangle);

    }
}

实验2

题目再现

在这里插入图片描述

分部分源码

在这里插入图片描述

package com.crazynkx.demo;

import java.awt.geom.Area;

public class Triangle  extends Geometry{
    
    
    private double Edge1;
    private double Edge2;
    private double Edge3;
    public Triangle(){
    
    }
    public Triangle(String color,boolean filled,double Edge1,double Edge2,double Edge3){
    
    
        super(color,filled);
        if(Edge1+Edge2>Edge3 && Edge1+Edge3>Edge2&&Edge2+Edge3>Edge1){
    
    
            this.Edge1 = Edge1;
            this.Edge2 = Edge2;
            this.Edge3 = Edge3;
        }else{
    
    
            System.out.println("cannot form");
        }
    }

    public double getEdge1() {
    
    
        return Edge1;
    }

    public double getEdge2() {
    
    
        return Edge2;
    }

    public double getEdge3() {
    
    
        return Edge3;
    }

    public void setEdge1(double edge1) {
    
    
        Edge1 = edge1;
    }

    public void setEdge2(double edge2) {
    
    
        Edge2 = edge2;
    }

    public void setEdge3(double edge3) {
    
    
        Edge3 = edge3;
    }
    public double getArea(){
    
    
        double p = (Edge1+Edge2+Edge3)/2;
        return Math.sqrt(p*(p-Edge1)*(p-Edge2)*(p-Edge3));
    }
    public double getPerimeter(){
    
    
        return Edge1+Edge2+Edge3;
    }

    @Override
    public String toString() {
    
    
        return "Triangle{" +
                "\narea:" + getArea() +
                ", Perimeter=" + getPerimeter() +
                '}';
    }
}

实验3

题目再现

在这里插入图片描述

扫描二维码关注公众号,回复: 14264065 查看本文章

分部分源码

在这里插入图片描述

package com.crazynkx.demo;
public class test2 {
    
    
    public static void main(String[] args) {
    
    
        Geometry geometry1 = new Geometry("lanse");
        System.out.println(geometry1);
        System.out.println("------------------------");
        Circle circle = new Circle(10,"绿色",false);
        System.out.println(circle);
        System.out.println("------------------------");
        Rectangle rectangle = new Rectangle(5,10,"红色",true);
        System.out.println(rectangle);
        System.out.println("------------------------");
        Triangle triangle = new Triangle("黑色",true,1,3,3);
        Geometry[] geometries = new Geometry[4];
        geometries[0] = geometry1;
        geometries[1] = circle;
        geometries[2] = rectangle;
        geometries[3] = triangle;
        show(geometries);

    }

    public static void show(Geometry[] geometries){
    
    
        for (int i = 0; i < geometries.length; i++) {
    
    
            if (geometries[i] instanceof Circle){
    
    
                Circle circle = (Circle)geometries[i];
                System.out.println("圆形面积"+circle.getArea());
            }else if (geometries[i] instanceof Rectangle){
    
    
                Rectangle rectangle = (Rectangle)geometries[i];
                System.out.println("矩形周长"+rectangle.getPerimeter());
            }else if (geometries[i] instanceof Triangle){
    
    
                System.out.println("三角形创建时间"+geometries[i].getDateCreated());
            }else if (geometries[i] instanceof Geometry){
    
    
                System.out.println(geometries[i].getColor());
            } else{
    
    
                System.out.println("Other Geometry");
            }
        }
    }

}

实验4

题目再现

在这里插入图片描述

分部分源码

在这里插入图片描述
Vehicle.java

package com.crazynkx.demo;

public class Vehicle {
    
    
    public static class Bike extends Vehicle{
    
    }
    public static class Car extends Vehicle{
    
    }
    public static class Ship extends Vehicle{
    
    }
    public static class Plane extends Vehicle{
    
    }
    public class Trian extends Vehicle{
    
    }



}

test4.java

package com.crazynkx.demo;

class test4 {
    
    
    public static void main(String[] args) {
    
    
        Vehicle[] vehicles = new Vehicle[5];
        vehicles[0] = new Vehicle.Bike();
        vehicles[1] = new Vehicle.Car();
        vehicles[2] = new Vehicle.Ship();
        vehicles[3] = new Vehicle.Plane();
        vehicles[4] = new Vehicle();
        for (int i = 0; i < vehicles.length; i++) {
    
    
            if (vehicles[i] instanceof Vehicle.Bike) {
    
    
                System.out.println("自行车");
            } else if (vehicles[i] instanceof Vehicle.Car) {
    
    
                System.out.println("汽车");
            } else if (vehicles[i] instanceof Vehicle.Ship) {
    
    
                System.out.println("轮船");
            } else if (vehicles[i] instanceof Vehicle.Plane) {
    
    
                System.out.println("飞机");
            } else if (vehicles[i] instanceof Vehicle.Trian) {
    
    
                System.out.println("火车");
            } else if (vehicles[i] instanceof Vehicle) {
    
    
                System.out.println("Vehicle");
            } else {
    
    
                System.out.println("Other Vehicle");
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/123934661
今日推荐