- 객체 지향 프로그래밍에서 가장 기본적인 단위
- 객체를 생성하기 위한 틀이나 설계도 역할
- 클래스에 포함된 변수
- 객체의 속성을 정의
- 특정 작업을 수행하는 일련의 명령문들의 집합
- 객체가 수행하는 동작을 정의
- 객체를 생성할 때 호출되는 특별한 메서드
- 객체가 생성될 때 필드 초기화 또는 객체 초기화하기 위한 작업을 수행
public class Person {
// 필드 - 속성
private String name;
private int age;
private String gender;
// 생성자
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 메서드 - 동작
public void walk() {
System.out.println(name + " is walking.");
}
public void talk() {
System.out.println(name + " is talking.");
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
이미 정의된 클래스에서 코드를 재사용하여 새로운 클래스를 만드는 기능
- 기존 클래스의 필드와 메서드를 상속받을 수 있음
- 부모 클래스의 속성과 동작을 그대로 사용하면서 자식 클래스에서 추가적인 속성과 동작을 정의할 수 있음
"extends" 키워드를 사용하여 구현
부모 클래스
public class Tree {
private int height;
public Tree(int height) {
this.height = height;
}
public int getHeight() {
return height;
}
public void grow() {
System.out.println("The tree is growing");
}
}
자식 클래스
public class OakTree extends Tree {
private int age;
public OakTree(int height, int age) {
super(height);
this.age = age;
}
public int getAge() {
return age;
}
public void shedLeaves() {
System.out.println("The oak tree is shedding leaves");
}
}
클래스, 인터페이스, 열거형 등의 관련된 항목들을 모아서 그룹화한 것
- 클래스의 이름 충돌을 막아주고, 코드의 가독성을 높여준다
- 접근 제어자를 이용하여 패키지 외부에서 접근할 수 없도록 설정할 수 있다
Java Class를 이용해 코드의 재사용성을 높일 수 있으며, 비슷한 속성과 동작을 가진 객체들을 간편하게 생성, 관리할 수 있습니다.