6.1.1 객체지향언어
- '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건은 사물간의 상호작용이다' 관점으로 탄생
- 코드 간에 서로 관계를 맺어, 유기적인 프로그램을 구성
6.1.2 장점
- 코드의 재사용성이 높다.
- 기존 코드를 이용하여 새로운 코드 작성 가능
- 코드의 관리가 용의하다.
- 코드간의 유기적 관계로 적은 노력으로 쉽게 코드를 작성할 수 있다.
- 신뢰성이 높은 프로그래밍을 가능하게 한다.
- 제어자와 메서드를 통해 데이터를 보호하고 코드의 중복을 제거하여 오류 방지
6.1.3 클래스와 객체
- 클래스
- 클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.
- 클래스의 용도 : 클래스는 객체를 생성하는데 사용된다.
- 객체
- 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념
- 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
- 💡 객체를 사용한다는 것은 객체가 가지고 있는 속성과 기능을 사용한다는 뜻
6.1.4 객체와 인스턴스
- 객체 : 모든 인스턴스를 대표하는 포괄적 의미
- 인스턴스 : 어떤 클래스로 부터 만들어진 것인지 강조하는 보다 구체적 의미. 클래스로 부터 만들어진 객체
6.1.5 객체의 구성요소
- 속성(property)
- 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
- 기능(function)
- 메서드(method), 함수(function), 행위(behavior)
6.1.6 인스턴스의 생성과 활용
- 참조변수 선언
- 객체 생성후, 해당 객체의 주소를 참조 변수에 저장
클래스명 변수명; //참조변수 선언
변수명 = new 클래스명(); //객체 생성후, 참조변수에 객체 주소 저장
1. Tv t;
메모리에 참조변수 t를 위한 공간 마련. 인스턴스가 생성되지 않았으므로 참조 변수로 아무것도 할 수 없다,
2. t = new Tv();
new 연산자를 통해 인스턴스가 빈 메모리 공간에 생성. Tv클래스 내부에 있는 멤버들은 기본값으로 초기화.
대입 연산자를 통해 t라는 참조변수에 방금 생성된 인스턴스의 주소 저장
3. t.channel = 7
참조변수 t에 저장된 인스턴스의 멤버변수 channel에 7 저장
Tv t1 = new Tv();
Tv t2 = new Tv();
t2 = t1
/*
t2에 t1의 주소를 대입했으므로 t2는 t1인스턴스를 가리키게 된다.
*/
6.1.7 객체 배열
- 각 배열 안에 객체의 '주소'가 저장된다.
Tv[] tvArr = new Tv[3];
Tv[] tvArr = new Tv[3];
for(int i=0; i<tvArr.length; i++){
tvArr[i] = new Tv();
}
6.1.8 클래스의 또다른 정의
- 클래스는 속성(멤버 변수)과 기능(메서드)으로 정의되어있다.
- 클래스는 사용자 정의 타입이다.(새로운 타입인 객체를 정의할 수 있다.)
6.1.9 데이터 저장형태의 발전
- 변수
- 하나의 데이터를 저장할 수 있는 공간
- 배열
- 같은 종류의 여러 데잍를 하나의 집합으로 정의할 수 있는 공간
- 구조체
- 서로 관련돈 여러 데이터를 종류에 관계없이 하나의 집합으로 정의할 수 있는 공간
- 클래스
- 데이터와 함수의 결합(구조체 + 함수)
'자바의 정석 정리' 카테고리의 다른 글
자바의 정석 - 6.3 메서드 (0) | 2022.06.10 |
---|---|
자바의 정석 - 6.2 변수 (0) | 2022.06.10 |
자바의 정석 - 5.3 가변 배열 (0) | 2022.06.07 |
자바의 정석 - 5.2 다차원 배열 (0) | 2022.06.07 |
자바의 정석 - 5.1 배열 (0) | 2022.06.07 |