Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 스프링 컨테이너
- Spring 개발환경 설정
- react
- 영속성 컨텍스트
- pom.xml
- @transactional
- 이클립스
- 상속
- 객체
- list
- spring
- Spring legacy Project
- 자바
- springboot
- 어노테이션
- 의존성주입
- @Bean
- merge
- 스프링
- 트랜잭션
- 인터페이스
- JVM
- java
- mysql
- 깃허브
- DI
- 자동주입
- github
- 빈
- 리액트
Archives
- Today
- Total
DEVLOG
객체지향 프로그래밍 - 6. 상속(2) 본문
앞서 상속(1) 포스팅을 할 때 부모클래스인 Person 클래스로부터 자식클래스인 Student 클래스 뿐만 아니라 Teacher 클래스도 상속받을 수 있다.
Teacher.java
// 자식클래스
public class Teacher extends Person{
private String teacherID; // 교직원 번호
private int monthSalary; // 월급
private int workedYear; // 연차
public String getTeacherID() {
return teacherID;
}
public void setTeacherID(String teacherID) {
this.teacherID = teacherID;
}
public int getMonthSalary() {
return monthSalary;
}
public void setMonthSalary(int monthSalary) {
this.monthSalary = monthSalary;
}
public int getWorkedYear() {
return workedYear;
}
public void setWorkedYear(int workedYear) {
this.workedYear = workedYear;
}
public Teacher(String name, int age, int height, int weight, String teacherID, int monthSalary, int workedYear) {
super(name, age, height, weight);
this.teacherID = teacherID;
this.monthSalary = monthSalary;
this.workedYear = workedYear;
}
public void show() {
System.out.println("-------------------");
System.out.println("교사 이름 : " + getName()); // Person에 선언되어 있으므로 상속하니까 바로 사용 가능
System.out.println("교사 나이 : " + getAge());
System.out.println("교사 키 : " + getHeight());
System.out.println("교사 몸무게 : " + getWeight());
System.out.println("교직원 번호 : " + getTeacherID());
System.out.println("교사 월급 : " + getMonthSalary());
System.out.println("교사 연차 : " + getWorkedYear());
}
}
Main.java
- 많은 객체를 찍어내기 위해 아래와 같이 배열과 반복문을 활용하면 편리하다.
// 메인클래스
public class Main {
public static void main(String[] args) {
// Teacher 클래스(틀)를 이용하여 인스턴스 생성
Teacher teacher1 = new Teacher("John Doe", 25, 180, 120, "ABC201", 3000000, 5);
teacher1.show();
// 학생 배열 만들기
Student[] students = new Student[100]; // 크기 지정
for (int i = 0; i < 100; i++) {
students[i] = new Student("홍길동", 20, 175, 70, i+" ", 1, 4.5);// 초기화
students[i].show();
}
}
}
외부 라이브러리인 Scanner를 활용하여 사용자가 입력한 정보로 객체를 만들어낼 수도 있다.
Main.java
// Teacher.java와 Student.java 활용
import java.util.Scanner;
// 메인클래스
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("총 몇 명의 학생이 존재합니까? ");
int num = sc.nextInt();
Student[] students = new Student[num]; // 입력한 숫자만큼 크기 지정
for (int i = 0; i < num; i++) {
// Student 클래스 참조하여 필요한 변수 선언
String name;
int age;
int height;
int weight;
String studentID;
int grade;
double gPA;
System.out.print("학생의 이름을 입력하세요 : ");
name = sc.next();
System.out.print("학생의 나이를 입력하세요 : ");
age = sc.nextInt();
System.out.print("학생의 키를 입력하세요 : ");
height = sc.nextInt();
System.out.print("학생의 몸무게를 입력하세요 : ");
weight = sc.nextInt();
System.out.print("학생의 학번을 입력하세요 : ");
studentID = sc.next();
System.out.print("학생의 학년을 입력하세요 : ");
grade = sc.nextInt();
System.out.print("학생의 학점을 입력하세요 : ");
gPA = sc.nextDouble();
students[i] = new Student(name, age, height, weight, studentID, grade, gPA);
}
for (int i = 0; i < students.length; i++) {
students[i].show();
}
}
}
'Java' 카테고리의 다른 글
Final 키워드 (0) | 2022.05.21 |
---|---|
추상 (Abstract) (0) | 2022.05.21 |
객체지향 프로그래밍 - 6. 상속(1) (0) | 2022.05.20 |
객체지향 프로그래밍 - 5. 클래스 / 객체 / 인스턴스 차이 (0) | 2022.05.20 |
객체지향 프로그래밍 - 4. 다차원 배열 (0) | 2022.05.20 |
Comments