4-4 jmu-java-m04-Abstract, Person, Student, Teacher(10점)

28183 단어
이 프로그램에는
Person 클래스(추상 클래스): 속성: int id, String name, LocalDate birthDate.참고: 정의할 때는 위에서 아래로 순서대로 정의해야 합니다.방법: 구조 방법(id,name,year,month,dayOfMonth);id와birthDate의 Getter 방법;name의 Getter/setter 방법;Eclipse가 자동으로 생성하는 tostring;하위 클래스에서 반환되는 정보가 하위 클래스 고유의 속성과 연관되어 있기 때문에 추상적인 방법인 String getPersonNumber()가 선언됩니다.
Student 클래스는 Person: 속성: int enrollmentYear, String clazzName에서 상속됩니다.방법: 구조 방법(id,name,year,month,dayOfMonth,enrollmentYear,clazzName), 슈퍼를 사용하여Person의 구조 함수를 복용하는 것을 권장합니다.부모 클래스의 getPersonNumber () 방법을 덮어쓰고 "Student-enrollmentYear-name"을 되돌려줍니다.
Teacher 클래스는 Person: 속성: String department, double salary에서 상속됩니다.방법: 구조 방법(id,name,year,month,dayOfMonth,department,salary), 슈퍼를 사용하여Person의 구조 함수를 복용하는 것을 권장합니다.부모 클래스의 getPersonNumber() 메서드를 덮어쓰고 "Teacher-department-name"을 반환합니다.
main 메서드는 다음과 같습니다.
public static void main(String[] args) { String[] types = {“Student”,“Teacher”};//피드 seed를 입력하고 Random 대상//입력 대상 생성 수량 n//이하 n개 대상을 생성하는 순환//random을 사용합니다.nxtInt(2) types 배열에서 요소 x를 무작위로 선택하여 출력합니다//x의 선택에 따라 해당하는 매개 변수를 입력하십시오//n개의 대상 getPersonNumber//다음 몇 줄의 출력 검증 정보를 입력하십시오. 코드에 붙여넣은 System에 직접 복사하십시오.out.println(Student.class.getSuperclass()); System.out.println(Teacher.class.getSuperclass()); try { System.out.println(Person.class.getDeclaredMethod(“getPersonNumber”, null)); System.out.println(Student.class.getDeclaredMethod(“getPersonNumber”, null)); System.out.println(Teacher.class.getDeclaredMethod(“getPersonNumber”, null)); } catch (Exception e) { e.printStackTrace(); } }
입력 형식: 무작위 피드 seed는 대상 수 n 줄을 생성하고, 줄마다 대상의 정보 정보를 생성합니다.Student 대상을 생성하려면 순서대로 입력하십시오: 이름 연월일 입학연도 학급 Teacher 대상을 생성하려면 순서대로 입력하십시오: 이름 연월일과 월급 주의: 각 대상의 id는 매번 순환하는 순서입니다. 0에서 n-1
출력 형식: n 객체 유형 n 객체 getPersonNumber 유효성 검사 정보
입력 예: 3 6 Liz 1986 10 10 CS 2000 Tom 19785 7 CS 2500.5 Sally 2000 1 3 2018 Net01 Jerry 1988 6 7 Mechanical 1990 Eliza 2001 2 5 2019 Software 02 Li 1978 5 7 cs 2400
출력 예: Teacher Teacher Student Teacher Student Teacher Teacher-CS-Liz Teacher-CS-Tom Student-2018-Sally Teacher-Mechanical-Jerry Student-2019-Eliza Teacher-cs-Li 검증 정보
저자 정여빈 단위 집미대 코드 길이 제한 16KB 시간 제한 400ms 메모리 제한 64MB
import java.util.*;
import java.time.LocalDate;

public class Main {
	public static void main(String[] args) {
    	Scanner sc=new Scanner(System.in);
    	String[] types = {"Student","Teacher"};
        int seed=sc.nextInt();
        Random r = new Random(seed);//    seed,      Random  
        int n=sc.nextInt();//        n
        Person[] p = new Person[n];
        String[] strr = new String[n];
        for(int i=0;i<n;i++)//     n      
       {
    	   String str =types[r.nextInt(2)];
    	  //  random.nextInt(2) types         x   
    	   strr[i]=str;///
    	   //  x         
    	   if(str.equals("Student"))
    	   {
    		   String name=sc.next();
    		   int year=sc.nextInt();
    		   int month=sc.nextInt();
    		   int dayOfMonth=sc.nextInt();
    		   int enrollmentYear=sc.nextInt();
   			   String clazzName=sc.next();
   			   Student s = new Student(i,name,year,month,dayOfMonth,enrollmentYear,clazzName); 
   			   p[i]=s;
    	   }
    	   else if(str.equals("Teacher"))
    	   {
    		   String name=sc.next();
    		   int year=sc.nextInt();
    		   int month=sc.nextInt();
    		   int dayOfMonth=sc.nextInt();
    		   String department=sc.next();
    		   double salary=sc.nextDouble();
    		   Teacher t = new Teacher(i,name,year,month,dayOfMonth,department,salary);
    		   p[i]=t;
    	   }
    	   
       }
        for(String f:strr)
        {
        	System.out.println(f);
        }
        
        for(Person x:p)
        {
        	System.out.println(x.getPersonNumber());
        }
    	//          ,             
        System.out.println(Student.class.getSuperclass());
        System.out.println(Teacher.class.getSuperclass());
        try {
           System.out.println(Person.class.getDeclaredMethod("getPersonNumber", null));
           System.out.println(Student.class.getDeclaredMethod("getPersonNumber", null));
           System.out.println(Teacher.class.getDeclaredMethod("getPersonNumber", null));
        } catch (Exception e) {
           e.printStackTrace();
        } 
      
        
	}

}
abstract class Person
{
	int id;
	String name; 
	LocalDate birthDate;
	int year;
	int month;
	int dayOfMonth;
	
	public Person(int id,String name,int year,int month,int dayOfMonth)
	{
		this.id=id;
		this.name=name;
		this.year=year;
		this.month=month;
		this.dayOfMonth=dayOfMonth;
		this.birthDate=LocalDate.of(this.year,this.month,this.dayOfMonth);
		
	}

	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

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

	public LocalDate getBirthDate() {
		return birthDate;
	}


	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", birthDate=" + birthDate +  "]";
	}
	//    
	public abstract String getPersonNumber();
	
}

class Student extends Person
{
	int enrollmentYear;
	String clazzName;
	public Student(int id,String name,int year,int month,int dayOfMonth,int enrollmentYear,String clazzName)
	{
			super(id,name,year,month,dayOfMonth);//  super  Person     
			this.enrollmentYear=enrollmentYear;
			this.clazzName=clazzName;
			
	}
	public String getPersonNumber() {
		return "Student-"+this.enrollmentYear+"-"+this.name;
	}
	
}
class Teacher extends Person
{
	String department;
	double salary;
	
	public Teacher(int id,String name,int year,int month,int dayOfMonth,String department,double salary)
	{
		super(id,name,year,month,dayOfMonth);
		this.department=department;
		this.salary=salary;
	}
	public String getPersonNumber() {
		
		return "Teacher-"+this.department+"-"+this.name;
	}
}

좋은 웹페이지 즐겨찾기