티스토리 뷰
프로그래밍/자바
[자바의 정석] Ch 6-14 메서드란? Ch 6-20 return문이란? Ch 6-22 호출 스택(call stack)이란? Ch 6-23 기본형 매개변수란? Ch 6-24 참조형 매개변수란? Ch 6-25 참조형 반환타입이란?
da_devel 2022. 6. 20. 04:14반응형
🤔 메서드란?
문장들을 묶어 놓은 것
값(입력)을 받아서 처리하고, 결과를 반환(출력)
메서드 = 선언부 + 구현부
🤔 메서드의 장점?
코드의 중복을 줄일 수 있다.
코드의 관리가 쉽다.
코드를 재사용할 수 있다.
코드가 간결해서 이해하기 쉬워진다.
int add(int a, int b) { // 선언부
int result = a + b; // 구현부
return result; // 호출한 메서드로 결과 반환 // 구현부
}
✅ 메서드는 클래스 영역에만 정의 가능하다
🤔 Return이란?
실행 중인 메서드를 종료하고 호출한 곳으로 되돌아가는 것
반환타입이 void가 아닌 경우, 반드시 return 필요
🤔 호출 스택이란?
스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓임.
호출 스택 : 메서드 수행에 필요한 메모리가 제공되는 공간
메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
스택에서
아래에 있는 메서드가 위의 메서드를 호출한 것
맨 위의 메서드 하나만 실행 중, 나머지는 대기 중
🤔 기본형 매개변수란?
기본형 매개변수 : 변수의 값을 읽기만 할 수 있다. (read only)
다음 코드의 실행결과를 예측해보라.
public class Test {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : " + d.x);
change(d.x);
System.out.println("After change(d.x)");
System.out.println("main() : x = " + d.x);
}
static void change(int x) {
x = 1000;
System.out.println("change() : x = " + x);
}
}
class Data {
int x;
}
실행결과
main() : x = 10
change() : X = 1000
After change(d.x)
main() : x = 10
마지막 main() : x = 10이 되는 이유는 x=1000은 지역변수 이기 때문이다!!
🤔 참조형 매개변수란?
참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. (read & write)
다음 코드의 실행결과를 예측해보라.
public class Ch6_24참조형매개변수 {
public static void main(String[] args) {
Data2 d = new Data2();
d.x = 10;
System.out.println("main() : x = " + d.x);
change(d);
System.out.println("After change(d)");
System.out.println("main() : x = " + d.x);
}
static void change(Data2 d) { // 참조형 매개변수
d.x = 1000;
System.out.println("change() : x = " + d.x);
}
}
실행결과
main() : x = 10
change() : x = 1000
After change(d)
main() : x = 1000
다음의 실행 결과를 예측해보라.
class Data3 { int x; }
public class Ch6_25참조형반환타입 {
public static void main(String[] args) {
Data3 d = new Data3();
d.x = 10;
Data3 d2 = copy(d);
System.out.println("d.x =" + d.x);
System.out.println("d2.x =" + d2.x);
}
static Data3 copy(Data3 d) {
Data3 tmp = new Data3(); // 새로운 객체 tmp 생성
tmp.x = d.x; // d.x의 값을 tmp.x에 복사
return tmp; // 복사한 객체의 주소를 반환한다.
}
}
실행결과
d.x =10
d2.x =10
반응형
'프로그래밍 > 자바' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바의 정석
- 챌린지
- 풀이
- ORM
- stack
- 코드
- 22 정보처리산업기사
- hackerrank challenges
- BAEKJOON
- queue
- 해커랭크 자바
- hackerrank
- 그리디
- 22 정보처리 산업기사
- 해커랭크
- Java
- 해커랭크 챌린지
- 자바
- 소스코드
- 개발자
- 강의
- 정보처리산업기사 공부법
- LinkedList
- JPA
- 디버깅
- 백준
- 정보처리 산업기사
- 해커랭크 자바 챌린지
- 정보처리산업기사
- challenges
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함