Home » JAVA -5. 객체지향 개념 1

JAVA -5. 객체지향 개념 1

5.1. 객체지향이란?

5.1.1. 객체지향이란?

  • 객체를 중심으로 프로그램이나 시스템을 구성하는 일

5.1.2. 객체지향의 장/단점

  • 장점
    소프트웨어의 재사용률이 높아지고 확장성이 높아짐
    객체를 재사용하여 프로그래밍 할 수 있으므로 신속한 개발이 가능함
    유지보수성이 향상됨
    사용자 타입 중심의 프로그램
  • 단점
    객체를 이용하여 프로그래밍을 쉽게 할 수 있지만 설계가 어려움
    객체의 규모가 크기 때문에 실행속도가 느림

5.2. 클래스와 객체

5.2.1. 클래스(Class)

  • 객체의 상태를 저장하는데 사용될 속성을 정의
  • 객체가 이해할 수 있는 메세지와 메세지에 응답하는 과정을 정의

5.2.2. 객체(Object)

  • 데이터를 가지고 있음
    (데이터는 객체의 상태를 기술하는 정보를 저장)
  • 행위의 집합을 가지고 있음
    (이 행위들은 메세지를 받았을 때 객체가 어떻개 해야하는지 알고 있음)
  • 개체를 구분하는 아이덴티티를 가지고 있음
    (어떠한 객체를 다른 객체와 구분하는 것을 가능케 함)

5.3. 변수와 메소드

5.3.1. 변수

  • 인스턴스 변수(Instance Variable)
    • 클래스 내에서 static으로 선언되지 않은 변수

  • 클래스 변수(Class Variable)
    • 클래스 내에서 static으로 선언되는 변수

  • 지역 변수(Local Variable)
    • 메소드 내에서 선언되는 변수

5.3.2. 메소드(Method)

  • 어떤 작업을 객체에서 하는 일
  • 반복적인 코드를 줄이고 코드의 관리가 용이함
  • 호출 시 파라미터 값을 전달할 수 있으며, 리턴 값을 받을 수 있음
  • 인스턴스 메소드(Instance Method)
    public int getScore() {
    return score;
    }
  • 클래스 메소드(Class Method)
    public static int getS() {
    return s;
    }

5.4. 오버로딩(Overloading)

5.4.1. 메소드 오버로딩(Method Overloading)이란?

  • 하나의 클래스에 같은 이름의 메소드 여러 개를 정의

5.4.2. 오버로딩의 조건

  • 메소드의 이름이 동일
  • 매개변수의 타입 혹은 개수가 다름

5.4.3. 메소드 오버로딩

5.5. 생성자(Constructor)

5.5.1. 생성자(Constructor)란?

  • 인스턴스가 생성된 때마다 호출되는 메소드
  • 인스턴스 생성 시 수행할 작업을 정의
  • 클래스에 하나 이상의 생성자가 있어야 하며, 없을 경우 생략 가능
    (없을 경우 컴파일러가 기본 생성자를 추가함)

5.5.2. 생성자의 조건

  • 클래스 이름과 동일
  • 리턴값이 없으며, 리턴 타입을 정의해 줄 필요가 없음

5.5.3. 생성자

5.5.4. 참조변수 this

  • 자기 자신을 가르키는 참조 변수
  • ‘this()’는 자기 자신의 생성자를 호출