본문 바로가기
Language/Java

[자바 기본 개념] 절차지향 vs 객체지향

by 나비와꽃기린 2016. 6. 22.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

4. 절차 지향 프로그래밍과 객체 지향 프로그래밍

4.1 절차 지향 프로그래밍과 객체 지향 프로그래밍

1. 절차 지향 프로그래밍

-작업 순서를 표현하는 컴퓨터 명령 집합

-함수들의 집합으로 프로그램 작성

2. 객체 지향 프로그래밍

-프로그램을 실제 세상에 가깝게 모델링

-컴퓨터가 수행하는 작업을 객체들간의 상호 작용으로 표현

-클래스 혹은 객체들의 집합으로 프로그램 작성

 

5.객체 지향 언어의 특징

5.1 캡슐화

- 외부에서는 공개된 메소드의 인터페이스만 접근 가능

- 객체 내 데이터에 대한 보안, 보호, 외부 접근 제한 하는 것.

5.2 상속

- 상위 클래스의 특성을 하위 클래스가 물려받는 것

- 자바에는 다중 상속이 없음

- 따라서 인터페이스를 통해 다중 상속과 같은 효과 얻음

 

 

5.3 다형성

- 객체에 따른 다른 동작을 뜻함.

다형성은 오버라이딩과 밀접한 관계가 있음

5.4 클래스 및 객체

-클래스 : 객체의 공통된 특징 기술 ,객체의 특성과 행위 선언

-객체: 클래스의 인스턴스(실체), 객체는 new 키워드를 이용하여 생성

 

5.5 생성자 및 메소드

-생성자 : 클래스의 이름과 동일한 메소드 , 클래스의 객체가 생성될 때만 호출되는

             메소드, 생성자도 오버로딩 가능, 리턴타입 지정할 수 없음, 하나 이상의 선언

à 디폴트 생성자: 클래스에 생성자가 하나도 선언되지 않은 경우 ,

                        컴파일러에 의해 자동으로 생성 ,

          클래스에 생성자가 하나라도 존재하면 자동으로 기본 생성자가

                        생성되지 않음

-메소드함수, 모든 메소드는 반드시 클래스 안에 있어야 함(캡슐화 원칙)

 

5.6오버로딩(Overloading)

-한 클래스 내에서 두 개 이상의 이름이 같은 메소드 작성

-메소드 이름이 동일하여야 함

-인자가 개수 서로 다르거나, 인자 타입이 서로 달라야 함

-이름이 같고 인자의 개수나 타입이 모두 같은데,

 리턴 타입이 다르면 오버로딩이 성립되지 않으며, 컴파일 오류 발생

 

5.7 this

- 자기 자신에 대한 레퍼런스를 뜻함. (현재 객체 자기 자신을 가리킴)

- 객체 자신을 메소드에 전달 또는 반환할 때 사용됨.

5.8 Garbage

-객체 소멸이란? new에 의해 생성된 객체 메모리를 자바 가상 기계에게 되돌려 주는 행위

-자바는 객체 삭제 기능 없음.

자바 가상 기계의 가비지 컬렉터가 자동으로 가비지를 수집하여 반환

-개발자가 System.gc(); 로 강제 가비지를 수행할 수 있기는 함.

 

5.9 접근 지정자

Default

같은 패키지 내에서 접근 가능

Public

패키지 내부, 외부 클래스에서 접근 가능

Private

정의된 클래스 내에서만 접근 가능, 상속 받은 하위 클래스에서도 접근 불가(getter,setter 필요)

Protected

같은 패키지 내에서 접근 가능,

다른 패키지에서 접근은 불가능하나

상속받을 경우 하위클래스에서는 접근 가능

 

5.10 non-static 멤버와 static 멤버

1. non-static 멤버의 특성

-멤버들은 객체마다 독립적으로 별도 존재

-필드와 메소드는 객체 생성 후 비로소 사용 가능

2. static 멤버의 특성

-객체를 생성하지 않고 사용가능

-객체마다 생기는 것이 아님

-클래스당 하나만 생성됨

-클래스 멤버라고도 부름

-static 멤버들은 동일한 클래스의 모든 객체에 의해 공유

 

5.11 final

-상수를 정의할 때 사용

-상수 필드는 한 번 정의되면 값을 변경할 수 없다

ex) public static final double PI=3.141592;