1) 클래스(Class)
객체를 생성하기 위한 설계도 및 도안
2) 오브젝트(Object) or 인스턴스(Instance)
클래스에서 정의된 구조를 실제로 구현한 것
3) 참조(reference) 변수
객체의 메모리 주소를 가리키는 변수
-> 참조되지 않은 값: 가비지(Garbage)(직역:쓰레기)
ex) 책상을 갖고 싶다라고 했을 때
클래스 : 컴퓨터 설계도면
오브젝트 or 인스턴스: 실제로 만들어진 책상
1) 필드(Field)
객체의 정보(상태)
2) 메소드(Method)
객체의 동작(기능)
ex)

Class 앞에는 접근 제한자가 붙습니다.
1) Private
2) Protected
3) Default
4) Public

1) 클래스 명은 대문자로 시작
2) 카멜표기법 사용
카멜표기법이란? 단어와 단어가 만날 경우 단어의 시작은 대문자로 시작
ex) HelloWorld
1) 소위말해 변수, 클래스가 가지는 속성
2) static 필드는 클래스 필드, non-static 필드는 인스턴스 필드
[접근제한자][static] [final] 타입 필드명 [=초기값];
*여기서 []안의 내용은 없어도 됨
1) 첫 번째 글자는 소문자로 시작
2) 타입(type)은 기본형 (boolean, byte, char, short, int, long, float, double)과 참조타입(class, 인터페이스, 배열)
3) 초기값이 없을 경우: 참조형일 경우 null, boolean형일 경우는 false, 나머지 기본형은 모두 0으로 초기화
[접근제한자][static] 리턴type 메소드이름(매개변수){
...
}
-> 매개변수(prameter): 메소드 메소드의 정의부분에 나열되어 있는 변수들
-> 전달인자(argument): 메소드를 호출할 때 전달되는 실제 값
1) 메소드 명은 소문자로 시작
2) 카멜표기법 사용
1) 인스턴스를 생성하지 않아도 사용할 수 있다. (클래스가 로딩될 때 함께 메모리에 로드됨)
2) 오버라이드(Override)될 수 없다.
*오버라이드란? 상위 클래스의 메소드를 자식 클래스에서 재정의하는 것
1) 인스턴스 별로 다르게 동작해야하는 경우 주로 사용
2) 되도록 non-static 메소드를 사용해야한다.
관련된 클래스들을 관리하는 폴더
1) 웹사이트 주소를 반대로 기재한 모양으로 패키지 이름 부여
2) 명칭은 소문자를 사용
3) 그룹으로 구분하기 위해 점(.) 사용
ex) com.nexon.maplestory.member.object