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 |