💡 생성자(Constructor) 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 (인스턴스 초기화 = 인스턴스 변수 초기화) 🔸 선언 생성자를 선언할 때는 아래의 조건을 지켜야 한다. 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자는 반환값이 없다. 생성자도 메서드의 일종이므로 클래스 내에 선언해야 하며, 구조도 일반적인 메서드와 유사하다. 다만 항상 반환값이 없기 때문에 선언부에서 반환타입(void)을 생략할 수 있다. 🤔 생성자도 오버로딩할 수 있을까? 당연히 생성자도 메서드이기 때문에 오버로딩할 수 있다. 매개변수가 있는 생성자, 매개변수가 없는 생성자 등 필요에 따라 메서드 시그니처를 달리하여 한 클래스에 여러 생성자를 정의할 수 있다. 🔸 생성자가 인스턴스를 '생성'하는가? 생성자는..
Study/Java
💡 오버로딩이란? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 같은 일을 하지만 매개변수가 다른 메서드가 필요할 때 오버로딩을 구현한다. 오버로딩을 하기 위해서는 메서드 이름은 같고 매개변수 타입이나 개수(또는 순서)가 달라야 한다. 🤔 오버로딩이 되지 않는 경우 매개변수의 타입과 개수가 모두 같고 매개변수의 이름만 다른 경우 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } 매개변수의 타입과 개수가 모두 같고 반환 타입만 다른 경우 int add(int x, int y) { return x+y; } long add(int x, int y) { return (long)(x+y); } 두 경우 메서드를 중복..
💡 변수 class Variables{ int iv; // 인스턴스변수 static int cv; //클래스변수 void method(){ // 메서드 int lv = 0; // 지역변수 } } 변수의 종류 선언 위치 생성 시기 특징 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 static, 전역변수의 성격 인스턴스 변수 인스턴스가 생성되었을 때 인스턴스 생성이 선행되어야 함 지역 변수 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 선언된 블럭을 벗어나면 소멸됨 📍 멤버 변수(Member Variable) 멤버 변수는 클래스의 속성을 나타낸다. 멤버변수 이외의 변수는 모두 지역 변수(local variable)이다. 멤버 변수는 클래스 변수와 인스턴..
💡 클래스의 정의 클래스의 객체지향적 관점과 프로그래밍적 관점에서 아래와 같이 정의할 수 있다. 🔸 객체지향적 관점 객체를 생성하기 위한 틀 클래스는 속성과 기능으로 구성되어 있다. 아래 표와 같이 속성과 기능을 다른 이름으로 표현하기도 한다. 구성 요소 다른 이름 속성 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state) 기능 메서드(method), 함수(function), 행위(behavior) 클래스와 객체를 설명할 때 흔히 붕어빵 틀과 붕어빵으로 비유한다. 붕어빵 틀 하나로 여러 개의 붕어빵을 만들 수 있다. 각각의 붕어빵을 만들 때 팥을 넣을 수도 있고 슈크림을 넣을 수도 있다. 어떤 붕어빵은 좀 탈 수도 있고 덜 익은 붕어빵이 나올 수도 있다..