Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

붓, 그리다

객체지향언어 본문

JAVA/Basic

객체지향언어

붓그린 2017. 6. 16. 17:08
1. 객체지향언어
- 기존의 프로그램 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태
- 규칙들을 이용해서 고드 간 서로 관계를 맺어 줌으로서 보다 유기적으로 프로그램을 구성하는 것

주요 특징
1) 코드의 재사용이 높다
 - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성 가능

2) 코드관리가 용이하다.
- 코드간의 고나계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.

3) 신뢰성이 높은 프로그래밍을 가능하게 한다.
- 제어자와 매소드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방치

-> 코드의 재사용성이 높도 유지 보수가 용이하다.


2.클래스와 객체
- 객체를 정의해 놓은 것
- 객체의 설계도 또는 틀 (이상 정의)
- 클래스는 객체를 생성하는 데 사용한다. (용도)

1) 객체와 인스턴스
- 클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다.
- 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

2) 객채의 구성요소(속성과 기능)
- 객체는 속성과 기능 두 종류의 구성요소로 이루어짐
- 객체는 다수의 속성과 다수의 기능을 갖는다.
- 즉, 객체는 속성과 기능의 집합

3) 속성(property)=멤버변수(member variable), 특성(attribute)


2) 기능(function)=매소드(method), 함수(fuction), 행위(behavior)



3.클래스의 또 다른 정의 : 프로그래밍의 관점
- 객체지향이론의 관점 :  클래스는 '객체를 생성하기 위한 틀'이며 클래스는 속성과 기능으로 정의되어 있다. 


1) 클래스는 데이터와 함수의 결합


2) 사용자 정의 타입(user-defined type)
- 프로그래밍 언어에서 제공하는 자료형 외에 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타임을 새로 추가하는 것
- 클래스가 곧 사용자 정의 타입
 - 기본형의 개수는 8개(기본자료형 : int, byte, short, long, float, double, char, boolean?)



4.클래스변수와 인스턴스변수(=멤버변수)
1) 클래스 변수 : 모든 인스턴스가 공통적으로 같은 값을 유지하는 것(고정된 값?)
- 변수 앞에 static을 붙인다?
- 클래스 변수는 객체생성 없이 '클래스이름.클래스변수'로 사용 가능
- 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 공통된 값을 갖는다.
     -> 즉, 하나의 인스턴스에서 클래스변수를 변경하면 다른 인스턴스의 값도 변경이 된다.

2) 인스턴스 변수 : 자신만의 속성을 유지하고 있어야 하는 것
- 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있다.



5.매서드 METHOD
- 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것
- 함수와 유사
- 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환
- 매서드가 넣을 값(입력)과 반환하는 결과(출력)만 알면 된다.
- sprt(), println(), random()과 같은 매서드들 역시 내부적으로 어떻게 동작하는지 몰라도 사용하는데 아무런 어려움이 없다.

5.1.메서드를 사용하는 이유

1) 높은 재 사용성(=>객체지향언어 특징과 동일)
- 한번 만들어 놓은 메서드는 몇번이고 호출할 수 있으며 다른 프로그램에서 사용이 가능하다.

2) 중복된 코드의 제거
- 같은 내용의 문장들의 여러 곳에서 반복해서 나타남
     -> 반복되는 문장들을 묶어서 하나의 메서드로 작성
- 반복되는 문장들 대신 메서드를 호출하여 한 문장으로 대체 가능
     -> 전체 소스 코드의 길이도 짧아지고, 변경사항이 발생했을 때 수정해야 할 코드의 양이 줄어든다.
=> 오루가 발생할 가능성이 줄어든다.

3) 프로그램의 구조화 
- 몇 천, 몇 만줄의 큰 규모의 프로그램에서는 문장들을 작업단위로 나눠서 여러개의 메서드에 담아 프로그램의 구조를 단순화시키는 것이 필수적
- 프로그램의 전체 흐름이 한눈에 들어올 정도로 단순하게 구조화하는 것이 좋다
- 나중에 프로그램에 문제가 발생해도 해당부분을 쉽게 찾아서 해결할 수 있다.


5.2.메서드의 선언과 구현
- 메서드는 크게 선언부(header, 머리)dhk 구현부(body, 몸통)으로 이루어져 있다.
- 메서드를 정의 -> 선언부와 구현부를 작성하는 것을 뜻함

[접근지정자] 반환타임(void) 매서드이름(타입 변수명, 타입 변수명,,,) // 선언부
{
     메서드 호출시 수행될 코드 // 구현부
}

1) 메서드 선언부
-  매서드의 이름, 매개변수 선언, 반환타입으로 구성
- 매서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고 작업의 결과로 어떤 타입을 반호나하는지에 대한 정보를 제공

2) 매개변수 선언
- 매서드가 작업을 수행하는데 필요한 값(입력)을 제공받기 위한 것
- 필요한 값의 개수만큼 변수를 선언하며 각 변수간의 구분은 쉼표,를 사용한다.
- 일반적인 변수와 다른 점은 두 변순의 타입이 같아서 변수의 타입을 생략할 수 없다.

3) 매서드의 이름
- 변수의 명명규칠대고 작성
- 이름만으로도 매서드의 기능을 쉽게 알 수 있도록 함축적이면서도 의미있는 이름을 생성

4) 반환타입
- 매서드의 작업수행 결과(출력)인 반환값(return value)의 타입을 적는다.
- 반환값이 없는 경우 반환타입으로 void를 적어야 한다.

5) 매서의 구현부
- 매서드 선언부 다음에 도는 {}
- 매서드를 호출했을 때 수행될 문장들을 넣는다.

6) return문
- 반환타입이 void가 아닌 경우, 구현부 {} 안에 반드시 'return 반환값;'이 포함되어야 한다.
- 매서드의 선언부의 반환타입과 일치하거나 자동형변환이 가능해야 한다.

7) 지역변수
- 매서드 내에 선언된 변수들은 그 매서드 내에서만 사용할 수 있다.
- 서로 다른 매서드라면 같은 이름의 변수를 선언해도 된다.




5.3.매서드의 호출
- 매서드를 정의했어도 호출되지 않으면 아무 일도 일어나지 않는다.
- 매서드를 호출해야만 구현부의 문장들이 수행된다.

매서드이름(값1, 값2,,,,); // 매서드를 호출하는 방법












'JAVA > Basic' 카테고리의 다른 글

객체지향 프로그래밍  (0) 2017.06.16
제어문 2  (0) 2017.06.16
다중IF문, While문, For문  (0) 2017.06.16
이클립스 설치 및 환경설정  (0) 2017.06.16
자바의 특징, 변수  (0) 2017.06.16
Comments