일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BAEKJOON
- Android Studio
- Firebase
- 플러터
- xocde
- 보호와 보안
- swift baekjoon
- 자바
- 링크드리스트
- android java
- 커스텀팝업
- label
- Android
- 예외처리
- IOS
- 백준
- C언어
- deeplink
- 안드로이드스튜디오
- storyboard
- customPopup
- Xcode
- 안드로이드
- 준코딩
- FLUTTER
- 연결리스트
- text to speech
- 버블정렬
- TextField
- Swift
- Today
- Total
준코딩
객체지향언어-1 본문
생성자
-인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 이다.
생성자 조건
1.생성자의 이름은 클래스의 이름과 같아야 한다.
2.생성자는 리턴 값이 없다.
기본 생성자
-지금까지는 생성자를 모르고도 프로그래밍을 해 왔지만, 사실 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
그러나 지금까지 생성자를 정의하지 않고도 인스턴스를 생성할 수 있었던 이유는 컴파일러가 제공하는 기본 생성자가 있기 때문이다.
컴파일러가 자동으로 추가해주는 기본 생성자는 매개변수도 없고 아무런 내용도 없는 아주 간단한 것이다.
생성자에서 다른 생성자 호출하기 - this(), this
같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능하다. 단, 다음의 두 조건을 만족시켜야 한다.
1.생성자의 이름으로 클래스이름 대신 this를 사용한다
2.한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
인스턴스를 생성할 때는 다음의 2가지 사항을 결정해야한다.
1.클래스 - 어떤 클래스의 인스턴스를 생성할 것인가?
2.생성자 - 선택한 클래스의 어떤 생성자로 인스턴스를 생성할 것인가?
변수의 초기화
-변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화' 라고한다. 변수의 초기화는 경우에 따라서 필수적이기도 하고 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다.
멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 되지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다.
-----------------------------------------------------------------------------------------------------------------------
class InitTest {
int x; /인스턴스 변수
int y = x; /인스턴스 변수
void method1 () {
int i; /지역변수
int j = i; /컴파일 에러! 지역변수를 초기화하지 않고 사용함.
}
}
------------------------------------------------------------------------------------------------------------------------
각 자료형의 기본 값
자료형 기본값
boolean false
char '\u0000'
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d , 0.0
참조형 변수 null
멤버변수 (클래스변수와 인스턴스변수) 와 배열의 초기화는 선택적이지만, 지역변수는 반드시 사용전에 초기화 해주어야한다.
멤버변수의 초기화 방법
1. 명시적 초기화
2. 생성자
3. 초기화 블럭
-인스턴스 초기화 블럭 : 인스턴스변수를 초기화 하는데 사용
*클래스 초기화 블럭 : 클래스변수를 초기화 하는데 사용
명시적 초기화
:변수를 선언과 동시에 초기화하는 것을 명시적 초기화라고 한다. 가장 기본적이면서도 간단한 초기화 방법이므로 여러 초기화 방법 중에서 가장 우선적으로 고려되어야 한다.
멤버변수의 초기화 시기와 순서
클래스변수의 초기화시점: 클래스가 처음 로딩될 때 단 한번 초기화 된다.
인스턴스변수의 초기화 시점: 인스턴스가 생성될 때마다 각 인스턴스별로 초기화가 이루어진다.
클래스변수의 초기화 순서: 기본값 -> 명시적 초기화 -> 클래스 초기화 블럭
인스턴스변수의 초기화 순서 : 기본값 -> 명시적초기화 -> 인스턴스 초기화 블럭 -> 생성자
'프로그래밍 > 자바' 카테고리의 다른 글
BubbleSort 버블정렬 (0) | 2018.12.10 |
---|---|
예외처리 (0) | 2018.11.29 |
객체지향 프로그래밍-2 (0) | 2018.11.29 |
객체지향 프로그래밍 (0) | 2018.11.27 |
객제지향언어 (0) | 2018.11.26 |