IT/JAVA

[Java] 클래스와 객체

o_zeew 2024. 9. 5. 12:45

 

목차

1. 클래스

2. 객체, 인스턴스

3. 생성자

4. this, this()

5. 오버로딩

6. 접근제어자

7. Static

 


 

1. 클래스 (Class) 

  - 객체를 정의하는 설계도

  - 붕어빵틀(클래스)를 사용하여 만들어지는 붕어빵(객체)

  - 객체 변수, 메소드로 이루어짐

public class 클래스명 {
        // 객체 변수
        // 메소드
        // + 접근제어자
        // + static
}

클래스명 객체명 = new 클래스명();

 

 

2. 객체, 인스턴스

  - 객체 (Object) : 실체

  - 인스턴스 (Instance) : 클래스와 객체의 관계

      - 클래스로부터 객체를 선언 (인스턴스 화)

      - 어떤 객체는 어떤 클래스의 인스턴스

 

 

3. 생성자 (Constructor)

  - 객체가 생성될 때 자동으로 호출됨

    * 생성자 규칙

       - 클래스명과 이름 맞추기

       - 리턴 타입 없음

public class 클래스명 {
        클래스명() {}
}

 

 

4. this, this()

  - this : 객체 자신을 의미

  - this() : 생성자

 

 

5. 오버로딩

  - 한 클래스 내에서 같은 이름의 메소드를 여러 개 정의

   * 오버로딩 조건

       - 메소드의 이름이 같아야 함

       - 매개변수의 개수 또는 타입이 달라야 함 (리턴타입의 차이로는 오버로딩이 되지 않음)

public class 클래스명 {
        클래스명() {}
        클래스명(String name, String type) {
                구현 내용;
        }
}

 

 

6. 접근제어자

  - 클래스의 변수나 메소드의 접근에 저한을 두는 키워드

   * 접근제어자 종류

       - private : 해당 클래스에서만 접근 가능

       - public : 어디서든 접근 가능

       - default : 해당 패키니 내에서만 접근 가능

       - protected : 해당 패키니 및 상속받은 클래스에서 접근 가능

 

 

7. Static

  - 변수나 메소드의 특성을 바꾸는 키워드

  - 메모리에 한번만 할당됨 > 즉, Static 변수나 메소드는 공유되는 특성을 가짐 (변수값을 변경하면 모든 값이 변경됨)

  - Static 클래스 변수 : 해당 클래스의 각 객체들이 값을 공유

  - Static 클래스 메소드 : 객체를 생성하지 않아도 호출 가능