4-4 jmu-java-m04-Abstract, Person, Student, Teacher(10점)
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;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.