[Core.java] 4. Objects and Classes

이도훈·2021년 8월 30일
0

자바

목록 보기
3/3

Relationships between Classes

  • Dependence ("uses-a")
    : 하나의 클래스(A)가 다른 클래스(B)의 메서드를 (A 클래스의 상태 변화를 위해) 필요로 할 때, A class depend on B class.

    많은 클래스들이 서로 의존적일 수 있는 상황을 최소화하라. 예를 들어, A 클래스가 B 클래스의 존재를 모른다면 B 클래스 변화에 대해 걱정할 필요가 없는 것이다. ( 오류 발생시 전파되어 다른 오류의 원인이 되는 파급 효과를 최소화해야 한다. )
    => 소프트웨어 공학 용어의 관점으로, 결합도를 최소화해야 하기 때문이다.

  • Aggregation("has-a")
    : has-a 관계는 상속을 사용하지 않습니다. has-a 관계는 일반적인 포함 개념의 관계입니다.
    보통 기능, 즉 인터페이스 형태로 사용합니다.

  • Inheritance("is-a")
    : is-a 관계(상속)는 일반적인 개념과 구체적인 개념의 관계입니다. 상속 관계에서 하위 클래스가 상위 클래스에 종속되기 때문에 이질적인 클래스 간에는 상속을 사용하지 않습니다.

Static Methods

  • static method는 static field를 다룰 때 사용한다.
    (일반적인 public field는 static method를 통해 인스턴스 값을 조작할 수 없다.)
  • ex)
harry is an Employee object

public static final int nextId = 1;
public static int getNextId() {
	return nextId;
}

static 으로 만들어진 상수 (ex. public static final int nextId = 1;)에 대해 harry라는 Employee 객체를 사용한 값(harry.getNextId())과 Employee.getNextId() 와 동일하므로 static method 사용할 때는 객체가 아닌 클래스 이름을 통해 사용하는 것을 추천합니다.

profile
back-end developer

0개의 댓글