본문 바로가기

java/객체지향 : java의 정석

[객체지향] 자바의 정석_6

객체 지향 언어

80년대 초 소프트웨어의 위기와 함께 절차적 언어에서 객체지향 언어로 개념이 이동함

코드의 높은 재사용성, 유지 보수의 용이성, 중복 코드의 제거

객체 지향 언어라 하여 특별한 것이 아니며, 프로그래밍 언어의 기본에 몇 가지 개념과 규칙이 추가된 것임

    1. 캡슐화

    2. 상속

    3. 추상화

    4. 다형성(매우 중요)

 

※ 4가지 개념을 철저히 익힌 후, 추상화, 인터페이스 등에 대해 배우고, 암기. Web쪽으로 갈 경우 JSP, Spring. Mobile로 갈 경우 Android를 중심으로 실습 위주의 코딩 경험 연습

클래스와 객체

클래스의 정의 : 객체를 정의한 내용

클래스의 용도 : 객체를 생성하는데 사용

클래스
제품 설계도
객체
제품
객체를 만드는 이유
"사용하려고"(객체의 속성과 기능을)

객체의 구성요소 : 속성과 기능

    tv라는 객체

    속성 : 변수 (ex_크기, 길이, 높이)

    기능 : 매서드(ex_on/off, 채널변경, 음량조정)

객체와 인스턴스

    객체 = 인스턴스 (생물학의 종-객체, 각 개체들-인스턴스)

    인스턴스 = 특정 클래스로부터 생성된 객체

    class -> (인스턴스화) -> instacne (object)

 

하나의 소스파일에는 하나의 클래스만 작성한다

여러 개의 객체가 있을 경우 파일명은 publi class 또는 class들 중 하나와 일치해야 한다

하나의 소스파일에 2개 이상의 public class를 정의할 수 없다

class의 이름은 대소문자를 구별한다. 이를 어길 경우 컴파일 오류가 발생하지는 않지만, main method 실행 시 엉뚱한 결과값을 반환한다.

 

객체의 생성과 사용

Tv t; //참조변수 선언
t = new Tv(); //참조변수를 통해 Tv라는 객체 생성 

// 인스턴스의 변수를 사용하는 방법
t.channel = 7; //인스턴스의 변수 호출(사용)
t.channelDown(); //인스턴스의 매서드 호출(사용)

new 연산자의 대하여 : new 연산자는 주소를 대입하는 것이라 보면 된다.

Tv t1; //0*100의 주소를 갖는 객체 생성
Tv t2; //0*200의 주소를 갖는 객체 생성
t2 = t1;
// t2의 주소 0*200이 사라지고 t1과 t2가 모두 0*100 주소에 있는 값과 mapping 된다.

garbage collector : 코드를 순회하면서 필요 없는 메모리 주소값들을 삭제