Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 상속
- 깃허브
- 컬렉션프레임워크
- jcenter
- 서버
- 인스턴스
- 자바
- Oracle
- 카카오코딩테스트
- 코딩
- 오라클 성능고도화
- socket
- 생성자
- 클라이언트
- SQLP
- Swing
- JavaScript
- mavenCentral
- java
- SQL
- springboot
- db버퍼캐시
- 클래스
- 친절한 sql튜닝
- 오라클
- 메소드
- Spring
- 바인드변수
- 멀티쓰레드
Archives
- Today
- Total
프리 정보 컨텐츠
자바 생성자와 this의 개념 정리 본문
반응형
생성자
인스턴스가 생성되는 시점에 파일을 지정할 수밖에 없는 조건을 만들어준다
클래스를 사용하는 사람이 대상이 되는 파일을 지정하는 것을 까먹지 않을 수 있으며,
인스턴스가 생성될 때 반드시 처리해야 될 작업을 초기 값 또는 실행 되어야하는 작업을 할 때 생성자를 사용한다.
생성자를 사용할 때는 클래스의 이름과 똑같은 메소드를 정의한다.
class Print {
public String delimiter = "";
public Print(String delimiter) { // 생성자 생성
this.delimiter = delimiter;
}
public void A() {
System.out.println(this.delimiter);
System.out.println("A");
System.out.println("A");
}
}
this 는 클래스가 인스턴스화 되었을 때의 인스턴스를 가르키는 특수한 이름이다.
public class MyOOP {
public static void main(String[] args) {
Print p1 = new Print("----");
p1.A();
}
메인 클래스에서 프린트 메소드에 매개변수로써 delimiter("----") 를 받는다.
Print 클래스의 delimiter 인스턴스 변수는 this 를 통해서 인스턴스를 가르킨다.
즉, this 는 생성한 인스턴스를 가르키는 역할을 구분해준다.
생성자를 사용하지 않을 경우에는 아래 코드를 예시로 들 수있다.
public class MyOOP {
public static void main(String[] args) {
Print p1 = new Print();
p1.delimiter = "----";
p1.A();
}
생성자를 사용하는 이유와 사용했을 때의 차이점을 정확히 구분해두자.
한 가지의 예를 더 들어보자면,
Public class Car {
String name;
int number;
public Car(String n) { // 생성자 생성
name = name;
}
}
n 으로 지정한 경우에 코드의 가독성이 어려우므로 알아보기 쉽게 name 을 사용한다.
Public class Car {
String name;
int number;
public Car(String name) { // 생성자 생성
name = name; // name = name 형식이 되므로 this.name 사용
}
}
name = name 형식이 되므로 출력할 때에 컴파일 오류가 생긴다.
앞에 name 은 앞에 정의된 필드 name 으로 정의하고 싶으므로
매개변수와 구분짓는 name 을 사용해야한다.
이때, 정확한 name 을 구분짓기위해서 this.name 을 붙여준다.
this = 객체 자신을 참조하는 키워드
반응형
Comments