728x90
[기본 개념] 1 | (4.1) 생성자1> 생성자란?2> 기본 생성자(default constructor)3> 매개변수가 있는 생성자4> 생성자에서 다른 생성자 호출하기 - this( ), this5> 생성자를 이용한 인스턴스의 복사1. 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 클래스 내에 선언되며, 리턴값이 없다. 그렇다고 해서 void를 사용하지는 않고 아무것도 적지 않는다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다.2. 생성자는 리턴 값이 없다. 생성자는 다음과 같이 정의하며, 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. 클래스이름(타입 변수명, 타입 변수명, . . . ) { // ..
[기본 개념] 1 | (3.1) 오버로딩1> 오버로딩이란?2> 오버로딩의 조건3> 오버로딩의 예4> 오버로딩의 장점5> 가변인자(varargs)와 오버로딩1. 오버로딩이란? 메서드도 변수와 마찬가지로 각기 다른 이름을 가져야 하는데 자바에서는 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '오버로딩(overloading)'이라고 한다.2. 오버로딩의 조건 오버로딩이 성립하기 위한 조건은 다음과 같다. 1. 메서드의 이름이 같아야 한다.2. 매개변수의 개수 또는 타입이 달라야 한다. 매개변수가 다르면 서로 구별될 수 있기에 오버로딩이 가능하며 위 조건을 만족시키지 못하는 메서드는 중복 정의로 에러가..
[기본 개념] 1 | (2.6) 클래스/인스턴스 메서드, 클래스/인스턴스 멤버간 호출1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5 메서드의 호출6 return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11> 클래스 메서드와 인스턴스 메서드12> 클래스 멤버와 인스턴스 멤버간의 호출11. 클래스 메서드와 인스턴스 메서드 변수에서 그랬듯이, 메서드 앞에 static이 붙어 있으면 클래스메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 클래스 메서드도 클래스변수처럼, 객체를 생성하지 않고도 '클래스이름.메서드이름(매개변수)'와 같은 식으로 호출할 수 있다. 인스턴스 메서드는 메서드의 작업을 수행하는데 인스턴스 변수..
[기본 개념] 1 | (2.5) 참조형 반환타입, 재귀호출1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5 메서드의 호출6 return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9> 참조형 반환타입10> 재귀호출11 클래스 메서드와 인스턴스 메서드12 클래스 멤버와 인스턴스 멤버간의 호출9. 참조형 반환타입 매개변수뿐만 아니라 참조형도 반환타입이 될 수 있다. 모든 참조형 타입의 값은 '객체의 주소'이므로 정수값이 반환되는 것일 뿐 특별한 것은 없다. 예제/ReferenceReturnEx.javaclass Data { int x; }class ReferenceReturnEx { public static void main(String[] a..
[기본 개념] 1 | (2.4) JVM 메모리, 기본형/참조형 매개변수1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5 메서드의 호출6 return문7> JVM의 메모리구조8> 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11 클래스 메서드와 인스턴스 메서드12 클래스 멤버와 인스턴스 멤버간의 호출7. JVM의 메모리 구조 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그중 3가지 주요 영역(method area, call stack, heap)에 대해 알아보자. Method Area클래스 데이터(cv) 클래스 데이터Call..
[기본 개념] 1 | (2.3) 메서드 호출, RETURN 문1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5> 메서드의 호출6> return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11 클래스 메서드와 인스턴스 메서드12 클래스 멤버와 인스턴스 멤버간의 호출5. 메서드의 호출 메서드를 호출하는 방법은 다음과 같다. 메서드이름(값1, 값2, ...) ; // 메서드를 호출하는 방법 print99danAll ( ) ; // void print99danAll ( )을 호출int result = add(3, 5) ; // int add(int x, int y)를 호출하고, 결과를 result에 ..
[기본 개념] 1 | (2.2) 메서드 선언/구현1 선언 위치에 따른 변수의 종류2 클래스변수와 인스턴스변수3> 메서드4> 메서드의 선언과 구현5 메서드의 호출6 return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11 클래스 메서드와 인스턴스 메서드12 클래스 멤버와 인스턴스 멤버간의 호출3. 메서드 메서드가 작업을 수행하는데 필요한 값만 넣고 원하는 결과를 얻으면 될 뿐, 메서드가 내부적으로 어떤 과정을 거쳐 결과를 만들어내는지는 전혀 몰라도 된다. 즉, 메서드에 입력과 출력만 알면 된다. 메서드를 사용하는 이유1. 높은 재사용성(reusability) 이미 Java API에서 제공하는 메서드들을 사용하면서 경험한 것처럼 한번 만들어 놓은 메서드는 몇..
[기본 개념] 1 | (2.1) 선언 위치에 따른 변수 종류, 클래스/인스턴스 변수1> 선언 위치에 따른 변수의 종류2> 클래스변수와 인스턴스변수3 메서드4 메서드의 선언과 구현5 메서드의 호출6 return문7 JVM의 메모리구조8 기본형 매개변수와 참조형 매개변수9 참조형 반환타입10 재귀호출11 클래스 메서드와 인스턴스 메서드12 클래스 멤버와 인스턴스 멤버간의 호출1. 선언위치에 따른 변수의 종류 우선 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가있다. 변수의 종류는 선언된 위치에 따라 결정되므로 어느 영역에 선언되었는지를 확인해야 한다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수이다. publi..