상세 컨텐츠

본문 제목

[JAVA] 자바 클래스(class) 생성, 선언, 예제

Programming language/JAVA

by 주초위왕 2023. 8. 26. 23:07

본문

클래스를 배우기 전에 객체를 살펴보기.

 

객체를 생성할 때에는 설계도가 필요하다 설계도는 클래스를 의미함.

또한, 클래스로 부터 생성된 객체를 인스턴스라고한다.

 

주의할 점은 인스턴스를 만들고 싶다면 인스턴스를 참조하는 변수를 반드시 필요로 한다는것.

기본형 타입인(type, short, char, int, long, float, double)은 참조형 타입이 아님.

값을 메모리 크기만큼 가질 수 있는 타입임.

 

참조형 타입은 값을 가지는 것이 아닌 객체를 참조함.

new가 코드에서 등장하면 인스턴스를 생성한다는 의미

1. Car은 레퍼런스 타입을 의미하고
2. myCar은 인스턴스를 참조하는 참조변수를 의미
3. new Car()인스턴스를 생성

Car myCar = new Car();

클래스

 - 클래스는 필드(Field)와 메소드(Method)를 가진다.(필드는 속성, 메소드는 행위)

 - 필드는 클래스의 속성이라고 말할 수 있다.

 - 메소드는 클래스의 기능이라고 말할 수 있다.(메소드는 함수라고 하지 않고, 메소드라고 말함)


클래스의 선언 방법

 - 클래스 명은 대문자로 시작합니다.

 - 단어와 단어가 만날 경우 2번째 단어의 시작인 대문자로 시작합니다. 예를 들어 "Hellow"와 "World"란 단어를 이용하여 클래스 이름을 만든다면 "HellowWorld"가 됩니다. (이것을 카멜 표기법 이라고 말함)

클래스 선언

접근제한자 class 클래스이름 {
      필드들; --- 객체의 데이터가 저장되는 곳
      생성자들; --- 객체 생성 초기화 역할 담당
      메소드들; --- 객체의 동작으로 호출 시 실행하는 블록
 }
 
 
 public class Car {
 	필드들
    생성자들
    메소드들
 }

1.1 필드들

객체의 데이터를 저장하는 역할을 한다. 변수 선언과 비슷하지만 역할은 다르다.

 

1.2 생성자

객체를 새로 생성할 때 가장 먼저 호출되는 메서드이다.

생성자로 만드는 규칙은 메서드 명을 클래스 명과 동일하게 작성하고 반환값을 명시하지 않으면

생성자로 인식해서 가장 먼저 호출하게 된다.

일반적으로 생성자에서는 멤버변수 값들의 초기화 작업 등이 이루어진다.

 

1.3 메서드

클래스를 통해 생성한 객체를 통해서 어떠한 기능을 수행하고자 할 때 필요한 작업을 넣는다.

참고로 메서드 명 전에 void라고 적힌 것이 반환될 타입을 명시하는 공간이다.


클래스 만들기

public class Button {

    char print;
    int space;
    String mode;

    Button (char print, int space, String mode) {
        this.print = print;
        this.space = space;
        this.mode = mode;
    }

    void place () {
        System.out.printf(
                "표시: %c, 공간: %s, 모드: %s%n",
                print,space, mode
        );
    }
}

 

클래스를 만들었다면 실제로 객체를 만들어보기

(속성에 접근하기 객체를 생성하고 점 구문( .)을 사용하여 속성에 액세스할 수 있습니다.)

public class Main {
    public static void main(String[] args) {
        Button button1 = new Button('1', 1, "DARK");
        Button buttonPlus = new Button('+', 3, "DARK");
        Button buttonClear = new Button('C', 2, "DARK");

        button1.place();
        buttonPlus.place();
        buttonClear.place();
    }
}

 

왼쪽의 클래스로 선언하는 무언가는 오른쪽의 자료형이 된다는 의미이며, 지정한 메소드들을 오른쪽에서 .을 통하여 접근해서 쓰고있다. 

 

오른쪽을 실행하면 다음과 같은 실행결과가 뜸.


반응형

관련글 더보기

댓글 영역