java
int i = 10; // 기본 자료형
String s = "ABCD"; // 객체 자료형
기본 자료형에는 변수 i에 잡힌 메모리 공간에 직접 데이터 10이 들어가게 되고
객체 자료형에는 "ABCD"는 다른 메모리 공간에 넣어놓고, 변수 s에 잡힌 메모리 공간에는 ABCD를 넣어놓았던 그 메모리 공간의 주소가 담기게 된다.
Tv t; // [설명 1]
t = new Tv(); // [설명 2]
[설명 1] : Tv 클래스 타입의 참조변수 t를 선언
→ 메모리에 참조변수 t를 위한 공간이 마련되었으나, 아직 인스턴스가 생성되지 않았으므로 참조변수로 아무 것도 할 수 없다.
[설명 2] : Tv 인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
→ 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성된다. 이때, 멤버변수는 각 자료형에 해당하는 기본값으로 초기화된다.
→ 이때, 참조형 변수는 null, 기본형 변수 중 boolean은 false, int는 0으로 초기화된다.
대입연산자(=)에 의해서 생성된 객체의 주소값이 참조변수 t에 저장된다. 이제는 참조변수 t를 통해 Tv인스턴스에 접근할 수 있다. 인스턴스를 다루기 위해선 참조변수가 반드시 필요하다.
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.
흔히 ‘파라미터’라고 불리며, 메소드에서 입력값을 받을 때 사용되는 변수.
인자(파라미터)값은 호출 시 메소드 입력부의 넣는 값이며 이 값은 매개변수에 복사되어 대입된다.
매개변수도 매소드 내에 선언된 것으로 간주하므로 지역변수이다.
public class test {
int iv; // 인스턴스 변수
static int cv ; // 클래스 변수
public void method() {
int iv; // 지역 변수
}
public void makeSum(int startVal, int endVal) { // 매개 변수
}
출처 : https://itmining.tistory.com/20
https://chung-develop.tistory.com/13
https://sleepyeyes.tistory.com/28
https://itmining.tistory.com/20
https://catch-me-java.tistory.com/16?category=438116
남궁성(2016), <자바의 정석>, pp.232-236