출처 - Java의 정석 기초편 (남궁 성)
1. 객체지향 언어
- 기존 프로그래밍 언어에 객체지향 규칙을 추가
- 재사용성, 유지보수, 중복된 코드 제거
- 캡슐화, 상속, 추상화, 다형성
2. 클래스(제품 설계도) → 객체(제품)
- 클래스란 객체를 정의해 놓은 것, 객체를 생성하는데 사용
- 객체란 실제로 존재하는 것, 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것
3. 객체
- 속성(변수)과 기능(메서드)의 집합
- 객체 = 클래스의 인스턴스(instance)
- 클래스 생성 → 객체 생성 → 객체 사용
- 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치
클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; // 참조변수 t 선언
t = new Tv(); // 객체 Tv 생성 후 대입연산자(=)에 의해 참조변수 t 와 연결
t.channel = 7; // 변수 사용
t.channelDown(); // 메서드 사용(호출)
class Tv {
// Tv 속성(멤버변수)
String color;
boolean power;
int channel;
// Tv 기능 (메서드)
void power() { power = !=power; }
void channelUp() { ++channel; }
void channelDown() { --chanel; }
}
4. 객체 배열(=참조변수 배열)
Tv[] tvArr = new Tv[3]; // 객체 배열 생성
Tv[] tvArr = { new Tv(), new Tv(), new Tv() }; / 배열 초기화, 객체 수 많을 때는 for문 사용
5. 클래스
- 설계도
- 데이터와 함수의 결합
- 사용자정의 타입
6. 선언 위치에 따른 변수의 종류
- 클래스 변수(cv): 클래스 영역, 클래스가 메모리에 올라갈 때, 공통 속성, 모든 인스턴스가 공통된 저장공간(static 변수) 공유, '클래스이름.클래스변수'
- 인스턴스 변수(iv): 클래스 영역, 인스턴스(객체)가 생성되었을 때, 개별 속성
- 지역 변수(lv): 메서드 영역, 생성자, 초기화 블럭 내부, 메서드 종료시 소멸
'Java' 카테고리의 다른 글
상속, 포함, Object클래스, 오버라이딩 (0) | 2022.09.28 |
---|---|
메서드, return문, 호출스택, 매개변수, 생성자 (0) | 2022.09.25 |
배열(Array) (2) | 2022.09.21 |
반복문(for, while) (0) | 2022.09.19 |
조건문(if, switch) (0) | 2022.09.16 |