Java-objektorientierte umfassende Anwendung - Car Query System

1. Vervollständigen Sie ein Automobilabfragesystem für objektorientierte Kapselung, Vererbung, Polymorphismus, Abstraktion, Schnittstelle und Ausnahmewissen.

Anforderungsbeschreibung: Es gibt 3 Arten von Autos: Autos, Busse, Lastwagen, von denen die Anzahl der Sitze im Auto 4, die Anzahl der Sitze im Bus 53 und die Anzahl der Sitze im LKW 2 beträgt erfordert Verpackung, Vererbung und Abstraktion, um die Definition des Fahrzeugs zu vervollständigen.

Die Fahrzeuginformationen können geändert werden. Der LKW kann Güter transportieren, die Ladung darf jedoch 12 Tonnen nicht überschreiten. Verwenden Sie benutzerdefinierte Ausnahmen, um Fehler zu behandeln. Autos und Busse haben diese Funktion nicht und erfordern die Verwendung von Schnittstellen.

Auto

package com.song.test;

public abstract class Car {
    
    
	private String name;
	private String color;
	public String getName() {
    
    
		return name;
	}
	public void setName(String name) {
    
    
		this.name = name;
	}
	public String getColor() {
    
    
		return color;
	}
	public void setColor(String color) {
    
    
		this.color = color;
	}
	public Car(String name, String color) {
    
    
		super();
		this.name = name;
		this.color = color;
	}
	public abstract String seatNum();
}

Dann

package com.song.test;

public class Sedan extends Car {
    
    

	public Sedan(String name, String color) {
    
    
		super(name, color);
	}

	@Override
	public String seatNum() {
    
    
		// TODO Auto-generated method stub
		return "4座";
	}
	
}

Bus

package com.song.test;

public class Bus extends Car {
    
    

	public Bus(String name, String color) {
    
    
		super(name, color);
		// TODO Auto-generated constructor stub
	}

	@Override
	public String seatNum() {
    
    
		// TODO Auto-generated method stub
		return "53座";
	}

}

LKW

package com.song.test;

public class Truck extends Car implements Container {
    
    
	
	private int weight;

	public Truck(String name, String color,int weight) {
    
    
		super(name, color);
		this.weight = weight;
		// TODO Auto-generated constructor stub
	}

	@Override
	public String seatNum() {
    
    
		// TODO Auto-generated method stub
		return "2座";
	}

	@Override
	public int getweight() {
    
    
		// TODO Auto-generated method stub
		return this.weight;
	}

}

Container

package com.song.test;

public interface Container {
    
    
	public int getweight();
}

CarException

package com.song.test;

public class CarException extends Exception {
    
    
	public CarException(String error) {
    
    
		super(error);
	}
}

Prüfung

package com.song.test;

import java.util.Scanner;

public class Test {
    
    
	private static Scanner scanner;
	private static Sedan sedan;
	private static Bus bus;
	private static Truck truck;
	private static Car[] cars;
	static {
    
    
		scanner = new Scanner(System.in);
		sedan = new Sedan("小轿车","黑色");
		bus = new Bus("大巴车","绿色");
		truck = new Truck("卡车","蓝色",2);
		cars = new Car[3];
		cars[0] = sedan;
		cars[1] = bus;
		cars[2] = truck;
	}
	
	public void showCars() {
    
    
		System.out.println("欢迎使用本汽车管理系统");
		System.out.println("车辆名称\t\t车辆颜色\t\t座位数\t\t载重量");
		for(Car car:cars) {
    
    
			if(car instanceof Truck) {
    
    
				Truck truck = (Truck)car;
				System.out.println(car.getName()+"\t\t"+car.getColor()+"\t\t"+car.seatNum()+"\t\t"+truck.getweight());
			}else {
    
    
				System.out.println(car.getName()+"\t\t"+car.getColor()+"\t\t"+car.seatNum()+"\t\t不能拉货");
			}
		}
		System.out.println("1.小轿车\t2.大巴车\t3.卡车");
		System.out.print("请选择要修改的车辆:");
		int num = scanner.nextInt();
		switch(num) {
    
    
			case 1:
				update("sedan");
				break;
			case 2:
				update("bus");
				break;
			case 3:
				update("truck");
				break;
			default:
				System.out.println("车辆不存在!");
				break;
		}
	}
	
	public void update(String type) {
    
    
		String name = null;
		String color = null;
		if(type.equals("sedan")) {
    
    
			System.out.print("输入车辆名称");
			name = scanner.next();
			System.out.print("输入车辆颜色");
			color = scanner.next();
			Sedan sedan = new Sedan(name,color);
			cars[0] = sedan;
		}
		if(type.equals("bus")) {
    
    
			System.out.print("输入车辆名称");
			name = scanner.next();
			System.out.print("输入车辆颜色");
			color = scanner.next();
			Bus bus = new Bus(name,color);
			cars[1] = bus;
		}
		if(type.equals("truck")) {
    
    
			System.out.print("输入车辆名称");
			name = scanner.next();
			System.out.print("输入车辆颜色");
			color = scanner.next();
			System.out.print("输入载重量");
			int weight = scanner.nextInt();
			if(weight > 12) {
    
    
				CarException carException = new CarException("卡车的载重量不能超过12吨");
				try {
    
    
					throw carException;
				} catch (CarException e) {
    
    
					// TODO Auto-generated catch block
					e.printStackTrace();
					return;
				}
			}
			Truck truck = new Truck(name,color,weight);
			cars[2] = truck;
		}
		showCars();
	}
	
	public static void main(String[] args) {
    
    
		Test test = new Test();
		test.showCars();
	}
}

Der übergeordnete Teil von objektorientiert, einschließlich Objektklasse, Wrapper-Klasse, Schnittstelle und Ausnahme. Die Object-Klasse ist die übergeordnete Klasse aller Java-Klassen. Sie definiert die grundlegenden Informationen des Java-Systems. Sie wird durch Vererbung an jede Java-Klasse übergeben, und das gesamte Java-System verfügt über eine hohe Flexibilität durch Umschreiben von Methoden und Polymorphismus.

Wrapping-Klassen sind eine Reihe von Klassen, die Java zur Kapselung grundlegender Datentypen bereitstellt, mit denen wir grundlegende Datentypen in Objekte konvertieren können, was bei der objektorientierten Programmierung sehr wichtig ist.

Interface ist eine Erweiterung abstrakter Klassen und ein wichtiger Weg, um Polymorphismus in Java zu erreichen. Es kann die Kopplung des Programms verringern und das Programm flexibler und veränderbarer machen. Schnittstellen entsprechen Teilen, und wir können diese Teile frei zusammenbauen und integrieren.

Die Ausnahme ist ein Mechanismus zur Behandlung von Fehlern in Java. Sie basiert auch auf objektorientiertem Denken. Fehler werden in Objekte abstrahiert und dann verarbeitet. Was hier beachtet werden muss, ist die Verwendung mehrerer Schlüsselwörter, die sich auf Ausnahmen beziehen, versuchen, fangen, schließlich werfen wirft.

Ich denke du magst

Origin blog.csdn.net/qq_40220309/article/details/105687299
Empfohlen
Rangfolge