本博文源于上课的第六周内容,主要实现了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");
}
}
}
}