Search

반응형

'class object'에 해당되는 글 1건

  1. 2019.07.09 [Java_Tutorial]23강-자바 코딩, 객체 생성[Creating Objects, 자바 프로그래밍 기초 , 자바 튜토리얼]
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

객체 (Objects)

자바 프로그램(Java Program)은 객체를 많이 생성한다. 또한 메서드를 통해 객체를 사용할 수 있다. 객체의 상호 작용을 통해 통신, 애니메이션 작동, 다양한 업무를 구현해서 수행한다.

객체 생성 (Creating Objects)

객체의 청사진은 클래스라고 배웠다. 객체를 생성하기 위해서 클래스가 필요하다. 객체를 생성하고 변수로 초기화하는 예를 확인해 본다.

Point p = new Point(1,2);

Rectangle r1 = new Rectangle(p, 10, 20);

Rectangle r2 = new Rectangle(20, 30);

첫 번째 객체는 Point클래스에서 만든 것이고 나머지 2개는 Rectangle객체에서 만든 것이다.

객체를 생성하는 구문에 대해 분석해 보자.

  1. Declaration(선언) : 굵은 글씨는 객체의 타입으로 변수를 선언하는 것이다.

  2. Instantiation(인스턴스화) : new 키워드는 객체를 생성하는 자바 연산자이다.

  3. Initialization(초기화) : new 연산자는 생성자를 호출하는 앞에 사용된다. 생성자가 새로운 객체를 초기화한다.

 

 

객체를 참조하는 변수 선언(Declaring a Variable to Refer to Object)

변수 선언에 대해 다시 확인해 본다.

type name;

위 구문은 type으로 지정된 데이터에 참조하는 이름이라는 것을 컴파일러에게 알려주는 것이다. 원시 데이터 타입인 경우 이 선언은 그 변수를 위한 적당한 양의 메모리를 할당할 것이다.

역시 참조형 변수도 다음과 같이 선언할 수 있다.

Point org;

위 구문처럼 선언 시 org의 값은 실제 객체가 생성되고 할당될 때 까지는 값이 정해지지 않는다. 위 구문처럼 간단하게 참조형 변수에 타입만 지정한 경우는 객체가 생성되지 않는다. 객체를 생성하기 위해서는 new키워드를 사용하면 된다. 객체를 할당하지 않으면 컴파일 시 에러가 난다.

클래스 인스턴스화(Instantiating a Class)

new연산자는 새로운 객체를 위한 메모리 할당하고 그 메모리의 참조값을 반환하여 클래스를 인스턴스화 한다. new키워드는 또한 객체의 생성자를 호출한다.

클래스의 인스턴스화의 의미는 객체를 생성한다는 의미이다. 객체를 생성할 때 클래스의 인스턴스(instance)를 생성한다는 것으로 그런 까닭에 클래스의 인스턴스화라 한다.

new연산자 뒤에는 생성자가 있어야 한다. 생성자는 클래스 이름과 같아야 한다. new연산자는 생성된 객체의 참조를 반환한다. 이 참조는 일반적으로 적당한 타입의 변수가 할당된다.

Point p = new Point(3,4);

new연산자에 의해 반환된 참조는 변수로 할당될 필요는 없다. 표현식으로 바로 사용될 수 있다.

int h = new Rectangle().heignt();

 

객체 초기화 (Initializing an Object)

아래 Point 클래스를 보자

           Public class Point {

                public int x = 0;

                public int y = 0;

                //생성자

               public Point(int a, int b){

                    x = a;

                    y = b;

                  }

           }

위 소스를 보면 생성자가 하나 구현되어 있다. 위 생성자를 보면 반환 타입도 없고 이름은 클래스명과 같다. 또한 2개의 int형 파라미터를 가지고 있다. 생성자를 호출하는 방법을 확인해 보자.

Point p = new Point(22,33);

P는 참조형 변수로 x22, y23의 값을 가진 Point클래스의 객체와 연결된다.

모든 클래스는 최소한 한 개의 생성자를 가지고 있다. 만약 생성자를 명시적으로 구현하지 않았다면 컴파일러는 자동으로 기본 생성자를 구성하게 된다. 기본 생성자는 인수가 없는 생성자이다. 그리고 기본적으로 부모 클래스의 생성자를 호출하게 되고 만약 부모 클래스가 없다면 Object 클래스의 생성자를 호출하게 된다.

 

반응형