// 더블클릭 -> 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 |