본문 바로가기
IT 돌고래/JAVA

[JAVA]자바의 열네걸음 : 클래스 응용(1)

by IT돌고래 2020. 3. 19.
반응형

 

안녕하세요.

IT 돌고래입니다.

자바의 클래스 응용 첫 번째 내용에 대해서 이야기를 해보겠습니다.

 

자바는 객체지향언어이기 때문에 클래스를 객체로 만들어서 사용을 해야 합니다.

그러기 위해서는 생성자가 호출이 되어야 클래스가 객체화가 됩니다.

그럼 자바의 열세걸음에서 나온 기초에서는 생성자라고 하는 것을 보지 못하였습니다. 

그래서 클래서 생성자에 대해서 자세히 말씀을 드리겠습니다.

 

붕어빵(객체)

1. 클래스 생성자란?

class A //클래스 A
{
    A() //생성자
    {
      
    }
   
}

위에 소스를 보시면 생성자를 만드는 방법입니다. 클래스명에 뒤에 ()를 넣어서 생성자를 만들 수 있습니다.

생성자에 특징은 함수와 비슷하지만 리턴이 없고 함수명 자리에 무조건 클래스 명이 들어갑니다. 

인자를 넣을 수 있는 부분에는 필요에따라 (int a, int b) 이런 식으로 인자를 받을 수 있는 생성자를 만들 수 있습니다.

 

2. 클래스 default 생성자

Class A //클래스 A
{
    /*
    A() // defalt 생성자 자동으로 생성 해줌
    {
    }
    */
}

Class B //클래스 B
{
    A a = new A(); //A의 타입의 a의 변수에 A의 객체를 생성해서 대입
}

위에 소스를 보시면 생성자가 없는데 객체는 문제 없이 만들어집니다. 어떻게 만들어지는 걸까요?

바로 생성자를 추가하지 않으면 기본 생성자가 자동으로 추가 되서 실행이 되기 때문에 객체를 만들 수 있게 됩니다.

기본 생성자 형태는 클래스명() 입니다. 

 

3. 클래스 생성자 만들기

class A // 클래스 A
{
    A(int a, int b) //정수형 2개를 받는 생성자 A
    {
        System.out.println(a+b);//출력
    }
}

class B // 클래스 B
{
     A a = new A(); // 객체생성 에러
     A a1 = new A(5,10); // A타입 변수 a1에 A객체를 생성 생성을 할때 숫자 5와 10을 대입해서 생성
}


위에 소스를 보면 클래스 A 생성자를 보면 정수 타입 2개를 받는 생성자입니다. 이런 식으로 생성자를 명시를 해주면 default 생성자처럼 A() 형태로 객체를 생성을 할 수가 없습니다. 명시 해준 생성자 형태로 객체를 생성을 해줘야 합니다.

 

※ 긴 글을 읽어 주셔서 감사합니다. Java를 계속 진행해 나가겠습니다.

 

★ 이글 이후에는 Java 클래스 응용(2)에 에 대한 내용을 정리해서 처음부터 정리를 할 예정입니다. 많은 관심 부탁드립니다




반응형

댓글