본문 바로가기

카테고리 없음

객체 지향

객체 : 클래스에서 생성된 데이터 실체를 의미하고 상태와 행위를 같이 가지며 자기 자신을

스스로 책임질 수 있습니다. 또 행위를 구현하기 위해 메시지를 통해 다른 객체와 협력합니다.

 

클래스 : 객체를 정의하기위한 틀 혹은 설계도 입니다. 객체의 동적인 상태와 행위를 정적인 텍스트로

표현하기 위해 사용할 수 있는 도구라고도 할 수 있습니다.

 

객체 지향 :  현실세계에서 개체를 보는 관점과 다른 객체 지향 세계에서의 객체는 상태와 행위를 가지기 때문에 객체와 객체끼리 서로 메세지를 주고 받고 협력할 수 있는 세계입니다. 쉽게 말해서 정적인 텍스트들의 집합이 아니라 서로 메세지를 주고 받는 동적인 텍스트들의 집합이라고 볼 수 있습니다.

 

객체 지향프로그래밍의 장점은 데이터와 코드 재사용이 용이하고 유지보수가 쉽습니다.

코드 재사용이 용이한 이유 : 상속(상위 클래스의 모든걸 하위 클래스가 이어 받는다)을 통해 반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근하여 코드의 재사용이 높습니다.

유지보수가 쉬운 이유 : 캡슐화(서로 연관있는 속성과 기능을 하나로 묶은것)덕분에 프로그램 수정시 주변에 영향이 적습니다.

 

변수 : 변수란 변할 수 있는 숫자를 의미하고 자바에선 데이터를 저장하기 위한 이름이 붙은 메모리 공간이라고 할 수 있습니다.

          프로그램에서 값을 보관하고, 그 값을 읽거나 변경할 수 있는 역할을 합니다.

 

클래스 변수 : 클래스에 속하는 변수로, static 키워드로 선언됩니다. 클래스가 시작할때 생성되고 프로그램이 끝날 때까지 유지 됩니다.

 

인스턴스 변수 : 클래스에 속하지만 static이 없는 변수 입니다. 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸됩니다. 각 개체마다 독립적으로 존재한다는 특징이 있습니다.

 

지역 변수 : 메소드나 블록 안에서 선언되는 변수이고 해당 메소드나 블록에서만 유효합니다. 메소드나 블록이 끝나면 소멸하고 반드시 초기화 후 사용 해야합니다.

 

매개 변수 : 메소드 호출 시 외부에서 값을 받아오기 위한 변수이고 메소드 정의 시 괄호 안에 선언해야 합니다. 메소드가 호출될 때 생명이 시작되고, 메소드가 끝나면 소멸됩니다.