-
학생 정보 출력 (추상클래스)코딩/java 2019. 3. 18. 18:17반응형
public abstract class Student {
private int id;
private int tuition;
private double gpa;
public void setTuition(int tuition) {this.tuition = tuition;};
public void setGpa(double gpa) {this.gpa = gpa;};
public int getId() {return id;};
public int getTuition() {return tuition;};
public double getGpa() {return gpa;};
public abstract int clacScholarship();
public String toString() {//public 지울 수 있다. protect로!!, private는 오류 발생
return "학번: " + id + ", 등록금: " + tuition + ", 평균등급: " + gpa + ", 장학금: " + clacScholarship();
}
public Student () {
this.id = 0;
this.tuition = 0;
this.gpa = 0;
}
public Student (int id, int tuition, double gpa) {
this.id = id;
this.tuition = tuition;
this.gpa = gpa;
}
}
public class Graduate extends Student{
private String lab;
public void setLab(String lab) {this.lab = lab;};
public String getLab() {return lab;};
public int clacScholarship() {
if (getGpa() >= 3.5) {
return getTuition() / 2;
} else {
return getTuition() / 10;
}
}
public String toString() {
return super.toString() + ", 연구실: " + lab;
}
public Graduate() {
super();
this.lab = "None";
}
public Graduate(int id, int tuition, double gpa, String lab) {
super(id, tuition, gpa);
this.lab = lab;
}
}
public class Undergraduate extends Student{
private int year;
public void setYear(int year) {this.year = year;};
public int getYear() {return year;};
public int clacScholarship() {
return getTuition() * 3 / 10;
}
public String toString() {
return super.toString() + ", 학년: " + year;
}
public Undergraduate() {
super();
this.year = 0;
}
public Undergraduate(int id, int tuition, double gpa, int year) {
super(id, tuition, gpa);
this.year = year;
}
}
public class VisitingStudent extends Student{
public int clacScholarship() {
return 0;
};
public VisitingStudent(int id, int tuition, double gpa) {
super(id, tuition, gpa);
}
}
public class Practice_78 {
public static void main(String[] args) {
//Student S1 = new Student(1111, 100, 3.2); 추상클래스는 객체를 만들 수 없다.
Undergraduate S2 = new Undergraduate(2222, 100, 4.1, 3);
Graduate S3 = new Graduate(3333, 100, 3.4, "SE");
Graduate S4 = new Graduate(5555, 100, 4.0, "OS");
VisitingStudent S5 = new VisitingStudent(4444, 100, 2.5);
//System.out.println(S1.toString());
System.out.println(S2.toString());
System.out.println(S3.toString());
System.out.println(S4.toString());
System.out.println(S5.toString());
}
}
결과:
반응형'코딩 > java' 카테고리의 다른 글
내가 자주 헷갈리는 것들의 모음 (0) 2019.03.26 객체 비교하기 (0) 2019.03.18 사각형 넓이 비교 (0) 2019.03.18 키, 몸무게 비교 (0) 2019.03.18 상자의 정보 (함수 재정의) (0) 2019.03.08