◎ Java/Java☕

    [JAVA] 상속(inheritance)이란? [상속의 개념, 조상 클래스와 자손 클래스]

    1. 상속(inheritance)이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 통해, 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있다. → 클래스 이름 뒤에 상속받고자 하는 클래스의 이름과 그 앞에 키워드 'extends'만 붙여주면 된다. class Child extends Parent { // Child 클래스가 Parent 클래스를 상속 받았다. } 2. 조상 클래스와 자손 클래스 위의 두 클래스는 서로 상속 관계에 있다고 한다. 상속해주는 클래스를 '조상 클래스', 상속 받는 클래스를 '자손 클래스'라 한다. 조상 클래스 : 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 : 자식(child..

    [JAVA] 멤버변수의 초기화 시기와 순서 [클래스변수와 인스턴스변수의 초기화 순서]

    1. 멤버변수의 초기화 시기와 순서 클래스변수의 초기화 시점 : 클래스가 처음 로딩될 때 단 한 번 초기화 된다. 인스턴스변수의 초기화 시점 : 인스턴스가 생성될 때마다 각 인스턴스 별로 초기화가 이루어진다. 클래스변수의 초기화 순서 : 기본값 → 명시적초기화 → 클래스 초기화 블럭 인스턴스변수의 초기화 순서 : 기본값 → 명시적초기화 → 인스턴스 초기화 블럭 → 생성자 2. 멤버변수 초기화 순서 예시 class InitTest { // 명시적 초기화 static int cv = 1; int iv = 1; static { cv = 2; } // 클래스 초기화 블럭 { iv = 2; } // 인스턴스 초기화 블럭 // 생성자 InitTest() { iv = 3; } } 클래스변수 초기화(1 ~ 3) : 클..

    [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); } 다른 생성자를 첫 줄..