JAVA의 클래스
Java에서 클래스는 객체 지향 프로그래밍(OOP)의 기본 빌딩 블록입니다. 해당 클래스를 기반으로 생성될 개체의 구조와 동작을 정의하는 청사진 또는 템플릿을 제공합니다. Java의 클래스에 대해 자세히 살펴보겠습니다.
클래스 선언
클래스는 class 키워드와 클래스 이름을 사용하여 선언됩니다. 클래스 이름은 대문자로 시작해야 하며 Java의 명명 규칙을 따라야 합니다.
public class MyClass {
// Class members go here
}
속성(필드)
속성은 개체의 상태 또는 속성을 나타내는 클래스 내의 변수입니다. 해당 클래스의 개체가 보유할 데이터를 정의합니다. 특성은 필드 또는 인스턴스 변수라고도 합니다. 액세스 수정자(private, public, protected 또는 package-private)를 지정하여 속성의 가시성을 제어할 수 있습니다.
public class Student {
private String name;
private int age;
}
메서드
메서드는 해당 클래스의 개체가 수행할 수 있는 동작 또는 작업을 정의하는 클래스 내에서 정의된 함수입니다. 메소드는 속성을 조작하고 기능을 제공할 수 있습니다. 반환 유형(또는 반환 값이 없으면 void)으로 선언되며 매개변수를 사용할 수 있습니다.
public class Circle {
private double radius;
public double calculateArea() {
return Math.PI * radius * radius;
}
}
생성자
생성자는 개체가 생성될 때 속성을 초기화하는 데 사용되는 특수 메서드입니다. 클래스와 동일한 이름을 가지며 매개변수를 사용하여 초기 값을 설정할 수 있습니다.
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
}
액세스 한정자
액세스 한정자는 다른 클래스에 대한 클래스 멤버(속성 및 메서드)의 가시성을 결정합니다. 캡슐화를 시행하고 클래스의 내부가 노출되는 정도를 제어하는 데 도움이 됩니다.
- private : 클래스 내에서만 접근 가능합니다.
- protected : 클래스 및 하위 클래스 내에서 접근 가능합니다.
- default(수정자 없음) : 동일한 패키지 내에서 접근할 수 있습니다.
- public : 모든 클래스에서 접근 가능합니다.
상속
상속을 통해 기존 클래스(슈퍼클래스 또는 기본 클래스)를 기반으로 새 클래스(하위 클래스 또는 파생 클래스)를 만들 수 있습니다. 하위 클래스는 상위 클래스에서 특성과 메서드를 상속합니다. 이는 코드 재사용을 촉진하고 계층적 관계를 지원합니다.
public class Dog extends Animal {
// Additional attributes and methods specific to Dog
}
메서드 재정의
하위 클래스는 이미 상위 클래스에 정의된 메서드의 특정 구현을 제공할 수 있습니다. 이를 메서드 재정의라고 합니다. 이를 통해 하위 클래스는 상속된 메서드의 동작을 사용자 지정할 수 있습니다.
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
추상화(Abstraction)
추상화에는 복잡한 구현 세부 정보를 숨기고 개체의 필수 기능만 표시하는 작업이 포함됩니다. 추상 클래스 및 인터페이스는 Java에서 추상화를 달성하는 데 사용됩니다.
정적(Static) 멤버
정적 멤버(특성 및 메서드)는 클래스의 인스턴스가 아니라 클래스 자체에 속합니다. 클래스의 모든 인스턴스 간에 공유되며 클래스 이름을 사용하여 액세스할 수 있습니다.
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
패키지
계층 구조를 제공하고 이름 충돌을 방지하기 위해 클래스를 패키지로 구성할 수 있습니다. import 문은 다른 패키지의 클래스에 액세스하는 데 사용됩니다.
import java.util.ArrayList;
import java.util.List;
클래스는 Java 객체 지향 프로그래밍 패러다임의 초석입니다. 데이터와 동작을 캡슐화하여 실제 엔터티를 모델링하고 유지 관리 가능한 모듈식 코드를 생성할 수 있습니다.