Code States | OOP 기초(2) - 필드와 메서드

yeonk·2022년 5월 23일
1
post-thumbnail

💡 먼저 보면 좋을 자료
Code States | OOP 기초(1) - 클래스와 객체






1. 필드(Field)


클래스에 포함된 변수로 속성을 나타낸다.
인스턴스 변수 & 클래스 변수를 의미



변수의 종류

  • 클래스 변수(cv, class variable)

    • 필드 O

    • static 키워드 O

    • 공통된 저장공간 공유 (모든 인스턴스들이 특정 값을 공유해야하는 경우에 해당 / static 키워드 사용)

    • 인스턴스 생성 없이 사용 가능

  • 인스턴스 변수(iv, instance variable)

    • 필드 O

    • static 키워드 X

    • 힙 메모리의 독립적인 공간에 저장

  • 지역 변수(lv, local variable)

    • 필드 X

    • 메서드 내에 포함된 모든 변수 (cv, iv 제외하고)

    • 스택 메모리에 저장 (메서드 종료 시 소멸)






필드 변수 vs 지역 변수

  • 저장 위치

    • 필드 변수는 힙 메모리 영역

    • 지역 변수는 스택 메모리 영역

  • 초기화

    • 필드 변수: 강제 초기화 진행 → 힙 메모리에는 빈 공간이 저장될 수 없기 때문

    • 지역 변수: 직접 초기화 해줘야 함 (초기화하지 않을 경우 에러 발생)






2. Static 키워드


키워드 멤버에 사용 → 정적 멤버 (static member)

  • static 키워드 사용 시 인스턴스 생성 없이 사용 가능

  • 클래스명.멤버명

  • 정적 메서드의 경우 인스턴스 존재 여부가 불확실하기 때문에 인스턴스 변수 또는 인스턴스 메서드를 사용할 수 없음






3. 메서드(Method)


특정 작업을 수행하는 일련의 명령문들의 집합이며, 기능을 담당한다.

  • 메서드의 구성 요소

    • 시그니처(method signature): 제어자, 반환타입, 메서드명, 매개 변수 등

    • 바디(method body)



  • 메서드 호출

    • 외부: 인스턴스 생성 후 포인트 연산자를 통해 호출

    • 클래스 내부: 객체 생성 없이 호출






4. 메서드 오버로딩(Method Overloading)


하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것

  • 메서드 오버로딩 성립 조건

    • 같은 이름의 메서드명 사용

    • 매개 변수의 개수와 타입을 다르게 정의






5. 참고 자료


필드 (자바)

Java Fields

Java Methods

메소드

0개의 댓글