ABOUT ME

Today
Yesterday
Total
  • 학생 정보 출력 (추상클래스)
    코딩/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
Designed by Tistory.