객체지향 - 클래스, 필드, 메소드, 접근제한자

컴공거북이·2024년 8월 14일

즐거운 자바

목록 보기
1/2

<객체지향문법>

<기본 개념>

1) 클래스(Class)
객체를 생성하기 위한 설계도 및 도안
2) 오브젝트(Object) or 인스턴스(Instance)
클래스에서 정의된 구조를 실제로 구현한 것
3) 참조(reference) 변수
객체의 메모리 주소를 가리키는 변수
-> 참조되지 않은 값: 가비지(Garbage)(직역:쓰레기)

ex) 책상을 갖고 싶다라고 했을 때
클래스 : 컴퓨터 설계도면
오브젝트 or 인스턴스: 실제로 만들어진 책상

< Class >

<Class 선언>

<Class의 구성요소>

1) 필드(Field)
객체의 정보(상태)
2) 메소드(Method)
객체의 동작(기능)
ex)

<접근 제한자>

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

  • class 앞에 접근 제한자가 없을 시 접근제한자를 Default로 지정

4) Public

  • 모든 접근 가능

<class 선언 관례>

1) 클래스 명은 대문자로 시작
2) 카멜표기법 사용
카멜표기법이란? 단어와 단어가 만날 경우 단어의 시작은 대문자로 시작
ex) HelloWorld

<Field 선언>

<필드(Field)>

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) 카멜표기법 사용

<static 메소드(클래스 메소드)>

1) 인스턴스를 생성하지 않아도 사용할 수 있다. (클래스가 로딩될 때 함께 메모리에 로드됨)
2) 오버라이드(Override)될 수 없다.
*오버라이드란? 상위 클래스의 메소드를 자식 클래스에서 재정의하는 것

<non-static 메소드(인스턴스 메소드)>

1) 인스턴스 별로 다르게 동작해야하는 경우 주로 사용
2) 되도록 non-static 메소드를 사용해야한다.

<패키지>

<패키지(package)>

관련된 클래스들을 관리하는 폴더

<패키지 명명 관례>

1) 웹사이트 주소를 반대로 기재한 모양으로 패키지 이름 부여
2) 명칭은 소문자를 사용
3) 그룹으로 구분하기 위해 점(.) 사용
ex) com.nexon.maplestory.member.object

profile
잘못된 정보가 있을 경우 언제든 댓글로 남겨주세요 :) 감사합니다!!

0개의 댓글