개인 자료란 (JE)

  서버 커뮤니티

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

wincho_ 8ff851e059fb4dd59be0b55d44f8149f

Profile

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

[게임개발로 시작하는 자바 EP. 4] 함수

2022.01.31 조회 수 2548 추천 수 0

이전 글: EP. 3 - 변수

다음 글: EP. 5 - 창 띄우기


23/02/11 업데이트:

12일이 머리박을일인가


2022/05/26 업데이트:

Person클래스는 Student와 같습니다


| Step 1. 함수란?

수학에서는 함수는 f(x) = ??? 형태로, x에 어떤 값을 넣으면 다른 값이 반환됩니다.

여기선 n차함수 & 지수함수 그런거 없어요 이차함수 말하면 주긴다.

프로그래밍에서도 비슷합니다.

수학에서 f는 함수의 이름을 ()안의 값들을 함수를 계산할 때 주어져야 하는 값으로 = 다음에 오는 식을 함수의 식이듯이

자바에서도

public void f(int x) { // 내용 }

으로 표현할 수 있습니다.

(자바에서 클래스 안의 함수는 '메서드'라 부릅니다.)


자바에서 함수는

접근제어자 타입 이름(변수1, 변수2, 변수3, ....) { }

이 되는 것이죠.

이곳에서 접근 제어자에 대해 배워보세요!


| Step 2. 함수의 위치

자바에선 함수를 클래스 안에 배치합니다. 이곳에서 클래스에 대해 배워보세요!

즉, 클래스 안에는 필드와 함수가 위치할 수 있습니다.


자 그럼 여기서 함수의 예를 살펴보도록 하겠습니다.


저번에 작성했던 Person 클래스 안에

e32f6d975e7bbab3688b7bc32d876a58.png


51459681f829f85f0c79e7355a963f86.png

이렇게 작성한 후 메인 함수에서

Person 변수를 만들고, person변수.printPerson(); 을 작성한 후 실행해보면

3740aa02b6f61f17fe5d717080da32e4.png

6116500fe511769443aa1f4993d88b51.png

잘 나오는걸 확인할수 있습니다!


| Step 3. 정적(static) 함수

조용하다는 정적 아닙니ㄷ..ㅏ

보통 함수들은 클래스의 객체를 생성할때 함수가 생성되는데요, 

static함수는 프로그램이 실행되고 해당 클래스가 로딩될때 생성됩니다.

즉 객체에 대한 함수가 아닌 클래스에 대한 함수인것이죠.

static함수를 만드는 방법은 접근제어자와 타입 사이에 static 을 작성해주시면 됩니다.


bec19a846babc437d2482d6b840da95d.png

(여기서 main함수도 정적함수입니다.)


정적함수를 호출할땐

클래스이름.함수이름(변수, ...);

로 작성하실수 있습니다.


12일만에 돌아온 4강,,,,

머리박겟씁니다


추가)

static 함수뿐 아니라 static 변수도 존재합니다.

static변수도 동일한 방법으로 만들고, 사용합니다!




9개의 댓글

KaMa_
2022.02.01

person 클래스가 student 랑 다른건가요? 지금까지 작성 했던게

main 이랑 student 뿐인데... 흐흠

윈초
2022.02.01
@KaMa_

Person과 Student는 같은 클래스입니다.

제가 실수했네요.. 

명이
2022.02.01

아니 누구 맘대로 내 이름을 팔고 있어

HAN1110
2022.02.05

자바에선 함수가 아니라 메서드라고 합니다

윈초
2022.02.09
@HAN1110

둘다 같은말이에요. 다른 언어를 접하셨던 분들을 위해 함수로 설명한것 뿐입니다

HAN1110
2022.02.09
@윈초

그럼 말고요

qsef1256
2022.03.14
@윈초

엄밀히 말하자면 서로 다른게 맞습니다. 메서드는 클래스에 소속되어 있는 함수를 의미합니다.

 

https://zeddios.tistory.com/233

https://velog.io/@goyou123/%ED%95%A8%EC%88%98%EC%99%80-%EB%A9%94%EC%86%8C%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

윈초
2022.03.15
@qsef1256

자바에선 클래스 안에만 함수를 넣을수있으니까,, 필요하다고 느끼지 않아서 작성하지 않았어요.

문제가 있다고 생각하시면 알려주세요, 수정할게요!

뉴스 및 창작물
/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