원래 게시글

네이버에 등록된 글을 tistory로 옮겨볼게요!


 

안녕하세용

오늘은 객체지향에 대해서 정리해보려고 합니다

객체지향 언어를 사용하는 이유는

 

1. 코드의 재사용성이 높다.

2. 코드의 관리가 용이하다.

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

가능하게 한다.

 

이 3가지 이유 때문인 걸 알고 있어야 합니다.

그 전까지는 우리가

절차적 언어를 사용하여 프로그래밍을 했다면, 

조립을 하듯, 필요한 순간에

필요한 부품을 사용하여 만드는 것 처럼

프로그래밍을 하는 게 

객체지향 프로그래밍이라고 생각하면 좋을 것 같아요.

 


<클래스>

- 객체를 정의해 놓은 것

- 객체의 설계도, 또는 틀

ex) 붕어빵 기계, TV 설계도

-> 객체를 생성하는 데 사용

<객체 ; 인스턴스>

클래스에 정의된 내용대로 메모리에 생성된 것

ex) 붕어빵, TV

[객체의 구성 요소]

- 속성(멤버 변수 / 붕어빵 길이, 크기)

- 기능(메소드 / 붕어빵 뒤집기, 붕어빵 반죽 짜기)

두 종류의 구성 요소로 이루어져 있습니다.

이 두 가지를 합쳐서 멤버(속성/기능)라고 합니다.

인스턴스화

클래스 ------------> 객체(인스턴스)

; (붕어빵)객체는 (붕어빵 기계)클래스의 인스턴스

<인스턴스의 생성 / 사용>

클래스명 (참조)변수명 = new 클래스명();

 

 

 

 

 

<변수>

 

선언 위치에 따른 변수 종류

 

[인스턴스 변수]

- 독립적인 저장 공간을 가짐

- 서로 다른 값 가질 수 있음

[클래스 변수]

- 변수 앞에 static 붙임

- 공통된 저장 공간을 공유

- 모든 인스턴스들이 공통적인 값을 유지해야 하는 경우 사용(붕어빵 사이즈)

[지역 변수]

- 메소드 내에서만 사용 가능(임시)

<메소드 선언>

반환타입   메서드이름    ( 매개변수(입력) )  {

(지역변수)

return   반환타입 ;

}

// 반환타입 없는 것 = void – return;

[인스턴스 메소드]

- 객체를 생성해야만 호출 가능

[클래스 메소드]

- 메소드 앞에 static

- 객체를 생성하지 않고

" 클래스이름.메소드이름(매개변수) "로 호출 가능

- 인스턴스 변수를 사용하기 위해서 객체 생성 필요

<오버로딩>

- 한 클래스 내에 같은 이름의 메소드 여러개

- 메소드 이름이 같아야 함

- 매개변수의 개수 도는 타입이 달라야 함

ex)

붕어빵(더큰, 피자){

}

붕어빵(팥){

}

<생성자>

- 인스턴스 초기화 메소드

+ 인스턴스 초기화는 인스턴스 변수들을 초기화하는 과정

- 클래스 이름과 같아야 함

- 리턴 값이 없음

- 객체 생성 할 때, new 뒤에 오는

"클래스이름()"이 생성자

+

매개변수가 없는 생성자는 기본(default) 생성자

: 생성하지 않아도 자동으로 생김

만일, 생성자에서 다른 생성자를 호출 하려면

- 첫째 줄에 this() 혹은this(매개변수)

<변수 초기화>

 

클래스가 무조건 인스턴스보다 먼저 초기화 진행

static {

//클래스 초기화 블록

}

{

//인스턴스 초기화 블록

}

 


예시

(제가 그냥 아무 내용 없이 한거니까 모양만 보세요,,)

main
 

class

+ Recent posts