일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 문법
- commit
- 특징
- TortoiseSVN
- 자바
- 생성자
- SSL
- install
- git
- Class
- intellij 연동
- IntelliJ
- gradle
- svn
- IntelliJ IDEA Community
- Android Studio
- VCS
- java
- Checkout
- syntax
- Android
- Subversion
- 상속
- constructor
- sourcetree
- cherrypick
- 캡슐화
- terms
- Branch
- error
Archives
- Today
- Total
Jay's Developer Note
[JAVA] Class - 2(생성자) 본문
728x90
생성자(Constructor)
생성자(Constructor)는 클래스로 객체를 생성할 때 객체의 초기화하는 특수한 메소드이다.
메소드와 비슷한 모습을 하고 있지만 조금 다른 생성자의 특징을 알아보겠다.
특징
- new 연산자와 같이 사용된다.
- 이름에 걸맞게 객체 생성 시 사용된다.
- 주로 객체 생성 시 객체의 멤버 변수를 초기화하는 역할을 한다.
- 생성자의 네이밍은 클래스 이름과 동일해야만 한다.
- return 타입이 없다.
- 생성자가 없을 경우 JVM 이 자동으로 기본 생성자를 설정한다.
- 사용자 정의 생성자가 있을 경우 기본 생성자는 없어진다.(기본 생성자를 함께 쓰려면 직접 기본 생성자를 추가해야 한다.)
형식
[접근 제어자] 생성자명(매개 변수) {
// 코드
}
접근 제어자란 해당 변수, 메소드, 생성자, 클래스 등에 대한 접근 권한을 제어하는 문법이다.
대표적으로 public, private 등이 있다.
접근 제어자는 추후 상세하게 다시 알아보겠다.
사용방법
class ClassName {
private String stringVariable;
// 기본 생성자
public ClassName() { }
// stringVariable 값을 String 로 받아서 초기화하는 생성자
public ClassName(String stringVariable) {
// this 는 객체 자신을 의미하며 변수처럼 . 을 이용하여 변수, 메소드를 사용할 수 있음
this.stringVariable = stringVariable;
}
// stringVariable 값을 int 로 받아서 초기화하는 생성자
public ClassName(int stringVariable) {
// this() 를 사용하면 객체 자신을 호출하는 것이기 때문에 생성자를 호출함
this(String.valueOf(stringVariable));
}
}
생성자는 메소드와 비슷하기 때문에 마찬가지로 오버로딩이 가능하다.
this 란 것이 있는데 this 는 현재 객체 자신을 뜻한다.
그래서 this.변수, this.메소드, this() 등으로 사용할 수 있다. 그래서 생성자에서 매개 변수를 받아서 사용할 경우 this 가 없다면 받아온 매개 변수를 그대로 사용하는 격이 된다.
이를 방지하려면 매개 변수와 멤버 변수의 이름을 다르게 해 주거나 예제처럼 this 를 사용하면 된다.
728x90
'JAVA' 카테고리의 다른 글
[JAVA] Class - 4(메소드) (0) | 2022.03.13 |
---|---|
[JAVA] Class - 3(멤버 변수) (0) | 2022.03.11 |
[JAVA] Class - 1(클래스) (0) | 2022.02.24 |
[JAVA] Intellij 에서 JAVA 실행하기 (0) | 2022.02.18 |
[JAVA] 자바 언어 기본 문법 - 6(분기문) (0) | 2022.02.13 |