2024.04.04 - [IT] - Java / Class (1)
<Backend> Java / Class (1)
Class 를 어느 정도 진행함에 따라 공부를 병행하려 합니다. JAVA 기초 학습 React를 사용하며 심화학습 JAVA 기반 학습 순으로 학습을 진행하겠습니다. 이번에는 JAVA / 객체 지향 프로그래밍의 핵심인
rezerocodinglife.tistory.com
지난 글에 이어 Class에 대해 알아보겠습니다.
이번에는
---- Class (2) ----
- this
- 메서드 (Method)
---- Class (3) ----
- 접근 제한자 (Access Modifier)
- 변수의 타입
를 알아보도록 하겠습니다.
파이팅!
1. This
Java에서 this 키워드는 현재 인스턴스를 가리키는 참조입니다.
클래스의 메서드 내에서 현재 인스턴스를 가리키거나 인스턴스 변수에 접근할 때 사용됩니다.
this를 사용하여 메서드나 생성자에서 인스턴스 변수를 명시적으로 참조할 수 있습니다.
* 변수의 가려짐을 방지하고 명확한 참조를 제공합니다.
public class Example {
private int number;
public Example(int number) {
this.number = number; // this를 사용하여 매개변수와 인스턴스 변수 구분
}
public void setNumber(int number) {
this.number = number; // this를 사용하여 매개변수와 인스턴스 변수 구분
}
public void anotherMethod() {
// 다른 메서드 호출 시 this 생략 가능
setNumber(10); // this.setNumber(10);과 동일
}
public Example getSelf() {
return this; // 현재 인스턴스 반환
}
}
- 생성자에서 매개변수와 인스턴스 변수의 이름이 같은 경우
- 메서드 내에서 현재 인스턴스를 다른 메서드에 전달하거나, 현재 인스턴스를 반환하는 경우
- 같은 클래스 내에 다른 메서드를 호출하는 경우
- etc
2. 메서드 (Method)
메서드(Method)는 특정 작업을 수행하는 일련의 문장들을 하나로 묶는 것입니다.
메서드는 클래스 내부에서 정의되며, 객체의 상태를 변경하거나 특정한 동작을 수행하는 데 사용됩니다.
메서드는 클래스의 멤버로서, 객체를 통해 호출됩니다.
* 메서드 사용 이유
- 높은 재사용성
- 중복된 코드 제거
- 프로그램의 구조화
메서드의 선언과 구현
메서드는 크게 "선언부"와 "구현부"로 이루어져 있습니다.
메서드 선언부
public class Example {
public void greet(String name) { // 메서드의 선언부
// 메서드의 구현부
System.out.println("안녕하세요, " + name + "님!");
}
}
메서드의 선언부는 반환타입 메서드이름 (타입 변수명, 타입 변수명,...) 형식으로 구성되어 있습니다.
메서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고 작업의 결과로 어떤 타입의 값을 반환하는지에 대한 정보를 제공합니다.
메서드 구현부
메서드의 선언부 다음에 오는 {} 내부를 "메서드의 구현부"라고 합니다.
메서드의 호출
메서드 호출은 다음과 같은 형식을 가집니다.
반환값의타입 변수명 = 객체명.메서드명(매개변수);
- 반환값의 타입 : 메서드가 반환하는 값의 데이터 타입
- 객체명 : 메서드를 포함하고 있는 객체(instance)의 이름 (메서드가 static인 경우 객체명 대신 클래스명을 사용)
- 메서드명 : 호출하고자 하는 메서드의 이름
- 매개변수 : 메서드를 호출할 때 전달되는 값 (필요에 따라 생략 가능)
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
public class Main {
public static void main(String[] args) {
Calculator myCalculator = new Calculator(); // Calculator 클래스의 객체 생성
int result = myCalculator.add(3, 5); // add 메서드 호출
System.out.println(result); // 결과 출력
}
}
- 위 예시 코드에서 myCalculator.add(3,5)는 Calculator 클래스의 add메서드를 호출하여 3과 5를 인자로 전달합니다.
- 그 결과를 변수 result에 저장합니다.
- result를 출력합니다.
Parameter passing과 메모리 동작
- Parameter Passing
- Execution of a method
- actual parameter evaluate
- 호출한 메소드와 알맞은 시그니처를 가진 메소드를 찾음
- The executionof the calling program unit is suspended
- Formal parameter에 메모리 할당
- formal parameter가 actual parameter의 value로 초기화
- 호출된 메서드가 실행됨. (위에서 아래로)
- 호출된 메서드의 실행이 종료됨
- formal parameter, local variables 에 대한 메모리가 해제되고 모든 정보가 손실됨
- 호출 유닛의 실행은 메서드 호출에 의해 일시 중단된 지점부터 계속됨
'Backend' 카테고리의 다른 글
<Backend> Java / 상속 (0) | 2024.04.05 |
---|---|
<Backend> Java / Class (3) 접근제한자와 변수의 타입 (0) | 2024.04.04 |
<Backend> Java / Class (1) 클래스와 생성자 (0) | 2024.04.04 |
<Backend> Java / Thread (2) (0) | 2023.11.10 |
<Backend> Java / Thread (1) (2) | 2023.11.09 |