ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA의 클래스 클래스와 객체, 인스턴스, 구성요소
    자바 2016. 8. 26. 01:46

    객체지향이론의 기본 개념 "실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다."


    주요특징

    1. 코드의 재사용성이 높다.

    2. 고드의 관리가 용이하다.

    3. 신뢰성이 높은 프로그래밍을 가능하게 한다.


    클래스 정의 : 클래스란 객체를 정의해 놓은 것이다.

    클래스 용도 : 객체를 생성하는데 사용된다.


    객체 정의 : 실제로 존재하는것, 사물 또는 개념

    객체 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름


    클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화instantiate 라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스instance 라고 한다.


    1. 객체의 구성요소 속성과 기능


    속성(property) - 멤버변수, attribute, 필드, state

    기능(fuction) - 메서드, 함수, behavior


    예시 - 차Car 클래스


    Car

    속성 - 번호판, 기종, 보험, 기름양, 기어, 속도, 시동

    기능 - 운전하기, 시동걸기, 기름채우기, 기어변경하기


    클래스 설계에 있어 중요한 부분은 추상화를 잘 해야한다는 것이다. 실제 세계에 있는 사물을 클래스로 설계하는데 있어 모든 부분이 필요한것이 아니다. 프로그램에 필요한 부분은 뽑아내 클래스로 설계하는것을 추상화라고 하며 이 부분을 잘해야 처음 말한 3가지 목표를 잘 실현해 낼 수 있을것이다.


    2. 인스턴스 생성과 사용

    인스턴스 생성은 인스턴스 변수를 선언하는 것으로 기존 변수와 마찬가지로 타입과 변수명을 적어준다.

    클래스명 변수명

    변수명 = new 클래스명();

    Car sonata;

    sonata = new Car();


    사용은 . 연산자를 통해 해당 인스턴스의 변수나 메서드에 접근한다.

    sonata.models = "Sonata";

    sonata.startEngine();

    sonata.fillOil(30.0);


    3. 변수

    선언위치에 따른 변수의 종류


    인스턴스 변수 : 클래스의 인스턴스를 생성할 때 만들어진다. 그 전엔 메모리에 없다.

    클래스 변수 : 프로그램이 실행되어 클래스가 메모리에 로딩 될 때 생성한다. 인스턴스를 생성하지 않고도 사용할 수 있다. 해당 클래스로 만든 모든 인스턴스는 클래스 변수를 공유한다.

    지역 변수 : 메서드 블럭, 생성자 블럭, 초기화 블럭, for문의 블럭 등 블럭안에서 생성된것은 블럭이 끝나자마자 삭제된다.


    4. 메서드

    메서드란 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다.

    메서드를 사용해야 하는 이유는 클래스 사용 이유와 비슷하다. 코드의 관리, 간결화, 재사용성을 높이는것이 목적이다. 그러므로 2번 이상 수행되는 코드들은 메서드로 만들어서 관리하는것이 용이하다.

    메서드 선언과 구현 :

    반환타입 메서드이름( 타입 변수명, 타입 변수명, ...){

    //코드

    }

    int add(int arg1, int arg2){

    int result = arg1 + arg2;

    return result;

    }

    인자(argument)와 매개변수(parameter) :

    인자의 개수와 순서는 메서드에 선언된 매개변수와 일치 타입과 일치,혹은 자동형변환 가능해야한다. 위의 add 메서드를 호출할 때 add(10, 20); 으로 호출을 하면 10과 20은 차례대로 arg1과 arg2로 들어갈 것이다. 이것은 순서와 타입이 일치해야한다.

    반환 타입 : 

    메서드는 실행이 끝나고 어떤 값을 반환한다. return 뒤에다 적힌 변수가 반환되며 이 반환되는 값의 타입을 메서드 이름 앞에 적어줘야한다. 반환값이 없을 경우 void 타입으로 만들면 되고 return의 생략이 가능해진다.

    매개변수 기본형, 참조형 :

    매게변수로 기본형 값을 넘겨주게 된다면 인자로 넘겨준 변수는 복사되어 메서드의 매개변수로 들어가게 된다. 그렇게 된다면 해당 매개변수를 아무리 수정해도 원본 변수에는 별 다른 변화가 없다.

    그러나 참조형 값을 넘겨주게 된다면 변수의 값을 복사하게 되더라도 주소를 복사하게 되는것이므로 원본 인자로 접근할 수 있게되어 수정이 가능하게 된다.



    본 포스팅은 자바의 정석(남궁성)을 보고 정리하였습니다.

Designed by Tistory.