Java 객체 지향 포괄적 애플리케이션-자동차 쿼리 시스템

1. 객체 지향 캡슐화, 상속, 다형성, 추상화, 인터페이스 및 예외 지식을위한 자동차 쿼리 시스템을 완성합니다.

요구 사항 설명 : 승용차, 버스, 트럭의 3 가지 유형이 있는데, 그 중 승용차의 좌석 수는 4 석, 버스 좌석 수는 53 석, 트럭 좌석 수는 2 석입니다. 패키징, 상속 및 추상화가 필요합니다. 차량의 정의를 완료하려면.

차량 정보를 수정할 수 있습니다. 트럭은 물품을 운송 할 수 있지만 적재량은 12 톤을 초과 할 수 없습니다. 사용자 정의 예외를 사용하여 오류를 처리하십시오. 자동차와 버스에는이 기능이 없으며 인터페이스를 사용해야합니다.

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();
}

그때

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座";
	}
	
}

버스

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座";
	}

}

트럭

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;
	}

}

컨테이너

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);
	}
}

테스트

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();
	}
}

객체 클래스, 래퍼 클래스, 인터페이스 및 예외를 포함하는 객체 지향의 고급 부분입니다. Object 클래스는 모든 Java 클래스의 상위 클래스로 Java 시스템의 기본 정보를 정의하며 상속을 통해 Java의 각 클래스로 전달되며, 전체 Java 시스템은 메소드 재 작성 및 다형성을 통해 강력한 유연성을 가지고 있습니다.

래핑 클래스는 Java가 기본 데이터 유형에 대한 캡슐화를 제공하는 클래스 집합으로,이를 통해 기본 데이터 유형을 객체로 변환 할 수 있습니다. 이는 객체 지향 프로그래밍에서 매우 중요합니다.

인터페이스는 추상 클래스의 확장이며 Java에서 다형성을 달성하는 중요한 방법으로, 프로그램의 결합을 줄이고 프로그램을보다 유연하고 변경 가능하게 만들 수 있습니다. 인터페이스는 부품과 동일하며 이러한 부품을 자유롭게 조립하고 통합 할 수 있습니다.

Exception은 Java에서 오류를 처리하기위한 메커니즘입니다. 또한 객체 지향적 사고를 기반으로합니다. 오류는 객체로 추상화 된 다음 처리됩니다. 여기서주의해야 할 점은 예외, try, catch, finally, throw와 관련된 여러 키워드를 사용하는 것입니다. , 던졌습니다.

추천

출처blog.csdn.net/qq_40220309/article/details/105687299