| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- AP Computer Science A
- Java
- 이항분포
- MERS
- Kaggle
- 인공지능 수학
- 딥러닝
- 시그모이드
- 생명정보학
- 생물정보학
- 서열정렬
- ncbi
- HMM
- AP
- 파이썬
- 블록체인
- COVID
- 인공신경망
- 오류역전파
- CNN
- 결정트리
- 바이오인포매틱스
- bioinformatics
- BLaST
- 자바
- RNN
- 캐글
- 인공지능
- 바이오파이썬
- SVM
- Today
- Total
데이터 과학
상속 예제 본문
extends 확장 명령어를 사용하는 자바에서의 상속은 공통적인 내용을 기준으로 하위 클래스에서 확장의 개념으로 내용을 추가하는 개념으로 사용합니다.
아래 내용은 Student에서 GradeStudent와 Undergrade를 상속하는 내용으로 클래스 Student에 있는 내용 이외에 추가적으로 사용하는 내용을 예제로 나타낸 것입니다.
예제 안에는 super를 사용하는 생성자의 기능이 있는데 super를 사용함으로 인해 생성자는 상속이 안 되는 문법을 해결하여 여 상위에 있는 명령어를 내려받아 사용할 수 있는 문법을 만들어 냅니다.
super.computeGrade(); 에서 super 함수를 사용함으로 인해 computeGrade() 메소드를 내려받아 이후에 나오는 명령어는 추가로 사용할 수 있는 코드를 완성할 수 있습니다.
public class Student {
public final static int NUM_TESTS = 3; //data members
private String name;
private int[] tests;
private String grade;
public Student(){ //constructor
name = "";
tests = new int[NUM_TESTS];
grade = "";
}
public Student(String studName, int[] studTests, String studGrade) { //constructor
name = studName;
tests = studTests;
grade = studGrade;
}
public String getName() { return name; }
public String getGrade() { return grade; }
public void setGrade(String newGrade) { grade = newGrade; }
public void computeGrade() {
if (name.equals(""))
grade = "No grade";
else if (getTestAverage() >= 65)
grade = "Pass";
else
grade = "Fail";
}
public double getTestAverage() {
double total = 0;
for (int score : tests)
total += score;
return total/NUM_TESTS;
}
public static void main(String args[]){
//Student s = new Student();
//Student g = new GradStudent();
//Student u = new UnderGrad();
//GradStudent g = new Student();
//UnderGrad u = new Student();
//Consider these valid declarations: // 주석처리된 object를 잘 이해해 보세요.
Student s = new Student("Brian Lorenzen", new int[] {90,94,99}, "none");
Student u = new UnderGrad("Tim Broder", new int[] {90,90,100}, "none");
Student g = new GradStudent("Kevin Cristella", new int[] {85,70,90}, "none", 1234);
}
}
class UnderGrad extends Student {
public UnderGrad() //default constructor
{ super(); }
public UnderGrad(String studName, int[] studTests, String studGrade) { //constructor
super(studName, studTests, studGrade); }
public void computeGrade() {
if (getTestAverage() >= 70)
setGrade("Pass");
else
setGrade("Fail"); }
}
class GradStudent extends Student {
private int gradID;
public GradStudent() //default constructor
{
super();
gradID = 0;
}
//constructor
public GradStudent(String studName, int[] studTests, String studGrade, int gradStudID) {
super(studName, studTests, studGrade);
gradID = gradStudID;
}
public int getID() {
return gradID; }
public void computeGrade() {
//invokes computeGrade in Student superclass
super.computeGrade();
if (getTestAverage() >= 90)
setGrade("Pass with distinction");
}
}
실습과제) 이 예제를 온라인 자바 컴파일러에 입력해 보고 출력물을 만들어서 화면에 결과가 나오게 완성해 보세요.
https://www.onlinegdb.com/online_java_compiler#
Online Java Compiler - online editor
OnlineGDB is online IDE with java compiler. Quick and easy way to run java program online.
www.onlinegdb.com
'AP > AP Computer Science A' 카테고리의 다른 글
| 추상화와 super 예제 (0) | 2024.06.04 |
|---|---|
| 상속에서 생성자와 super 연산 (0) | 2024.06.04 |
| this와 toString() 메소드 (0) | 2024.05.29 |
| static 변수 (0) | 2024.05.29 |
| ArrayList 예제 (0) | 2024.01.12 |