👩💻 JAVA 기초 - 변수 & 상수, 복사호출 & 참조호출, 상속
*이 글은 글쓴이가 몰랐거나 헷갈렸던 부분만 따로 정리한 포스팅 입니다.*
(아는 지식들은 정리하지않았음)
📌 JAVA 기초 문법
✏️ 변수와 상수에 대해 알아보자
1️⃣변수
: 변할 수 있는 값
| 타입 | 타입 명 | 바이트 | |
| 정수 타입 | byte | 1 byte | |
| 정수 타입 | short | 2 byte | |
| 정수 타입 | int | 4 byte | |
| 정수 타입 | long | 8 byte | |
| 실수 타입 | float | 4 byte | |
| 실수 타입 | double | 8 byte | |
| 논리 타입 | boolean | 1비트 혹은 ture, flase |
|
| 문자 타입 | char | 2 byte |
2️⃣상수
:고정 되어 있는 값
상수 표현 방법 "final"
final double PI = 3.141592
final int NUM = 1000
📌 복사호출(call by value) & 참조호출(call by reference)
✏️ 복사호출이란?
:복사 호출에 대해 알아보자

우선 그림 (a)와 (b)를 봐보자.
twofold(x)를 호출할 때, x의 값을 int a에 복사하는 것 이기 떄문에 a에 어떠한 값을 대입해도 x의 값은 변하지않는다.
b의 그림에서 x라는 변수에 "5"라는 값을 저장한 뒤, twofold를 호출하며 인자 값으로 x를 넣어주었다.
a의 그림의 파라미터 int a 에 5의 값이 들어가게 되고, 2 * 5 라는 연산을 하게되어 a의 변수에는 10이라는 값이 들어가게 되지만 이후 값을 반환해주는 동작이 없다. 이러면 x의 값은 변할까 ? 정답은 "변하지않는다"이다.
이어서 그림 (c)와 (d)를 봐보자.
똑같이 twofold(x)를 호출하여 인자로 x의 값인 5를 복사하여 int a에 집어넣었을 때, twofold 메서드 내에서
a = 2* a 라는 식으로 a에 똑같이 10을 대입해주었고, 이후 10이라는 값이 담긴 a를 return 해주었다.
반환 값으로 10을 주었으니 그림 (d)의 x에 값을 대입하는 "x ="으로 인해서 x = 10이 되는 것과 같다.
✏️ 참조호출이란?
:참조 호출에 대해 알아보자

위의 복사 호출은 말 그대로 "복사"를 하는 것 처럼, 참조호출 또한 말 그대로 "참조"를 하는 것 이다.
int[] A = new int[10]; 으로 인해 사이즈가 10인 이름 A 배열이 생성되었다.
배열 A의 index 5의 값에 "7"을 대입시키고 int라는 변수 k에 5를 대입하여 sampleAccess의 인자로 각각 넣어주었다.
이때 인자 배열 A는 sampleAccess 메서드의 파라미터에서 int B[]라는 배열에 "참조"되는 것 이다.
변수와 다르게 배열은 메모리 상의 위치인 "주소"이라는 게 존재하는데, B배열은 A배열을 똑같이 복사한 배열을 만드는 것이 아닌, 주소 값을 받게되어 A배열과 똑같은 주소를 가르키게 된다. 때문에 B[n] = 8 라고 대입할 시 바로 A배열의 n번째 index의 값이 8로 변하게 된다.
📌 상속(inheritance)
✏️ 상속이란?
:기존 클래스의 변수와 메소드를 물려 받아 새로운 클래스를 구성하는 것
✏️ super()
:상속을 하는 클래스를 Super클래스라고하고, 상속을 받는 클래스를 SubClass라고 한다.
super()를 호출함으로써 B의(Super클래스의) 생성자를 불러오는 것 이다.
✏️ super.A()
public class A extends B{
private boolean state;
//생성자
public A(){
super();
state = false;
}
public void get(int i){
return i++;
}
public void top(){
return super.get(1);
}
}
top메서드는 get메서드를 호출하고있는데 앞에 super.이 붙어있다. 이건 무엇을 의미할까?
subClass에도 get이라는 메서드가 존재하지만, 앞에 super.이 붙게되면 자신이 상속받은 클래스. 즉 B의 클래스에 있는 get 메서드를 호출하는 것 이다.
'코딩테스트 > 자료구조' 카테고리의 다른 글
| [자료구조] 재귀(Recursion) (0) | 2025.01.26 |
|---|---|
| [자료구조] 스택(Stack) (1) | 2024.11.17 |