Class란?

- 객체(변수)를 사용하기 위한 설계도

- 형식:

class 클래스명 {
	변수 선언부
    ...
    함수(method) 선언부	// method == 클래스에 소속되어 있는 함수
}

 

- 클래스 객체를 선언(생성):

클래스명 객체(변수) = new 클래스명(); // new == 동적 할당

// 예시 
MyClass cls = new MyClass();	// 변수 == 객체(instance, object)를 선언

MyClass[] clsArr = new MyClass[10];	// 클래스 배열 선언

 


1. 클래스 정의

- 키워드: class

- 클래스 이름은 대문자로 시작하는 것이 관례임.

public class MyClass {
    // 속성(변수)
    int number;
    String text;

    // 생성자
    public MyClass(int number, String text) {
        this.number = number;
        this.text = text;
    }

    // 메서드
    public void display() {
        System.out.println("Number: " + number + ", Text: " + text);
    }
}

 

1-2. 접근 제어자

  • public: 모든 클래스에서 접근 가능
  • private: 같은 클래스 내에서만 접근 가능
  • protected: 같은 패키지 내 또는 자식 클래스에서 접근 가능
  • default(아무 것도 기입하지 않음): 같은 패키지 내에서만 접근 가능

 

1-3. 필드와 메서드

  • 필드: 클래스의 속성으로, 객체의 상태를 나타냅니다. // 변수 선언부
  • 메서드: 클래스의 기능으로, 객체가 수행할 수 있는 작업을 정의합니다. // 메소드 선언부

 

2. 객체 생성

- 클래스를 정의한 후, 그 클래스를 기반으로 객체를 생성할 수 있음.

public class Main {
    public static void main(String[] args) {
        // MyClass 클래스의 객체 생성
        MyClass myObject = new MyClass(10, "Hello");
        
        // 메서드 호출
        myObject.display();
    }
}

 

3. 생성자

생성자는 객체가 생성될 때 호출되는 특별한 메서드입니다. 생성자는 클래스 이름과 동일하며 반환 타입이 없습니다. 기본 생성자와 매개변수가 있는 생성자를 정의할 수 있습니다.

public class MyClass {
    int number;

    // 기본 생성자
    public MyClass() {
        number = 0;
    }

    // 매개변수가 있는 생성자
    public MyClass(int number) {
        this.number = number;
    }
}

 

 

4. 상속

Java에서는 클래스가 다른 클래스를 상속받아 기능을 확장할 수 있습니다.

public class Animal {
    public void eat() {
        System.out.println("Eating...");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("Barking...");
    }
}

// 사용 예
Dog myDog = new Dog();
myDog.eat(); // 상속된 메서드 호출
myDog.bark(); // Dog 클래스의 메서드 호출

 

 

5. 인터페이스

인터페이스는 클래스가 구현해야 하는 메서드의 집합을 정의합니다. 다중 상속을 지원합니다.

public interface Animal {
    void eat();
}

public class Dog implements Animal {
    public void eat() {
        System.out.println("Dog is eating.");
    }
}

 

6. 패키지

클래스를 그룹화하여 관리할 수 있도록 패키지를 사용할 수 있습니다. 패키지는 package 키워드로 정의합니다.

package mypackage;

public class MyClass {
    // ...
}

 

 

7. 예외 처리

클래스 내에서 발생할 수 있는 예외를 처리하기 위해 try-catch 문을 사용합니다.

public class MyClass {
    public void riskyMethod() {
        try {
            // 위험한 코드
        } catch (Exception e) {
            System.out.println("예외 발생: " + e.getMessage());
        }
    }
}

+ Recent posts