예제1)
package test;
public class Subject {
private String subName;
private int score;
public String getSubName() {
return subName;
}
public void setSubName(String subName) {
this.subName = subName;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
package test;
import java.util.ArrayList;
public class Student {
// Student 클래스
// 멤버변수 int num, String name
// set, get
private int num;
private String name;
// 멤버변수 ArrayList 배열 과목 선언
private ArrayList<Subject> subjectList;
public Student() {
}
// alt shift s -> o
public Student(int num, String name) {
this.num = num;
this.name = name;
// 멤버변수 ArrayList 배열 과목 객체생성
subjectList = new ArrayList<Subject>();
}
// 배열에 Subject 3과목 저장 => 메서드 정의
public void addSubject(String subName, int score) {
// 1과목 객체생성
Subject subject = new Subject();
subject.setSubName(subName);
subject.setScore(score);
// 배열 한칸에 저장
subjectList.add(subject);
}
// 출력 이름 for 과목 출력
public void showStudentInfo() {
System.out.println("이름 : " +name);
for(int i=0;i<subjectList.size();i++) {
Subject s = subjectList.get(i);
System.out.println("과목 : " +s.getSubName());
System.out.println("점수 : " +s.getScore());
System.out.println("==============");
}
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package test;
public class Test2 {
public static void main(String[] args) {
// Student 객체 생성 학번, 이름
// addSubject 함수 호출
// "국어" 100 "수학" 50 "영어" 80
// showStudentInfo() 메서드 호출
Student s = new Student(1, "홍길동");
s.addSubject("국어", 100);
s.addSubject("수학", 50);
s.addSubject("영어", 80);
s.showStudentInfo();
Student s2 = new Student(2, "이길동");
s2.addSubject("국어", 900);
s2.addSubject("수학", 70);
s2.addSubject("영어", 100);
s2.showStudentInfo();
}
}
[출력]
이름 : 홍길동
과목 : 국어
점수 : 100
==============
과목 : 수학
점수 : 50
==============
과목 : 영어
점수 : 80
==============
이름 : 이길동
과목 : 국어
점수 : 900
==============
과목 : 수학
점수 : 70
==============
과목 : 영어
점수 : 100
==============
부모와 자식 상속관계를 클래스 정의
부모의 모든 것을 자식이 사용할 수 있다.
부모클래스(상위클래스) 자식클래스 (하위클래스)
Parent 클래스
package test;
public class Parent {
public void parentPrn() {
System.out.println("부모클래스 메서드()");
}
}
package test;
public class Child extends Parent{
// extends Parent 부모를 상속
// 부모 영역으로 확장
// 부모 코드 사용
public void childPrn() {
System.out.println("자식클래스 메서드()");
}
}
package test;
public class Test3 {
public static void main(String[] args) {
// 상속 : 부모와 자식 상속관계를 클래스 정의
// : 부모의 모든 것을 자식이 사용할 수 있다.
// 부모클래스(상위클래스) 자식클래스 (하위클래스)
// 부모클래스 객체 생성
Parent p = new Parent();
// 메서드 호출
p.parentPrn();
// p.childPrn(); // 부모는 자식 메서드 호출 못함
System.out.println("===========================");
Child c = new Child();
c.childPrn();
c.parentPrn();
}
}
[출력]
부모클래스 메서드()
===========================
자식클래스 메서드()
부모클래스 메서드()
예제1)
package test;
public class Person {
// 부모클래스 Person
// 메서드 personPrn() 출력 "사람 먹는다"
public void personPrn() {
System.out.println("사람 먹는다");
}
}
package test;
public class Student1 extends Person{
// 자식클래스 Student
// 메서드 studentPrn() 출력 "학생 공부한다"
public void studentPrn() {
System.out.println("학생 공부한다");
}
}
package test;
public class Test4 {
public static void main(String[] args) {
// 자식 클래스 Student 객체생성
// 메서드 personPrn(), 메서드 studentPrn() 메서드 호출
Student1 sss = new Student1();
sss.personPrn();
sss.studentPrn();
}
}
[출력]
사람 먹는다
학생 공부한다
예제2)
package test;
public class Point2 {
// Point2 클래스 멤버변수 int x, int y
// prn() 메서드 x,y 출력
protected int x; // protected로 설정하면 상속 관계도 접근 가능
protected int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public void prn2() {
System.out.println(x);
System.out.println(y);
}
}
package test;
public class Point3 extends Point2 {
// Point3 클래스 Point2 상속
// 멤버변수 int z
// 메서드 prn3() x,y,z 출력
private int z;
public int getZ() {
return z;
}
public void setZ(int z) {
this.z = z;
}
// 상속 관계 private(클래스내) 접근 못함
// -> public(모두접근), 생략(같은 폴더)
// -> protected (상속관계)
public void prn3() {
System.out.println(x +", "+ y+", "+z);
}
}
package test;
public class Test5 {
public static void main(String[] args) {
// point3 객체 생성
// x, y, z set 메서드 호출 값 저장
// 메서드 호출 prn2() prn3()
Point3 pp = new Point3();
pp.setX(1);
pp.setY(2);
pp.setZ(3);
pp.prn2();
pp.prn3();
}
}
[출력]
1
2
1, 2, 3