객체지향 프로그래밍

이수보🧑🏻‍💻·2021년 11월 24일
0

초급

목록 보기
9/25

현실세계에서도 한 사람, 한 사람이 객체라고 본다면 그 사람들이 모여 세상을 만듭니다.
객체 지향 프로그래밍도 마찬가지이죠 ㅎㅎ

자바의 꽃이라고 말할 수 있는 객체지향

객체지향 프로그래밍(Objects Oriented Programming) 은 프로그램을 설계하는 개념, 방법론을 의미한다.

지향의 뜻은 누구나 아실거고, 객체의 뜻이 애매모호한 사람이 많을 것이다.

객체는 즉, 예시를 들자면 주변에 존재하는 (자동차,옷,물병) 등 실제 세계에 존재하는 모든 것이라고 생각하면 됩니다.

현실에서도 이러한 객체들이 모여 하나의 집이 만들어지고, 자동차가 만들어지고, 세상이 만들어진다.

이 개념을 프로그래밍 세계로 끌고 온 것이다.

왜 끌고 왔을까?

현실에서 자동차가 고장나면 어떻게 하는지 기억이 나나요?
자동차가 고장나면 수리센터에서 부품을 교체합니다.

객체지향 프로그래밍도 마찬가지입니다.
부품들이 모여 하나의 프로그램을 구성하고 이 부품들로 인해 프로그램이 유연해지고, 변경이 용이해지기 때문에 유지보수, 개발이 더욱 간편해져 한눈에 보기 쉬운 코드를 만드는데에 최적이라고 생각됩니다.

즉, 요약하자면 프로그램을 단순히 코드의 연속이 아닌 객체간의 상호작용으로 보고
때문에 코드의 재사용성, 유지보수가 용이해진다.

객체 즉, 부품을 한 번 만들어보자.

일단 변수에 대해 알아보자,
지역변수

	public static void main(String[] args) {
		int local = 10; 
	}
}

일단 main메소드 안에서 선언된 변수는 지역변수이다. 이 변수는 main메소드 안에서만 쓸수 있는 변수이다.

메소드가 무엇이냐?

방금 객체는 부품이라고 했다. 그렇다면 부품 안에는 기능을 담당하는 부분이 있을 것이다.
메소드가 그 기능을 칭한다.

때문에 각 부품(객체)에는 여러 기능(메소드)가 있을 것이다. 하지만 지역 변수는 한 메소드 안에서만 사용될 수 있다.

그래서 여러 메소드 안에서 사용될 수 있는 전역변수를 사용해줘야 한다.

전역변수

public class SampleClass {
	int field;
}

전역변수는 따로 초기화가 필요 없다 때문에 각 초기값이 있는데 크게
String = null
int = 0
boolean = false
등이 존재한다.

위에서 선언한 전역변수는 main메소드 밖에 존재하고 여러 메소드에서 공통으로 사용할 수 있는 변수이다.

변수에 대해 알아보았으니 이제 객체(부품)의 메소드(기능)에 대해 알아보겠다.

class car {
  int speed;
  
	void speedPlus(){
	  speed++;
    	}
}

위에서 car(부품)라는 객체를 만들었고 speedPlus()(기능)라는 메소드를 만들었다.
car는 속도라는 변수를 가지고 speedPlus()는 속도를 올려주는 기능을 담당한다.

자 이렇게 하나의 객체를 만들어 보았다. 정말 쉽죠?ㅎㅎ

자 그럼 저희가 만든 객체(부품)를 사용해 봅시다.

	public class start {
1.  	car c = new car();
	
2.    	c.speedPlus();
        
3.       System.out.print(c.speed);
	}
  1. 객체를 생성해준다. 즉, car클래스를 start 클래스에서 사용할 수 있게 new car() 객체를 생성한 것.

  2. speedPlus() 메소드를 호출한다. 아까 만들었다 싶이 이 메소드의 기능은 speed를 올리는 것

  3. speedPlus() 메소드에서 실행한 결과가 전역변수 speed에 저장되고 speed는 1이 출력

이 처럼 부품(객체) 를 만들어서 그 객체의 기능(메소드)를 사용해 보았다.

물론 이해가 되지 않을 수 있다. 나도 그렇다 지금도 그렇다. 누군가 태클을 건다면 난 그 태클에 대해 반박할 수 없을지도 모른다. 때문에 더 노력하고 있다.
그나마 내가 도움을 줄 수 있는 것은 이해하는 방식이다.
내가 여기서 쭉 객체는(부품) 메소드는(기능)이라고 강조했다 싶이 이렇게 이해하면 좋겠다.

  • 객체는 부품!!!!!
  • 메소드는 기능!!!!!

우리는 부품의 기능을 이용하여 하나의 완성품(프로그램을 만든다!!!!)

0개의 댓글