안녕하세요! 오늘은 자바 프로그래밍에서 매우 중요한 개념인 'this' 키워드에 대해 알아보겠습니다.
'this'는 클래스의 인스턴스를 참조하는 데 사용되는 키워드로, 객체 지향 프로그래밍의 핵심 개념 중 하나입니다.
실생활 예시를 통해 'this'를 자세하고 쉽게 이해해봅시다.
1. 'this' 란 무엇인가?
자바에서 'this'는 현재 인스턴스를 참조하는 키워드입니다.
'this'를 사용하면 인스턴스의 속성이나 메소드에 접근할 수 있습니다.
'this'는 주로 생성자나 메소드 내에서 사용되며, 주로 다음과 같은 상황에서 사용됩니다.
- 인스턴스 변수와 매개변수의 이름이 같을 때 구분 목적으로 사용
- 메소드 내에서 현재 인스턴스를 참조하거나 전달할 때 사용
- 현재 인스턴스의 다른 생성자를 호출할 때 사용
예시: 학생 클래스와 'this' 키워드 사용하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class Student {
// 속성 (멤버 변수)
String name;
int age;
String major;
// 생성자
public Student(String name, int age, String major) {
this.name = name;
this.age = age;
this.major = major;
}
// 행동 (메소드)
void introduce() {
System.out.println("Hi, my name is " + this.name + ", I'm " + this.age + " years old and my major is " + this.major + ".");
}
}
|
cs |
위의 예시에서는 학생을 나타내는 Student 클래스를 생성했습니다. 이 클래스는 학생의 이름(name), 나이(age), 전공(major) 등의 속성을 갖고 있으며, 학생을 소개하는(introduce) 행동을 정의하고 있습니다. 또한 생성자를 사용하여 인스턴스 생성 시 속성을 초기화하도록 설정했습니다. 생성자와 메소드에서 'this' 키워드를 사용하여 인스턴스의 속성에 접근하였습니다.
2. 'this' 사용 예시
예시 1: 인스턴스 변수와 매개변수 이름 구분하기
1
2
3
4
5
6
7
|
public class Circle {
double radius;
public Circle(double radius) {
this.radius = radius;
}
}
|
cs |
위의 예시에서는 Circle 클래스를 생성하고, 생성자를 사용하여 인스턴스 변수와 매개변수 이름을 구분하기 위해 'this'를 사용했습니다.
예시 2: 현재 인스턴스를 참조하거나 전달하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class Employee {
String name;
public Employee(String name) {
this.name = name;
}
public void printEmployeeInfo() {
printInfo(this);
}
public void printInfo(Employee employee) {
System.out.println("Employee name: " + employee.name);
}
}
public class Main {
public static void main(String[] args) {
Employee employee1 = new Employee("John");
employee1.printEmployeeInfo();
}
}
|
cs |
위의 예시에서는 'Employee' 클래스를 생성하고, 'printEmployeeInfo()' 메소드에서 현재 인스턴스를 'printInfo()' 메소드에 전달하기 위해 'this'를 사용했습니다. 'printInfo()' 메소드는 전달된 인스턴스의 'name' 속성을 출력합니다. 이렇게 'this'를 사용하면 메소드 내에서 현재 인스턴스를 참조하거나 다른 메소드에 전달할 수 있습니다.
3.생성자에서 'this' 사용하기
예시 3: 생성자 오버로딩에서 현재 인스턴스의 다른 생성자 호출하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
public class Rectangle {
int width;
int height;
public Rectangle() {
this(0, 0);
}
public Rectangle(int width) {
this(width, 0);
}
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
}
public class Main {
public static void main(String[] args) {
Rectangle rect1 = new Rectangle();
Rectangle rect2 = new Rectangle(5);
Rectangle rect3 = new Rectangle(5, 10);
}
}
|
cs |
위의 예시에서는 'Rectangle' 클래스를 생성하고, 생성자 오버로딩을 사용하여 다양한 방법으로 속성을 초기화할 수 있도록 하였습니다. 각 생성자에서 'this' 키워드를 사용하여 현재 인스턴스의 다른 생성자를 호출할 수 있습니다. 이렇게 'this'를 사용하면 생성자 간 코드 중복을 줄이고, 코드 유지 보수를 쉽게 할 수 있습니다.
이상으로 자바의 'this' 키워드에 대한 설명을 마칩니다.
'this'는 자바 프로그래밍에서 중요한 개념이므로 이를 이해하고 활용하면 객체 지향 프로그래밍 능력을 향상시킬 수 있습니다.
'[JAVA] > ┃ⓑ KEYWORDS' 카테고리의 다른 글
[JAVA] 상속 (Inheritance) (0) | 2023.03.19 |
---|---|
[JAVA] 캡슐화(Encapsulation) (0) | 2023.03.18 |
[JAVA] 생성자(Constructor) (0) | 2023.03.18 |
[JAVA] 인스턴스 (Instance) (0) | 2023.03.18 |
[JAVA] 메서드(method) (0) | 2023.03.18 |