객체지향 - 객체지향 프로그래밍의 4가지 특성

컴공거북이·2024년 9월 2일

즐거운 자바

목록 보기
2/2

<자바 메모리 기본개념>

1) new 연산자를 사용할 때마다 메모리에 인스턴스가 생성합니다.
2) 인스턴스는 더 이상 참조되는 것이 없을 때, 가비지 컬렉션(Garbage Collection)이 됩니다.
3) static한 필드는 클래스가 로딩될 때 딱 한번 메모리에 올라가고 초기화됩니다.
4) 인스턴스 메소드(non-static)는 인스턴스를 생성하고 나서 레퍼런스 변수를 이용해 사용합니다.
5) 클래스 메소드(static)는 클래스명.메소드명()으로 사용가능합니다.
6) 메소드 안에 선언된 변수들은 메소드가 실행될 때 메모리에 생성되었다가, 메소드가 종료될 때 사라집니다.

*참고) 소스코드, 클래스 파일 자체는 정적
1) 동적인 것들은 실행되면서 생성되는 것이다.
2) 클래스 정보 자체는 정적이다.

<객체지향 프로그래밍의 4가지 특성>

<1.추상화>

중요한 것은 남기고, 불필요한 것은 제거한다.
ex)
신발 고객인 경우 : 신발 사이즈
찜질방 손님인 경우: 성별, 옷 사이즈

<2.캡슐화(encapsulation)>

관련된 것들을 잘 모아서 가지고 있는 것

<좋은 객체>

좋은 객체는 응집도는 높고 결합도는 낮다.
ex)
세탁기는 세탁과 관련된 기능을 잘 가지고 있어야 함(높은 응집도)
컴퓨터를 샀는 데 부가적인 장비가 있어야만 컴퓨터가 동작한다.(높은 결합도)

<3.다형성>

어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질
ex)
남자의 역할이 아내에게는 남편, 자식에게는 아버지, 부모님에게는 자식, 회사에서는 회사원, 동아리에서 총무 등 상황과 환경에 따라서 달라지는 것과 비슷

<다형성 - 오버로딩(Overloading)>

1) 메소드의 이름은 같고 매개변수의 개수나 타입이 다른 함수를 정의하는 것을 의미한다.
2) 리턴값만을 다르게 갖는 오버로딩은 작성할 수 없다.

<4. 상속>

기존 클래스를 재사용하여 새로운 클래스를 작성하는 것

  • 상속은 반드시 써야할 때만 쓰고 되도록 안 쓰는 것이 좋음

<상속 선언 관례>

[접근제한자][abstract | final] class 클래스명 extends 부모클래스명{
.....
}
여기서 []안의 내용은 없어도 됨
아무것도 상속받지 않으면 자동으로 java.lang.Object를 상속받는다.

<상속 관련 정보>

1) 메소드가 오버라이딩(overriding) 되면 무조건 자식의 메소드가 실행된다.

  • 오버라이딩? 상위 클래스의 메소드를 자식 클래스에서 재정의하는 것

2) 부모 타입으로 자손 타입을 참조할 수 있다.
ex) Car car = new Bus();
3) 정보은닉은 객체지향의 중요한 기법이다.
ex) 중요한 필드는 은닉하고, 필드는 메소드를 통해서만 접근하도록 한다.

profile
잘못된 정보가 있을 경우 언제든 댓글로 남겨주세요 :) 감사합니다!!

0개의 댓글