본문 바로가기

JAVA/DAY 13 _ 23.09.04

Star UML

// 더블클릭 -> add attribute : 속성 선언 (name, age, score)
// 오른쪽 밑 -> properties : 속성의 타입 써주기
// visiblity -> public(+), private(-) 설정할 수 있음
// 더블클릭 -> add operation : 메서드 선언
// 왼쪽 밑 -> direct association : School이 Student를 사용하고 있다
// 왼쪽 밑 -> 1. compostion(-----◆) : School과 Student가 강하게 연결되어 있다 (= 결합도가 높다)
// 왼쪽 밑 -> 2. aggregation(----◇) : School과 Student가 약하게 연결되어 있다 (= 결합도가 비교적 낮다)
// 왼쪽 밑 -> 3. dependency(----->) : School과 Student가 언제든 분리될 수 있다 (= 결합도가 낮다)

 

Student st1 = new Student();

new School(st1).takeExam();	// 시험기간 입니다

st1.startStudy();		// 공부를 시작합니다
st1.startStudy();		// 공부를 시작합니다

String s = st1.startStudy();
System.out.println(s);		// 꽤 빡세군요

st1.add(5, 3);			// 출력하는게 있으면 출력이됐을텐데, 일단 아무것도 안나옴. 실행만된거야!
                            	// 반환값을 무시하고 그냥 add 메서드를 호출한 것
System.out.println(st1.add(5, 3));
// return값을 출력하는거지뭐 -> add 메서드의 반환값을 출력하는 코드
class School{

//  private Student S1;					// 1.

private Student S1 = new Student();			// 2. School이 생성되면 Student도 생성됨
// School이 소멸되면 Student도 소멸됨. (= 강하게 속해있는 관계, composition)


public School(Student s1) {				// 2. 메모리의 life cycle이 달라짐. 
    this.S1 = s1;					// (= 약하게 속해있는 관계, aggregation)
}





public void takeExam() {

    System.out.println("시험기간 입니다");
}

}



class Student{

private String name;
private int age;
private int score;



public String startStudy() {

    System.out.println("공부를 시작합니다");
    return "꽤 빡세군요";
}


public int add(int a, int b) {
    return a + b;
}

'JAVA > DAY 13 _ 23.09.04' 카테고리의 다른 글

싱글톤 패턴  (0) 2023.09.04
final  (0) 2023.09.04
static 2  (0) 2023.09.04
method 오버로딩 & static변수  (0) 2023.09.04
Class Review  (0) 2023.09.04