Back-end/JAVA,Spring

객체지향 Object-oriented / 힙스택/ 메서드

cheersHena 2018. 6. 2. 21:13
반응형

객체지향 Object-oriented

현실세계를 프로그래밍화 하기위해 나온 개념.

실제세계는 사물(객체)로 이뤄서 있으며 발생하는 모든 사건들은 사물간의 상호작용이다.

e.g)사람이 휴대폰 사용시 두 사물(사람, 휴대폰)간의 상호작용. 

객체지향언어

: 기존프로그래밍 언어에 새로운 규칙 추가한 발전된 형태의것. 

주요특징

1.코드 재사용성 높다

2.코드 관리 용이

3.신뢰성이 높은 프로그래밍 가능.


클래스 Class

: 객체를 정의해 놓은 것. 즉 클래스  = 객체라고 생각할수 있음.

객체: 생성 하는것. 생성 위해서는 클래스 필요 

e.g. 티비설계도(클래스)는 단지 제품(객체)만드는데만 사용됨.

클래스- 설계도 ,메뉴얼, 붕어빵 틀... / 객체- 제품, 붕어빵 ..

설계도 통해 티비 만들어져야 사용가능. 

프로그래밍에서는 먼저 클래스 작성한 다음, 그 클래스로부터 객체 생성하여 사용. 

하나의 설계도(클래스)만 잘 만들어놓으면 제품(객체)만드는 일이 쉬워짐. 

인스턴스 instance. = 객체.

인스턴스화:  int[] arr = new int []; // new를 하면 객체생성됨.

어떤클래스로부터 만들어진 객체를 그 클래스의 인스턴스.

변수명은 객체가 아니다. 인스턴스를 바라보고 있는 개념.

객체의 구성요소

1.속성  2.기능.

 (객체 = 속성과 기능을 가진 모든 것)

객체는 속성과 기능의 집합. 그 속상과 기능을 그객체의 멤버라고 함.

객체는 참조변수 통해서만 다룰수 있고 참조변수 타입은 객체 타입과 일치 

속성property = 변수member= variable

특성 attribute =필드field =상태state

기능 function = 메서드method=함수 .. 

기능은 속성을 변화시키고 속성은 변할수 있음.

e.g.) 자동차 객체 속성/기능

속성: 색상, 너비, 높이 , 길이, 속도.. (일반적으로 명사씀)

기능: 시동 on/off ,기어 up/down ,go/stop ... (동사씀)


Tv t; //객체선언

t = new Tv(); //객체 생성

객체는 선언만해서는 사용할수 없다 예) 메뉴얼만 가지고는 사용 불가

객체 사용 위해서는 생성(new)을 해야함. = 메뉴얼 있어야 제품 제대로 사용할 수 있음.


힙heap, 스택stack

heap: 객체 생성되는 공간. (new)

stack: 메서드 생성되는 공간.


매개변수 

기본형:값을 복사 

참조형: 주소복사. (new쓰면 모두 참조형)

객체 사용시 매개변수를 전달한다.  


변수 종류      선언위치 생성시기
클래스 변수 class  클래스영역
 클래스가 메모리 올라갈때.
(객체 생성없이 사용가능)
인스턴스 변수 instance      클래스 영역 객체생성시. new
지역변수 local  메서드,생성자, 초기화블럭 내부.. 변수 선언문 수행될때. 


메서드 method 선언부, 구현부로 이루어짐.

선언부의 구조: int 반환타입 add 메서드이름 (int x, int y) 매개변수 선언.

구현부의 구조 : { int result = x+y; //호출시 수행할 행동

                          return result; }   //결과 반환 

 - 반환타입: 결과 즉 반환값의 타입. 없는경우 void.

 - return: 반환타입과 일치해야함 .


메서드 호출 예시.

e.g)  int result = add (3,5); //add라는 메서드 호출

add 메서드: int add (int x, int y) {

                              return x+y; }


반응형