📌Q098 Class
package com.test.question.q98;
public class Q098 {
public static void main(String[] args) {
/*
● 요구사항
학생 클래스를 구현하시오.
● 조건
- 생성자 오버로딩을 구현하시오.
- Student
- 학생 클래스
- 상태
name: 이름
age: 나이
grade: 학년
classNumber: 반
number: 번호
- 행동
public Student()
기본 생성자
이름("미정"), 나이(0), 학년(0), 반(0), 번호(0)
public Student(String name, int age, int grade, int classNumber, int number)
생성자 오버로딩
public Student(String name, int age)
생성자 오버로딩
public Student(int grade, int classNumber, int number)
생성자 오버로딩
String info()
이름(나이 : 0세, 학년 : 0, 반 : 0, 번호 : 0)
● 호출
//학생 1
Student s1 = new Student(); //기본 생성자 호출
System.out.println(s1.info());
//학생 2
Student s2= new Student("홍길동", 13); //오버로딩 생성자 호출
System.out.println(s2.info());
//학생 3
Student s3= new Student(3, 10, 30); //오버로딩 생성자 호출
System.out.println(s3.info());
//학생 4
Student s4= new Student("아무개", 12, 1, 5, 11); //오버로딩 생성자 호출
System.out.println(s4.info());
● 출력
미정(나이 : 미정, 학년 : 미정, 반 : 미정, 번호 : 미정) //s1.info();
홍길동(나이 : 13세, 학년 : 미정, 반 : 미정, 번호 : 미정) //s2.info();
미정(나이 : 미정, 학년 : 3, 반 : 10, 번호 : 30) //s3.info();
아무개(나이 : 12세, 학년 : 1, 반 : 5, 번호 : 11) //s4.info();
*/
//학생 1
Student s1 = new Student(); //기본 생성자 호출
System.out.println(s1.info());
//학생 2
Student s2= new Student("홍길동", 13); //오버로딩 생성자 호출
System.out.println(s2.info());
//학생 3
Student s3= new Student(3, 10, 30); //오버로딩 생성자 호출
System.out.println(s3.info());
//학생 4
Student s4= new Student("아무개", 12, 1, 5, 11); //오버로딩 생성자 호출
System.out.println(s4.info());
}
}
📌Student Class
package com.test.question.q98;
public class Student {
private String name; // 학생의 이름
private int age; // 학생의 나이
private int grade; // 학생의 학년
private int classNumber; // 학생의 반 번호
private int number; // 학생의 번호
// 기본 생성자
public Student() {
this("미정", 0, 0, 0, 0);
}
// 모든 정보를 받는 생성자
public Student(String name, int age, int grade, int classNumber, int number) {
this.name = name;
this.age = age;
this.grade = grade;
this.classNumber = classNumber;
this.number = number;
}
// 이름과 나이만 받는 생성자
public Student(String name, int age) {
this(name, age, 0, 0, 0);
}
// 학년, 반 번호, 번호만 받는 생성자
public Student(int grade, int classNumber, int number) {
this("미정", 0, grade, classNumber, number);
}
// 학생 정보를 문자열로 반환하는 메소드
String info() {
return String.format("%s(나이 : %s, 학년 : %s, 반 : %s, 번호 : %s)",
this.name,
this.age != 0 ? this.age + "세" : "미정",
this.grade != 0 ? this.grade : "미정",
this.classNumber != 0 ? this.classNumber : "미정",
this.number != 0 ? this.number : "미정");
}
}