목록Java (181)
충분히 쌓여가는
멤버변수(iv, cv)는 자동 초기화됨 지역변수(lv)는 수동 초기화 해야됨 class InitTest{ int x; // iv int y = x; // iv void method1() { int; // lv int j = i; // 에러: 지역변수를 초기화하지 않았기 때문 } } 수정된 코드 class InitTest{ int x; // iv int y = x; // iv void method1() { int = 0 ; // lv, 어떤 값이든 넣어 초기화 시켜줌 int j = i; // 에러: 지역변수를 초기화하지 않았기 때문 } } 멤버변수(iv, cv)의 초기화 1. 명시적 초기화(=) (간단 초기화) 대입 연산자 = 사용 class Car { int door = 4; // 기본형 변수의 초기화 ..
생성자 this() 같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능하다 생성자에서 다른 생성자 호출 코드 중복제거하기 위해 생성자간 호출함 this에 괄호()가 없이 this만 있다면 참조변수이다, this() ≠ this 생성자 간의 호출이 가능한 조건 1. 생성자의 이름으로 클래스 이름 대신 this를 사용한다 2. 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출 가능하다 (생성자 내에서 초기화 작업도중에 다른 생성자를 호출하면, 호출된 다른 생성자 내에서도 멤버변수들의 값을 초기화할 것이고 다른 생성자를 호출하기 이전의 초기화 작업이 무의미해질 수 있기 때문) 두 가지 조건을 모두 만족하지 못한 코드 Car(String color) { doo..
생성자 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드(iv 초기화를 편하게 하기 위함) 인스턴스 생성시 수행할 작업(instance variable 초기화)에 사용 Time t = new Time(); t.hout = 12; t.minute = 34; t.second = 56; Time t = new Time(12, 34, 56); 생성자 조건 1. 이름이 클래스 이름과 같아야한다 2. return 값이 없다(void 없음) return값이 없는 경우 void를 붙이는데 생성자의 경우 항상 반환값이 없기 때문에 void 안붙임 3. 모든 클래스는 반드시 생성자를 가져야 한다 클래스이름(타입 변수명, 타입 변수명, ...) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기..
오버로딩 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 대표적인 예: println() void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다 2. 매개변수의 개수 또는 타입이 달라야 한다 3. 반환 타입은 영향없다 오버로딩 아님 이름이 같지만 타입이 같다, 그냥 메서드 중복정의 int add(int a, i..