본문 바로가기

it관련

자바에서 말하는 객체지향에서의 객체뜻

반응형



객체 지향이라기 보다 목적 지향언어 라고 생각한다 라고 말씀 드렸고

그 이유는,

자바는 빠른 결과값을 추구하고 가벼운 프로그래밍화를 추구하는 의미에서

같은 성격의 기능이나 동작을 모듈화 하기 때문이라고 말씀 드린바 있습니다.

여기서 분명 짚고 넘어가야 할께 절차지향언어에 비해서다! 라는 거겠죠.


그럼 총정리를 하자면 다음과 같습니다.


1. 객체지향의 뜻은 "모듈화"를 의미한다

1.1. 자바에서 모듈화란 비슷한 각 기능이나 동작을 

      하나의 메소드나 클래스로 정의하는 것을 말하며 

      이 각각의 객체들은 반복 사용하거나 skip을 한다.

1.1.1 자바에서 말하는 객체는 메소드나 클래스로 말할 수 있는데

       그냥 비슷한거 묶음 이라고 생각하면 된다.

2. 메인 클래스 묶음은 각 메소드나 기타 클래스 묶음들을 취합하는 형태로 보통 만들어진다.

3. 정의된 묶음들(각메소드나 클래스) 들은 호출이 되면 기능이 사용 되어지고 skip도 가능하다.

4. 한개의 묶음(메소드나 클래스)은 여러번 반복 호출 및 사용이 가능하다.

5. 자바 소스코드 안에서 각 묶음은 순서 상관없이 언제든 호출 및 사용이 가능하다.


장점

1. 중복코드 배제 

    (변수사용, 객체들 호출하여 재사용 가능)

1.1. 길어지는 코드 예방

      (중복코드를 배제한 만큼 전체 소스는 줄어듬)

2. 불필요한 실행은 SKIP 가능 

    (조건에 맞지 아니하면 실행하지 않고 넘어감)

3. 속도가 빠름 

    (소스가 상대적으로 적어 검색이 빠르고 skip이 가능하여 필요한 기능만 호출할 수 있음)


-------------------------------------------------------------

간단한 예제

class Seller

{

int numOfA;

int mMoney;

final int A_PRICE;

public Seller(int money, int aNum, int price)

{

mMoney=money;

numOfA=aNum;

A_PRICE=price;

}

public int saleA(int money)

{

int num=money/A_PRICE;

numOfA-=num;

mMoney+=money;

return num;

}

public void showSaleResult()

{

System.out.println("남은 A: " + numOfA);

System.out.println("판매 수익: " + mMoney);

}


class Buyer

{

int mMoney;

int numOfA;

public Buyer(int money)

{

mMoney=money;

numOfA=0;

}

public void buyA(Seller seller, int money)

{

numOfA+=seller.saleA(money);

mMoney-=money;

}

public void showBuyResult()

{

System.out.println("현재 잔액: " + mMoney);

System.out.println("A 개수: " + numOfA);

}

}


class FruitSalesMain

{

public static void main(String[] args)

{

Seller seller1 = new Seller(0, 30, 1500);

Seller seller2 = new Seller(0, 20, 1000);

Buyer buyer = new Buyer(10000);

buyer.buyA(seller1, 4500);

buyer.buyA(seller2, 2000);

System.out.println("A 판매자1의 현재 상황");

seller1.showSaleResult();

System.out.println("A 판매자2의 현재 상황");

seller2.showSaleResult();

System.out.println("A 구매자의 현재 상황");

buyer.showBuyResult();

}

}


변수를 몇개 지워서 돌아가는지는 모르겠습니다. ^^;;;


일단 구조는 클래스 3개 입니다.

클래스를 객체로 볼때 3개가 있다 할 수 있는게 되는거죠

그 속엔 생성자나 메소드가 몇개씩 들어 있습니다.

다~ 그냥 각자 객체라고 보시면 됩니다.

그냥 다 객체 객체 객체


이것들을 변수명을 가지고 추적 및 검색을 통해 실행 시키는 구조 

이것이 바로 자바가 말하는 객체지향이다. 라고 말할 수 있을 것입니다.


또한 말씀 드렸듯이 취합하는 형태를 말씀 드렸는데 위 코드를 보시면

1번 클래스는 판매자의 기능을 정의하고 있고 

2번 클래스는 구매자의 기능을 정의하고 있습니다.

3번 클래스가 바로 메인메소드를 담고 있으며

입력값과 판매자 구매자의 기능을 수행하고 받은 값을 받아 모니터에 출력하게 되어 있습니다. 

자바는 기본적으로 이러한 형태라고 보시면 되겠습니다.

좀더 쉽게는 보고 계시는 소스코드 자체가 전부 객체다~ 라고 

생각하면 가장 쉬울 거라고 생각 됩니다.

반응형

'it관련' 카테고리의 다른 글

CPU 스케줄링  (0) 2017.05.09
동기화란?  (0) 2017.05.08
컴퓨터 그래픽카드에 대한 오해와 답변  (0) 2017.05.08
Picasa 웹 앨범 데이터 삭제하기  (0) 2017.05.07
프로그래밍의 기본중 기본 C언어  (0) 2017.05.07