-개요

여러 부품을 모아 하나의 제품을 만들듯이 소프트웨어를 개발할 때, 여러 객체(부품)를 모아서 하나의 완성된 프로그램을 만드는 것을 객체지향 프로그래밍이라고 하며 영어로는 OOP(Object Oriented Programming)라고 한다.

  • 객체
    • 물리적으로 존재하거나 추상적으로 생각할 수 있는것들 중에서 자신의 속성을 가지며 식별 가능한 것을 의미
    • 필드와 메소드로 구성된다
    • 필드
      • 값, 변수라고 볼 수 있다
    • 메서드
      • 객체의 동작을 나타낸다
    • 예를 들어 사람이라는 객체가 있다고 가정한다
      • 이 사람은 이름, 나이, 키, 몸무게, 성별 등의 여러 가지 속성을 가지고 있는데 이를 필드라고 한다
      • 이 사람이 먹고, 자고, 일어나고, 움직이는 등 수없이 많은 행위들을 하는데 이를 메서드라고 한다.
      • 이처럼 어떠한 사물, 사람 등을 객체로 생각해볼 수 있고 그 객체가 가지고 있는 속성 값들을 필드, 그 객체가 동작하는 모든 행위 들을 메서드라고 한다
  • 객체의 상호작용
    • 객체는 객체끼리 상호작용을 한다
    • 사람이 리모컨으로 tv를 조작하는 것과 같은 개념이다
      • 사람이라는 객체가 리모컨이라는 객체의 버튼을 누르면 리모컨은 tv로 전원을 키라는 동작을 전달한다.
      • tv는 리모컨이 전달한 전원을 켜라 라는 행위를 받아 전원을 켜게 되는데
      • 리모컨의 버튼이 눌러졌을 때 하는 행동, tv가 리모컨의 명령을 받았을 때 하는 행동들을 메서드 호출이라고 하며 이러한 행동들과 연관관계를 객체의 상호작용이라고 한다
  • 객체와 클래스
    • 객체
      • 앞서 말한 현실의 모든 사람, 사물 그리고 가상의 어떠한 무언가도 객체가 될 수 있다
    • 클래스
      • 위의 객체를 만들기 위해서 설계도가 필요하다
      • 물건으로 예를 들면 자동차의 경우 자동차의 설계도가 필요하다.
      • 바퀴의 사이즈, 핸들, 각종 페달, 엔진 등 여러 가지 물건(필드)이 필요하고 자동차에서 어떠한 행위가 이루어졌을 때, 액셀을 밟는다던가 시동을 켠다거나 하는 행위(메서드)를 작성한 설계도가 필요할 것이다.
      • 이러한 부분들을 클래스에 작성을 해주는 것이다.
        • 자동차 클래스
          • 필드 : 바퀴, 색상, 기어, 엔진, 페달....
          • 메서드 : 시동이 걸린다. 와이퍼가 움직인다. 앞으로 간다. 멈춘다.
          • 이렇게 클래스(설계도)를 작성할 수 있다
      • 생성
        • 클래스 파일 생성 시 주의사항
          • 이름의 첫 글자는 꼭 대문자로 작성한다
          • 첫 글자에는 숫자가 올 수 없다
          • $, _ 외에 특수문자는 사용이 불가능하다
          • 자바 예약어는 사용이 불가능하다
          • 한글 사용이 가능하지만 일반적으로 사용되지 않고, 사용 시에 인코딩 오류가 발생할 수도 있다
          • 기본적으로 변수의 선언 와 동일하다고 생각하면 된다
        • 클래스 사용법
        • public class 클래스이름 {
          	
          }
        • 위와 같이 생성한 클래스 파일에 작성을 해주면 된다
        • 클래스 이름은 파일명과 같아야 한다.
        • 앞에 붙은 public의 경우 접근제어자인데 후에 기술할 예정이다
        • 일반적으로 한 개의 클래스파일에는 한개의 클래스만 정의를 하지만 2개 이상 정의도 가능하다.
        • 클래스 내부에는 필드, 메서드, 생성자가 사용될 수 있다.
        • public class Car {
          	//필드 Feild
              String color;
             	int carNumber;
              // etc......
              
              //메소드 Method
              public String moveFront() {
              	return "전진 합니다.";
              }
              
              //생성자 Constructor
              Car() {
              	String color = white;
              }
          }
        • 위와 같은 구조인데 안의 세부적인 내용과 객체, 클래스 등 앞서 기술한 내용들을 다음 포스팅에서 차근차근 다뤄보겠다.

+ Recent posts