1. 특징
- 재사용성
- 유지보수
- 중복제거
2. 클래스와 객체
클래스 : 객체를 정의해 놓은 것, 데이터와 함수의 결합
객체 : 실제로 존재하는 것, 사물 또는 개념, 객체는 서로 독립적임
3. 선언 위치에 따른 변수의 종류
변수의 선언위치가 변수의 종류와 범위를 결정한다.
변수의 종류 | 선언위치 | 생성시기 |
클래스변수 | 클래스영역 | 클래스가 메모리에 올라갈 떄 |
인스턴스변수 | 인스턴스 생성시 | |
지역변수 | 메서드 영역 | 변수 선언문 수행시 |
- 인스턴스 변수(멤버변수)
- 각 인스턴스의 개별적인 저장곤간
- 인스턴스 생성후, 참조변수.인스턴스변수명으로 접근
- 인스턴스를 생성할 때 생성되고, 참조변수가 없을 때 GC에 의해 제거
- 선언시 기본값으로 초기화(인스턴스가 생성될 때)
- 클래스 변수(멤버변수)
- 같은 클래스의 모든 인스턴스들이 공유하는 변수
- 인스턴스 생성없이 클래스이름.클래스변수명으로 접근
- 클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸
- 선언시 기본값으로 초기화(클래스가 처음 로딩될 때 단 한번)
- 지역 변수
- 메서드 내에 선언되며, 메서드 종료와 함께 소멸
- 조건문, 반복문 내에 선언된 지역변수는 블럭을 벗어나면 소멸
- 초기화 필수
기본형 매개변수와 참조형 매개변수
기본형 매개변수 : 변수의 값을 읽기만 할 수 있다.
참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다.
Data d = new Data();
d.x = 10;
change(d.x);
static void change(int x){
x=1000; // 기본형 매개변수(지역변수로 쓰이고 사라진다.)
d.x=100; // 참조형 매개변수
}
4. 클래스 메서드(static 메서드) 와 인스턴스 메서드
- 인스턴스 메서드
- 인스턴스 생성 후, 참조변수.메서드이름()으로 호출
- 인스턴스 변수나 인스턴스 메서드와 관련된 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수 사용가능
- 클래스 메서드
- 객체생성없이 클래스이름.메서드이름()으로 호출
- 메서드 내에서 인스턴스 변수 사용불가
- 메서드 내에서 인스턴스 변수를 사용하지 않으면 static을 붙이는 것을 고려
5. 메서드 오버로딩
하나의 클래스에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩이라고 한다.
조건
- 메서드의 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩 성립이 되지 않는다.
예시
println : 다양하게 오버로딩된 메서드를 제공해, 모든 변수를 출력할 수 있다.
6. 생성자
- 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
- 인스턴스 변수의 초기화 또는 인스턴스 생성 시 수행할 작업에 사용
- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
- 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.
- 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.
- this() 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용
- 다른 생성자 호출은 생성자의 첫 문장에서만 가능하다. (중복방지)
[자바의 정석] 6장
'Java > 개념정리' 카테고리의 다른 글
객체지향개념(3)_제어자, 다형성 (0) | 2020.08.21 |
---|---|
객체지향개념(2)_상속, 포함, 오버라이딩, super (0) | 2020.08.20 |
자바 메인 동작원리(이미지) (0) | 2020.08.06 |
자바 웹의 동작 구조 Dapp(이미지) (0) | 2020.08.05 |
자바 웹의 동작 구조2(이미지) (0) | 2020.08.03 |