(JAVA) 기본형 & 참조형 매개변수, 인스턴스 멤버와 클래스 멤버

2024. 9. 20. 08:36·JAVA

1. 기본형 & 참조형 매개변수

기본형 매개변수

기본형 매개변수는 변수의 값을 읽기만 할 수 있는 Read Only 속성을 가집니다. 즉, 메서드 내에서 해당 변수를 수정할 수 없고, 외부에 영향을 미치지 않는다는 특징이 있습니다.

  • 특징 : 값 자체를 복사해 전달하기 때문에, 메서드 내에서 수정해도 원본 변수에 영향을 주지 않음.

참조형 매개변수

참조형 매개변수는 변수의 값을 읽고 변경할 수 있는 Read & Write 속성을 가지고 있습니다. 참조형은 메서드 내부에서 변경한 값이 원본 변수에도 영향을 줍니다.

  • 특징 : 객체의 참조를 전달하기 때문에, 메서드 내에서 수정하면 원본 객체도 영향을 받음.

예시

알게된 점

처음에는 기본형과 참조형의 차이가 단순한 개념으로 느껴졌지만, 실제 코딩을 하다 보면 참조형이 객체의 상태를 변경할 수 있다는 점에서 매우 중요한 개념임을 체감했습니다. 특히 복잡한 애플리케이션에서는 참조형 매개변수 사용 시 예상치 못한 버그를 유발할 수 있으니, 이를 명확히 이해하고 사용하는 것이 중요하다고 생각합니다.


2. 인스턴스 멤버와 클래스 멤버

멤버의 정의

  • 멤버란 클래스에서 정의된 필드(Field)와 메서드(Method)를 통칭하는 용어입니다. 멤버는 크게 인스턴스 멤버와 클래스 멤버로 나눌 수 있습니다.

인스턴스 멤버

  • 정의 : 인스턴스 멤버는 객체가 생성될 때 메모리에 로딩되며, 각각의 인스턴스마다 고유의 값을 가질 수 있습니다.
  • 사용방법 : 객체를 생성해야 사용이 가능하며, 각 인스턴스마다 독립적인 상태를 가집니다.

클래스 멤버

  • 정의 : 클래스 로더에 의해 메서드 영역에 로딩되는 고정적인 멤버입니다.
  • 사용방법 : 객체 없이도 사용 가능하며, 클래스 로더가 해당 클래스를 메모리에 로딩할 때 생성됩니다.

예시

public void main(String[] args) {
    Demo.classMethod();  // 클래스 멤버 생성
    Demo varDemo = new Demo();  // 인스턴스 멤버 생성
}

주의 사항

  • 클래스의 생성이 인스턴스의 존재를 보장하지 않습니다. 따라서, 인스턴스 멤버는 클래스 멤버를 사용할 수 있으나, 반대로 클래스 멤버는 인스턴스 멤버를 사용할 수 없습니다. 이 부분은 인스턴스가 없을 경우 오류를 발생시킬 수 있기 때문에 주의해야 합니다.

느낀점

클래스 멤버와 인스턴스 멤버의 차이를 이해하는 것이 객체지향 프로그래밍에서 매우 중요하다고 느꼈습니다. 특히 클래스 멤버는 공유 자원처럼 사용될 수 있어, 설계를 잘못하면 동시성 문제나 예기치 않은 동작을 초래할 수 있다는 점이 까다로웠습니다. 올바르게 사용하려면 객체와 클래스의 생명주기를 잘 이해해야 할 것 같습니다.


3. TIP & 개인적인 생각

TIP

  • final 변수는 수정이 불가능하므로 상수처럼 사용됩니다.
  • 생성자는 객체가 생성될 때 호출되며, 객체의 초기화에 중요한 역할을 합니다.
  • 모든 클래스는 반드시 생성자를 하나 이상 가지고 있어야 합니다.

개인적인 생각

Java에서 인스턴스와 클래스의 개념을 명확히 구분하는 것이 객체지향 프로그래밍의 핵심 중 하나라고 생각합니다. 특히 대형 프로젝트에서는 클래스 멤버와 인스턴스 멤버를 적절히 분리하고 관리하는 것이 유지보수에 큰 차이를 만듭니다. 제가 공부하면서 가장 도움이 된 부분은 객체를 사용하지 않고 클래스 자체에서 사용할 수 있는 메서드를 구분할 수 있게 되었다는 점입니다.

저작자표시 비영리 변경금지 (새창열림)

'JAVA' 카테고리의 다른 글

(JAVA) 추상클래스의 개념 + instanceof 이해하기  (0) 2024.09.20
(JAVA) 접근 제어자와 오버라이드 개념  (0) 2024.09.20
(JAVA) 예외처리 자세히 알아보기 2  (0) 2024.09.19
(JAVA) 객체지향 이해하기  (0) 2024.09.19
(JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기  (0) 2024.09.14
'JAVA' 카테고리의 다른 글
  • (JAVA) 추상클래스의 개념 + instanceof 이해하기
  • (JAVA) 접근 제어자와 오버라이드 개념
  • (JAVA) 예외처리 자세히 알아보기 2
  • (JAVA) 객체지향 이해하기
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 기본형 & 참조형 매개변수, 인스턴스 멤버와 클래스 멤버
상단으로

티스토리툴바