[JAVA] 기본형 매개변수와 참조형 매개변수, 참조형 반환타입

2021. 7. 16. 19:39·Computer Science/Programming Language

메서드의 매개변수 

메서드의 매개변수 타입은 기본형, 참조형으로 나눌 수 있음

 

기본형 매개변수

변수의 값을 읽기만 하고 변경은 불가능함

class Data{
	int x;
}

class example{
	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(" main() : x = "+ d.x);
     }
     static void change(int x){		//기본형 매개변수
     	x = 1000;
        System.out.println("change() x : "+x);
}

"main() :  x = "에 대한 두개의 출력값은 모두 "10"이다. 

"change() x"는 1000이 출력된다. 

change( )호출이 되어서 x값을 1000으로 바꾸더라도 지역변수를 바꾼 것이기 때문에, 그대로 10만 출력되는 것

 

"기본형 매개변수"는 "읽기"만 가능함!!

 

참조형 매개변수

변수의 값을 읽고 변경 할 수 있음

class Data{
	int x;
}

class example{
	public static void main(String[] args){
    	Data d = new Data();	//객체 생성
        d.x = 10;
        System.out.println(" main() : x = "+ d.x);
        
        change(d);
        System.out.println(" main() : x = "+ d.x);
     }
     
     static void change(Data d){		//참조형 매개변수
     	d.x = 1000;
        System.out.println("change() x : "+d.x);
}

change() 이전 출력값은 10이고, change( ) 이후 출력되는 모든 값이 "1000"이다. 

change( )의 매개변수가 type이 기본형이 아니기 때문에 참조형 매개변수~! 

 

 main( )이 change( )에 객체 d에 대한 "리모콘"을 줬다고 생각하면 조금.. 쉽다!

 

참조형 반환타입

class Data{
	int x;
}

class example{
	public static void main(String[] args){
    	Data d = new Data();	//객체 생성
        d.x = 10;
        
        Data d2 = copy(d);
        System.out.println("d.x = "+ d.x);
        System.out.println("d2.x = "+d2.x); 
     }
     
     static Data copy(Data d){		//참조형 매개변수
     	Data tmp = new Data(); //새로운 객체 tmp 생성
        
        tmp.x = d.x //d.x의 값을 tmp.x에 복사
        
        return tmp;	//복사한 객체의 주소 반환
     }
}

출력값은 d.x와 d2.x 모두 10이다.

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > Programming Language' 카테고리의 다른 글

[Python] 입출력  (0) 2021.07.17
[JAVA] static 메서드와 인스턴스 메서드  (0) 2021.07.16
[JAVA] 호출 스택(call stack)  (0) 2021.07.16
[JAVA] 메서드와 return문  (0) 2021.07.15
[JAVA] 자바에서의 변수 종류  (0) 2021.07.13
'Computer Science/Programming Language' 카테고리의 다른 글
  • [Python] 입출력
  • [JAVA] static 메서드와 인스턴스 메서드
  • [JAVA] 호출 스택(call stack)
  • [JAVA] 메서드와 return문
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    런타임 에러
    LNK2001
    c++error
    leetcode
    cmd error
    mysql error
    오블완
    해시
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 기본형 매개변수와 참조형 매개변수, 참조형 반환타입
상단으로

티스토리툴바