일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 | 29 | 30 |
Tags
- 디자인패턴
- 데이터베이스
- 디자인
- Spring
- java기초
- 패스트캠퍼스후기
- 자바
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 자바기초
- 리눅스
- linux
- 패캠챌린지
- String
- js
- 자바기본
- 패스트캠퍼스
- 스프링
- java
- javabasic
- DB
- 국비
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 재택근무
- 자바예제
- 자바연습문제
- DesignPattern
- 직장인자기계발
- 웹
- 직장인인강
- ncs
Archives
- Today
- Total
FIF's 코딩팩토리
패스트캠퍼스 챌린지 22일차 본문
반응형
객체 자신을 가리키는 this
생성자나 메서드에서 this. 이런식으로 사용했다. 그렇다면 thsi란 무엇인가?
this는 c++등등 다른 프로그래밍 언어에서도 나오는 키워드이다.
이 키워드는 상속과 관련있는 super키워드와 연관이 있다.
new로 생성된 인스턴스는 heap 메모리에 생긴다고 했다.
클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드이다.
this 키워드는 다음과 같은 경우에 사용된다.
1. 자신의 주소 참조값 자체를 반환할 때도 this를 사용한다.
아래 코드를 보자. main 메서드에는 args와 day라는 변수가 있다.
이 때 day는 인스턴스로 heap 메모리에 생긴다.
그리고 setYear() 메서드를 호출하면서 그 메서드를 보면 this키워드를 볼 수 있다. 이 this키워드도 바로 heap메모리에 생긴다.
public static void main(String[] args){
BirthDay day = new BirthDay();
day.setYear(2000);
}
public void setYear (int year) {
this.year = year;
}
아래 코드를 2개의 생성자에서 this 키워드를 사용하여 값을 넣음을 볼 수 있다.
그리고 main메서드에서 콘솔에 출력해보면 p와 p2의 주소값이 같음을 볼 수 있다.
public class Person {
String name;
int age;
public Person() {
this("이름없음", 1);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person getPerson() {
return this;
}
public static void main(String[] args)
{
Person p = new Person();
p.name = "James";
p.age = 37;
Person p2 = p.getPerson();
System.out.println(p);
System.out.println(p2);
}
}
2. 하나의 생성자에서 다른 생성자를 호출할 때 사용한다.
클래스에 생성자가 여러개인 경우, this 를 이용하여 생성자에서 다른 생성자를 호출할 수 있다.
생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() satemnet이전에 다른 statement를 쓸 수 없다.
public class Person {
String name;
int age;
public Person() {
this("이름없음", 1);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
반응형
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 24일차 (0) | 2022.02.16 |
---|---|
패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
패스트캠퍼스 챌린지 21일차 (0) | 2022.02.13 |
패스트캠퍼스 챌린지 20일차 (0) | 2022.02.12 |
패스트캠퍼스 챌린지 19일차 (0) | 2022.02.11 |
Comments