반응형
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 |
29 | 30 | 31 |
Tags
- 개발일지
- 미국유학
- java
- 개인 프로젝트 개발일지
- Java 스터디
- 자바 스터디
- 유학생대학생활
- 케네스로그
- 미국대학
- 만다라트프로젝트
- California State University Sacramento
- 해외유학
- 유학생 준비물
- 복수학위제도
- 미국유학생활
- 비전공자 git
- JVM아키텍처
- CSUS
- 자바
- 2+2
- F1학생비자
- jpa
- Kenneth Park
- i-20
- 미국유학생
- 부산외대
- 사이드프로젝트
- 파이데이아창의인재학과
- 미국대학생활
- 케네스
Archives
- Today
- Total
케네스로그
[Java] 객체의 생성, 인스턴스화, 생성자, this 키워드 본문
반응형
객체의 생성
new 키워드의 이해
new 키워드는 클래스의 인스턴스를 생성하기위해 사용된다.
String s = new String();
String name = "kenneth";
Person p = new Person();
인스턴스화(instantiate)는 새로운 객체를 위해 힙 영역의 메모리를 할당하고, 변수에 할당된 메모리주소(reference)를 반환한다.
- 런타임에 새로운 객체를 위해 힙 영역의 메모리를 할당한다
- 객체의 생성자가 실행된다
- 새로운 객체를 위해 힙 영역에 할당된 메모리 주소는 스택 영역의 변수에 저장된다.
new키워드를 사용하여 클래스의 객체를 생성한다.
String s = new String();
- 메모리가 할당되며, 할당된 메모리의 주소(reference)가 반환된다.
- 필드가 기본값으로 초기화된다.
- super 또는 this를 포함한 생성자가 호출된다.
생성자의 정의
public class Car{
String owner;
public Car() {} // default constructor
public Car(String name) {
this.owner = name;
}
}
생성자(constructor)는 아래와 같은 특징을 지닌다.
- class의 이름과 동일한 메소드 형식이지만, 리턴값이 없다.
- 객체가 선언되어 초기화되고 메모리에 할당될때 실행된다
- 오버로드(overload)는 가능하지만, 오버라이드(override)는 불가
- 생성자를 정의하지 않으면, 컴파일러가 자동으로 default constructor를 생성
- 메소드처럼 생겼지만, 메소드는 아니다.
this 키워드
this는 인스턴스(객체) 자신을 참조한다. this 키워드를 통해 자신의 변수와 메소드에 접근할 수 있다. 또한, this를 통해 클래스 멤버변수와 메소드 내의 파라미터를 구분할 수 있게 된다.
this()는 해당 클래스 생성자를 호출하여, 생성자를 재사용하는데에 사용될 수 있다.(생성자 체이닝)
public class Test {
private int number;
private String name;
public Test() {
this.name = "default";
}
public Test() {
this(); // name="default"
this.number = 3;
//this(); 이것은 컴파일에러
}
}
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 메소드 디스패치 (0) | 2022.02.16 |
---|---|
[Java] 상속, super() (1) | 2022.02.15 |
[Java] 메소드, 접근제어자 (0) | 2022.02.08 |
[Java] 클래스 (0) | 2022.02.08 |
[Java] 관계 연산자, 균등 연산자 (0) | 2022.02.05 |