객체를 정의하는 틀, 설계도
자바에서는 클래스로 여러 객체를 생성하여 사용
field: 객체의 **상태**를 나타냄, 클래스에 포함된 변수(variable)
method: 객체의 **행동**을 나타냄, 명령문의 집합
선언하기: 클래스를 만들고 그 안에 변수,상수, 함수 등 프로그램 요소 작성
public class Hello{
}
객체지향프로그래밍에서는 모든 데이터를 객체로 취급
객체의 상태(state)와 행동(behavior)을 구체
클래스를 사용하기 위해서는 해당 클래스 타입의 객체(object)를 선언
인스턴스화: 클래스로부터 객체를 선언하는 과정
인스턴스: 해당 클래스 타입의 객체 = 메모리에 할당된 객체
클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 함
| 접근제한 | 대상 | 접근 |
|---|---|---|
| public | 클래스, 필드, 생성자, 메소드 | 외부 클래스가 자유롭게 사용 |
| protected | 필드, 생성자, 메소드 | 같은 패키지 또는 자식클래스 |
| default | 클래스, 필드, 생성자, 메소드 | 같은 패키지만 |
| private | 필드, 생성자, 메소드 | 클래스 |
| 접근제한 | 클래스 내부 | 동일 패키지 | 하위 클래스 | 그 외 |
|---|---|---|---|---|
| public | ⃝ | ⃝ | ⃝ | ⃝ |
| protected | ⃝ | ⃝ | ⃝ | ✗ |
| default | ⃝ | ⃝ | ✗ | ✗ |
| private | ⃝ | ✗ | ✗ | ✗ |
class A { } //default
//생성자를 선언하지않으면 컴파일러에 의해 자동으로 기본 생성자 추가됨
public class B { }
//B에서 A로 접근 가능! 같은 패키지이기 때문
//필드 선언
[ public | protected | ptivate ] [ static ] 타입 필드;
//메소드 선언
[ public | protected | private ] [ static ] 리턴 타입 메소드() { }
//public static void main() {}
클래스 > https://www.tcpschool.com/java/java_class_intro
자바 접근제한자 > https://hongong.hanbit.co.kr/%EC%9E%90%EB%B0%94-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C%EC%9E%90%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%EC%B0%A8%EC%9D%B4public-protected-private/