[Java/객체지향] 매개변수
2024. 8. 18. 20:09ㆍCS/프로그래밍 언어
기본형 매개변수 → 읽기only
class Data{int x;}
class Ex6_6 {
public static void main(String[] args){
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + 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 Data2{int x;}
class Ex6_7 {
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.x)");
System.out.println("main() : x = " + d.x);
}
static void change(Data2 d){
d.x = 1000;
System.out.println("change[] : x = "+d.x);
}
}
참조형 반환타입
class Data3{ int x;}
class Ex6_8 {
public static void main(String[] args){
Data3 d = new Data3();
d.x = 10;
Data3 d2 = copy(d);
//참조변수 없는 이유
//(1) static메서드: 객체 생성없이 호출O
//(2) 같은 클래스에 있어서
System.out.println("d.x ="+d.x);
System.out.println("d2.x="+d2.x);
}
static Data3 copy(Data3 d){
Data3 tmp = new Data3();//새로운 객체 tmp 생성(1)
tmp.x = d.x; // d.x의 값을 tmp.x에 복사(2)
return tmp; // 복사한 객체의 주소를 반환(3)
}
}
- =객체의 주소를 반환한다!
- 모든 참조형 타입의 값 = 객체의 주소 → just 정수값이 반환
- 반환하는 타입이 ‘Data’의 객체의 주소 → 반환타입이 ‘Data’
'CS > 프로그래밍 언어' 카테고리의 다른 글
[Java/객체지향] 오버로딩과 오버라이딩 (0) | 2024.08.19 |
---|---|
[Java/객체지향] static 메서드와 인스턴스메서드 (0) | 2024.08.18 |
[Java/객체지향] 메서드 (0) | 2024.08.17 |
[Java/객체지향] 변수 (0) | 2024.08.16 |
[Java/객체지향] 클래스와 객체 (0) | 2024.08.14 |