Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 문자열포맷
- 객체프로그래밍이란
- 백준 1000번 java
- 코딩테스트기출
- heap
- 코테준비
- 카카오코테
- 카카오코딩테스트
- 백준 1924번
- heap정렬
- 객체프로그래밍
- 백준
- 자바
- 공부정리
- 프렌즈4블록java
- java method
- 자바문자열
- 백준 1000번
- Java heap
- 힙정렬자바
- java
- 백준 1924번 java
- 프로그래머스
- 자료구조힙
- 카카오기출
- 프렌즈4블록
- 개발상식
- 자료구조 트리
- 카카오1차
- 알고리즘
Archives
- Today
- Total
일단 시작해보는 블로그
[Java] call by value 본문
메소드로 객체를 전달할 경우 메소드에서 객체의 객체변수(속성) 값을 변경할 수 있다.
다음 예제는 input값을 primitive type으로 넣어준 것. 즉, 아무리 Main클래스의 객체의 속성을 update함수에서 바꾸려고 해도 바뀌지 않는다.
//Main.java
class Updater {
public void update(int count){
count++;
}
}
public class Main {
int count = 0;
public static void main(String[] args) {
Main a = new Main();
System.out.println("before : " + a.count);
Updater b = new Updater();
b.update(a.count);
System.out.println("after : " + a.count);
}
}
// 결과
// before : 0
// after : 0
[** 한 class 파일 내에서는 여러 클래스들이 존재할 수 있지만, Main.java파일이라면 Main클래스는 public으로 선언해주는 관례가 있다. **]
Main 클래스의 속성인 count의 값을 바꿔주고 싶다면 update의 input값으로 객체를 넣으면 된다.
class Updater {
public void update(Main a){
a.count++;
}
}
public class Main {
int count = 0;
public static void main(String[] args) {
Main a = new Main();
System.out.println("before : " + a.count);
Updater b = new Updater();
b.update(a);
System.out.println("after : " + a.count);
}
}
// 결과
// before : 0
// after : 1
[REFERENCE]
'개발 > Java' 카테고리의 다른 글
[Java] HashMap (0) | 2019.08.21 |
---|---|
[Java] 문자열 포맷 - String.format(), System.out.printf() (0) | 2019.08.20 |
[Java] 정적 변수와 메소드 (static) (0) | 2019.08.08 |
[Java] 메소드 (0) | 2019.08.08 |
[Java] Scanner, 입출력 클래스 (0) | 2019.08.05 |
Comments