Java
자바 클래스
asd135
2024. 6. 17. 22:06
728x90
클래스 구성
필드:클래스 내에서 사용하는 데이터를 저장하는 변수
메서드: 클래스 내에 정의된 함수
생성자: 객체를 생성할 때 호출하는 메서드 객체를 생성할 때 자동으로 호출
접근 제어자: 클래스, 필드, 메서드에 대한 접근 권한을 설정
클래스 형식
[접근제어자] class [클래스이름] [extends 부모클래스이름] [implements 인터페이스 이름]
{
[데이터필드 선언]
[생성자 선언]
[메서드 선언]
}
클래스 변수(메서드), 인스턴스 변수(메서드)
클래스 변수 특징
- 해당 클래스의 모든 객체가 공유
- 객체를 생성하지 않고 접근 가능
- 주로 클래스 내부에서 공유되어야 하는 데이터를 저장하는 데 사용
클래스 변수 사용
A객체를 생성할 때마다 클래스 변수 i 1씩 증가
public class Main {
public static void main(String[] args) {
A a1 = new A();
A a2 = new A();
System.out.println(A.i);
}
}
class A {
public static int i;
A() {
i++;
}
}
클래스 메서드 특징
- 객체 생성 없이 호출 가능
- 클래스 메서드 내부에서 인스턴스 변수 사용 불가
클래스 메서드 예시로 Math 클래스의 max 메서드가 있다.
public class Main {
public static void main(String[] args) {
System.out.println(Math.max(1,5));
}
}
인스턴스 변수
- 객체마다 고유한 값을 가짐
- 객체가 생성될 때 자동으로 초기화
- 인스턴스 변수는 인스턴스 메서드 내에서 사용 가능
인스턴스 메서드
- 인스턴스 메서드는 특정 객체에 종속적으로 동작, 즉 인스턴스 변수에 접근 가능
- 인스턴스 메서드는 객체를 생성한 후에 호출 가능
클래스의 접근 제어자
public: 클래스를 어디에서든 접근할 수 있도록 허용
default: 클래스에 접근 제어자를 생략하면 기본적으로 default가 되고 명시적으로 default를 적으면 에러 발생
protected: 내부클래스에서만 사용가능, 같은 패키지 내에서와 해당 클래스를 상속받은 하위 클래스에서만 접근할 수 있도록 허용
private: 내부클래스에서만 사용가능, 해당 클래스에서만 사용가능