◎ Java/Java☕
[JAVA] 명시적 초기화(explicit initialization)와 초기화 블럭(initialization block) [변수를 초기화하는 방법]
[JAVA] 변수의 초기화란? [변수를 선언하고 처음으로 값을 저장하는 것] 1. 변수의 초기화란? 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라 필수적이기도, 선택이기도 하지만 가능하면 선언과 동시에 적절한 yermi.tistory.com 1. 변수를 초기화하는 방법 변수를 초기화 하는 방법에는 생성자 외에도 명시적 초기화, 초기화 블럭이 있다. 2. 명시적 초기화(explicit initalization) 변수를 선언과 동시에 초기화 하는 것을 명시적 초기화라고 한다. 명시적 초기화는 간단하고 명료하지만 복잡한 초기화에는 적합하지 않다. Class Car { int door = 4; // 기본형 변수의 초기화 Engine e = new Engin..
[JAVA] 변수의 초기화란? [변수를 선언하고 처음으로 값을 저장하는 것]
1. 변수의 초기화란? 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라 필수적이기도, 선택이기도 하지만 가능하면 선언과 동시에 적절한 값으로 초기화하는 것이 바람직하다. 자료형 기본값 boolean false char '\u0000' byte, short, int 0 long 0L float 0.0f double 0.0d 또는 0.0 참조형 변수 null 2. 멤버변수와 지역변수 초기화 멤버변수(클래스변수와 인스턴스변수)와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. → 멤버변수는 기본값으로 초기화를 해주기 때문! class InitTest { int x; // 인스턴스변수 int y = x; // 인스턴스변수 void method1..
[JAVA] this()와 this의 차이 [클래스 내에서 자신을 부르는 방법]
1. this() : 같은 클래스의 다른 생성자 호출 같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능하다. 단, 다음의 두 조건을 만족시켜야 한다. - 생성자의 이름으로 클래스이름 대신 this를 사용한다. - 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다. // 잘못된 생성자 생성 Car(String color) { door = 5; Car(color, "auto", 4); // 에러1. 생성자의 두 번째 줄에서 다른 생성자 호출 // 에러2. this(color, "auto", 4);로 사용해야 함 } // 제대로 된 생성자 생성 Car(String color) { this(color, "auto", 4); } 다른 생성자를 첫 줄..
[JAVA] 생성자(Constructor)란? [인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드]
1. 생성자(Constructor)란? 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 생성자의 특징은 아래와 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. * 모든 생성자가 리턴값이 없으므로 void를 생략할 수 있다. 생성자는 다음과 같이 정의한다. 클래스이름(타입 변수명, 타입 변수명, ...) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기화 코드를 적는다. } 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. class Card { Card() { // 매개변수가 없는 생성자 >> 기본 생성자 ... } Card(String k, int num) { // 매개변수가 있는..
[JAVA] 오버로딩(overloading)이란? [메서드 오버로딩, 같은 이름의 메서드들]
1. 오버로딩(overloading)이란? 메서드도 변수처럼 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나, 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)', 간단히는 '오버로딩(overloading)'이라고 한다. 2. 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 메개변수의 개수 또는 타입이 달라야 한다. * 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 3. 오버로딩의 예 : pri..