본문 바로가기

자바의 정석 정리

자바의 정석 - 6.1 객체지향언어

6.1.1 객체지향언어

  • '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건은 사물간의 상호작용이다' 관점으로 탄생
  • 코드 간에 서로 관계를 맺어, 유기적인 프로그램을 구성

6.1.2 장점

  1. 코드의 재사용성이 높다.
    • 기존 코드를 이용하여 새로운 코드 작성 가능
  2. 코드의 관리가 용의하다.
    • 코드간의 유기적 관계로 적은 노력으로 쉽게 코드를 작성할 수 있다.
  3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
    • 제어자와 메서드를 통해 데이터를 보호하고 코드의 중복을 제거하여 오류 방지

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 데이터 저장형태의 발전

  1. 변수
    • 하나의 데이터를 저장할 수 있는 공간
  2. 배열
    • 같은 종류의 여러 데잍를 하나의 집합으로 정의할 수 있는 공간
  3. 구조체
    • 서로 관련돈 여러 데이터를 종류에 관계없이 하나의 집합으로 정의할 수 있는 공간
  4. 클래스
    • 데이터와 함수의 결합(구조체 + 함수)

'자바의 정석 정리' 카테고리의 다른 글

자바의 정석 - 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