항목에 결함이 있는지 Java 확인

주제 세부정보:

공장은 장비에 결함 제품이 있는지 검사하고 결함이 발견되면 경고를 발행합니다. 프로그래밍은 결함 제품을 감지하는 프로세스를 시뮬레이션합니다.

멤버 변수 이름과 isDefect(결함이 있는지 여부)가 있고 get 및 set 메서드가 있는 제품 클래스 Product를 작성합니다.

Exception의 하위 클래스인 DefectException을 작성합니다. 이 하위 클래스에는 메시지 속성이 있고 "결함"을 메시지 멤버에 할당하는 생성자 DefectException()이 있으며 메시지 값을 출력하는 toShow() 메서드가 있습니다.

Machine 클래스 작성 이 클래스의 checkProduct(Product product) 메소드는 product 매개변수가 결함이 있는 제품(제품의 isDefect 속성이 true임)임을 발견하면 DefectException 예외 객체를 throw합니다.

메인 클래스의 메인 메소드에서 try...catch 문의 try 부분에서 프로그램은 Machine 클래스의 인스턴스가 checkProduct 메소드를 호출하도록 하고, 불량품이 발견되면 캐치에서 불량품을 처리한다. try...catch 문의 일부입니다.

디자인 클래스 정의:

class Product { //完整编写
       boolean isDefect;
       String name;
       //补充代码


    }
class DefectException extends Exception { //完整编写
       String message;
      //补充代码


    }
class Machine {
      public void checkProduct(Product product) throws DefectException {
         if(product.isDefect()) {
             DefectException defect=new DefectException();
             //【代码1】   //抛出defect
         }
         else {
             System.out.print(product.getName()+"不是次品! ");
         }
      }
    }

심판 테스트 절차의 예:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
         Machine machine = new Machine();
          String name[] ;
          Scanner sc=new Scanner(System.in);
          name=sc.nextLine().split(" ");
          Product [] products = new Product[name.length]; //检查6件货物  
          for(int i= 0;i<name.length;i++) {
             products[i] = new Product();
             if(i%2==0) {
                products[i].setIsDefect(false);
                products[i].setName(name[i]);
             }
             else {
               products[i].setIsDefect(true);
               products[i].setName(name[i]);
             } 
          }
          for(int i= 0;i<products.length;i++) {
            try {
                machine.checkProduct(products[i]);
                System.out.println(products[i].getName()+"检查通过");
            }
            catch(DefectException e) {
               e.toShow();//【代码2】 //e调用toShow()方法
               System.out.println(products[i].getName()+"被禁止!"); 
            }
          }     
       } 
}


/* 将完整的Product类, DefectException类 和Machine类写在下面*/

입력 샘플:

电脑 炸药 西服 硫酸 手表 硫磺

끝에 빈 줄이 없음

샘플 출력:

电脑不是次品! 电脑检查通过
次品! 炸药被禁止!
西服不是次品! 西服检查通过
次品! 硫酸被禁止!
手表不是次品! 手表检查通过
次品! 硫磺被禁止!

끝에 빈 줄이 없음

답변 코드:

class Product { // 完整编写
	boolean isDefect;
	String name;

	// 补充代码
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public boolean isDefect() {
		return isDefect;
	}

	public void setIsDefect(boolean defect) {
		isDefect = defect;
	}
}

class DefectException extends Exception { // 完整编写
	String message;

	// 补充代码
	DefectException() {
	}

	void toShow() {
		System.out.print("次品!");
	}
}

class Machine {
	public void checkProduct(Product product) throws DefectException {
		if (product.isDefect()) {
			DefectException defect = new DefectException();
			throw defect;
		} else {
			System.out.print(product.getName() + "不是次品! ");
		}
	}
}

추천

출처blog.csdn.net/qq_54587141/article/details/120744571