◎ Java/Java☕

    [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..

    [JAVA] 클래스 메서드와 인스턴스 메서드 [클래스 메서드 및 클래스 변수의 특징]

    [JAVA] 선언위치에 따른 변수의 종류 [인스턴스변수, 클래스변수, 지역변수] - 선언위치에 따른 변수의 종류 변수의 종류를 결정짓는 요소는 '변수의 선언된 위치'이다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, yermi.tistory.com 1. 클래스 메서드와 인스턴스 메서드 변수에서 그랬던 것과 같이, 메서드 앞에 static이 붙어 있으면 클래스 메서드이고, 붙어있지 않으면 인스턴스 메서드이다. → 클래스 메서드는 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'로 호출이 가능하다. → 인스턴스 메서드는 반드시 객체를 생성해야만 호출이 가능하다. 2. 클래스 메서드 및 클래스 변수의 특징 1) 클래스를 설계할 때, 멤버변수 ..

    [JAVA] 재귀호출(recursive call)이란? [메서드 내부에서 메서드 자신을 다시 호출]

    1. 재귀호출(recursive call)이란? 메서드의 내부에서 메서드 자신을 다시 호출하는 것을 '재귀호출(recursive call)'이라 한다. → 재귀호출을 하는 메서드를 '재귀 메서드'라 한다. void method() { method(); // 재귀호출. 메서드 자신을 호출한다. } 메서드 입장에서는 자기 자신을 호출하는 것과 다른 메서드를 호출하는 것은 차이가 없다. why? 메서드는 복사된 값으로 작업을 하기 때문! [값에 의한 호출(call by value)] 그러나, 위의 코드처럼 재귀호출 뿐이면 무한반복에 빠지게 된다. 따라서 재귀호출에는 조건문이 필수적으로 붙게 된다. void method(int n) { if(n == 0) { return; // n의 값이 0일 때, 메서드를 종..

    [JAVA] 참조형 반환타입이란? [메서드가 객체의 주소를 반환]

    - 참조형 반환타입이란? 메서드의 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있다. 반환타입이 참조형이라는 것은 반환하는 값이 '객체의 주소'라는 것! static Data copy(Data d) { Data tmp = new Data(); // 새로운 객체 tmp를 생성한다. tmp.x = d.x; // d.x의 값을 tmp.x에 복사한다. return tmp; // 복사한 객체의 주소를 반환한다. } 이 메서드의 반환타입이 'Data'이므로, return 값의 타입은 'Data' 타입의 참조변수여야 한다. 예시로, Data d2 = copy(d)의 실행과정은 아래와 같다. copy 메서드를 호출하면 참조변수 d의 값이 매개변수 d에 복사 새로운 객체를 생성한 다음 d.x에 저장된 값을 tmp.x..