개인 자료란 (JE)

  서버 커뮤니티

Profile 윈초 디벨로퍼 인증 개발자

wincho_ 8ff851e059fb4dd59be0b55d44f8149f

Profile

커뮤니티 소통 개발하기 프로그래밍

[게임개발로 시작하는 자바 EP. 2] 자바 클래스 (Class) & 접근 제어자

2022.01.11 조회 수 2883 추천 수 1

이전 글: EP. 1 - 프로그램 진입점 (main)

다음 글: EP. 3 - 변수

4ba4bc43516ba9848ecc6b1997bf2989.png

? 진짜 뭐지


| Step 1. 객체 & 클래스

클래스는 유사한 특징을 가진 객체의 속성을 모아놓은 집합체이고 패키지에 담깁니다.

패키지는 클래스를 담는 폴더이구요.


예를들어서 학교에는 1반, 2반, 3반이있고

각 반에는 1~30번의 학생이 있다고 합시다.

각 학생은 이름, 나이, 성적등의 데이터를 가지고있고

반은 반 이름과 학생들의 리스트를 가지고있을겁니다.


여기서 우리는 학생, 반, 학교라는 클래스를 만들수 있습니다


그럼 클래스를 정의하려면 어떻게 해야할까요?

class 클래스이름 { }

으로 정의를 할수있습니다.

저번글에서 파악하셨을수도 있지만 자바의 모든 코드는 중괄호안에 작성됩니다.

중괄호 안 내용을 본문이라고 부릅니다.


클래스 본문에는 메서드(클래스 안에있는 함수), 필드(클래스 안에있는 변수)가 들어갈수 있습니다.


예를들어 Student라는 클래스를 만들어보죠.

저번글에서 Main을 생성했던 방법으로 Student라는 클래스를 생성해줍니다.


그룹 안에는 String형 변수 'name', int형 변수 'age'를 넣어주겠습니다.

8abece0084c9cfc33d0396e475e538f8.png

(변수 (필드)에 관해선 다음글에서 더 자세하게 설명드리겠습니다)

이제 Student라는 클래스와 name, age라는 변수가 생겼습니다


클래스에있는 또 다른 기능은 생성자입니다.

자바에서는 new 클래스이름();을 통해 객체를 생성할수 있습니다

예를들어, 반에 새로운 전학생이 오게되었습니다.

하지만 이 학교엔 전학생에 대한 자료가 없죠, 

그러니 전학생에게 이름과 나이를 물어서 데이터를 저장해야하는것과 비슷합니다


생성자는 객체를 생성할때 실행할 코드, 필요한 인자등을 정의해주는 함수입니다

클래스 그룹 안에

public 클래스이름(인자) { 코드 }

를 작성하시면 됩니다.

be90cabfd168377e4469fae2fb55dbf6.png

(this = 해당 객체를 나타냄 / 해당 예제에선 필드의 name과 파라미터의 name 이름이 같기 때문에 구분해주기 위해 사용)


그러면 이제 객체를 생성해봅시다.

저번에 만들었던 Main클래스로 가서,

cb66cdecdbf8ddfc3bf38cf10bb87281.png

이렇게 작성하시면 됩니다.

new Student("이름", 나이); 부분은 아까 설명했던 객체를 생성하는 코드이고,

변수이름.name은 Student 클래스에 있는 필드의 값을 의미합니다.


| Step 2. 접근 제어자

접근 제어자 (Accessor)는 4가지의 종류가 있습니다.

public, private, default, protected.

아까 Student클래스에서 필드, 생성자를 작성할때 썼던 public도 접근 제어자입니다.


public
모든곳에서 사용가능
private
해당 클래스에서만 사용가능 (상속받는클래스에서도 사용 불가)
default
(*주의 default를 작성하는것이 아닌 접근제어자부분을 비워둬야함.)
별명: package-private.
같은 패키지내에서만 사용가능.
protected
해당 클래스 또는 해당클래스를 상속받는 클래스에서 사용가능

아니.. 진짜로 인기커뮤글에 왜 자꾸 올라가요...?

댓글이 없길래 인기가 없는줄알았더니 왜 조회수만 올라가요...?


다음강 보기




6개의 댓글

HAN1110
2022.01.11

여담으로 default 는 상속 받으면 사용 가능합니다.

HAN1110
2022.01.12

@WintChoco

저 혹시 이거 보조하는 글 만들어도 되나요?

KaMa_
2022.01.13

shiu는 어떤 뜻이가용??

명이
2022.01.13
@KaMa_

사람 이름입니다. 옆에 "김시후"라고 name값이 지정되어 있습니다.

KaMa_
2022.01.13
@명이

student shiu(라는 학생)=(전학생) new student ("이름 ",나이); 전학생의 이름과 나이 라는 뜻이군요

 

윈초
2022.01.14
@KaMa_

Student sihu; 에서 Student는 변수의 타입, sihu는 변수 이름입ㄴ다

뉴스 및 창작물
/files/thumbnails/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0