[22.12.26] 45일차 [백엔드] Java

W·2022년 12월 26일
0

국비

목록 보기
66/119

예제1)

  • subject 클래스
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;
	}
	
}
  • student 클래스
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("부모클래스 메서드()");
	}
	
}
  • child 클래스
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)

  • person 클래스(부모)
package test;

public class Person {
		// 부모클래스 Person
		// 메서드 personPrn() 출력 "사람 먹는다"
	public void personPrn() {
		System.out.println("사람 먹는다");
	}
}
  • student1 클래스(자식)
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)

  • point2 클래스(부모)
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);
	}
}
  • Point3 클래스(자식)
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

0개의 댓글