본문 바로가기
진행중인 학습/자바의 정석_학습

자바의 정석_기초편 CHAPTER 6 中 26 ~ 32 (230821)

by 트레비봄 2023. 8. 21.
728x90
자바의 정석_기초편 CHAPTER 6 中 26 ~ 32 (230821)

6-26. static 메서드와 인스턴스 메서드.

메서드 앞에 static이 붙어 있으면 클래스메서드이고 붙어 있지 않으면 인스턴스 메서드.

클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)' 와 같은 식으로 호출이 가능. 반면 인스턴스 메서드는 반드시 객체를 생성해야만 호출할 수 있다.

참고)

클래스 영역에 선언된 변수를 멤버변수.

이 중에 static이 붙은 것은 클래스변수(static변수), static이 붙지 않은 것은 인스턴스변수.

멤버변수는 인스턴스변수와 static 변수를 모두 통칭하는 말.

 

6-28. static을 언제 붙여야 하나

1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.

2. 클래스 변수(static 변수) 는 인스턴스를 생성하지 않아도 사용할 수 있다.

3. 클래스 메서드 (static메서드) 는 인스턴스 변수를 사용할 수 없다.

4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.

- 클래스의 멤버변수 중 모든 인스턴스에 공통된 값을 유지해야하는 것이 있는지 살펴보고 있으면, static을 붙여준다.

- 작성한 메서드 중에서 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 메서드에 static 을 붙일 것을 고려한다.

 

6-29. 메서드 간의 호출과 참조.

같은 클래스에 속한 멤버들 간에는 별도의 인스턴스를 생성하지 않고도 서로 참조, 호출이 가능하지만 클래스 멤버가 인스턴스 멤버를 참조 또는 호출하고자 하는 경우에는 인스턴스를 생성해야 한다.

 

6-30. 오버로딩(overloading)

오버로딩 성립 조건.

1. 메서드 이름이 같아야 한다.

2. 매개변수의 개수 또는 타입이 달라야 한다.

3. 반환 타입은 관계없다.

 

6-32. 생성자(constructor)

생성자인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 이다. 따라서 인스턴스변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 하는 작업을 위해서 사용된다.

참고) 인스턴스 초기화 : 인스턴스 변수들을 초기화.

 

생성자의 조건.

1. 생성자의 이름은 클래스의 이름과 같아야 한다.

2. 생성자는 리턴 값이 없다.

728x90