반응형
생성자 ( Constructor ) 생성자는 new 연산자를 통해 인스턴스가 생성될 때 호출되고 제일 먼저 실행되는 "인스턴스 초기화 메서드" 입니다. 어떻게 보면 메서드와 비슷해보이지만 생성자는 단순히 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드입니다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값 (return)이 없다는 점이 다릅니다. 그렇다고 해서 리턴값이 없음을 뜻하는 void를 사용하지는 않습니다. 생성자의 조건 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 생성자 선언 방법 생성자는 다음과 같이 정의합니다. 생성자도 오버로딩이 가능하므로 하나의 클래스의 여러 개의 생성자가 존재할 수 있습니다. 클래스이름 (타입..
오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻으로, 오버로딩이란 ? 한 클래스 내에서 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 오버로딩의 조건 오버로딩이 성립되기 위해선 다음과 같은 조건을 만족해야합니다. 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 비록 메서드의 이름이 같더라도 매개변수가 다르면 서로 구별될 수 있기 때문에 오버로딩이 가능합니다. 위의 조건을 만족시키지 못할시에는, 메서드가 중복으로 간주되어 컴파일 시 에러가 발생합니다. 주의할 점으로는 반환 타입( 리턴 타입 )은 오버로딩을 구현하는데 아무런 영향을 주지 않습니다. 오버로딩 예시 코드 아래 코드는 전부 오버로딩의 조건을 만족합니다. class Overloa..
클래스 변수와 인스턴스 변수에서도 그랬듯이, 메서드 앞에 static이 붙으면 클래스 메서드, 없으면 인스턴스 메서드 입니다. 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 "클래스이름.메서드이름(매개변수)"와 같은식으로 호출이 가능합니다. 반면에, 인스턴스 메서드는 반드시 객체를 생성해야만 호출이 가능합니다. (Java/자바) 클래스 변수, 인스턴스 변수, 지역 변수란? 이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여 hstory0208.tistory.com 인스턴스 메서드 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을..
재귀호출이란 ? 메서드의 내부에서 메서드 자신을 다시 호출하는 것을 말합니다. 그리고 재귀호출을 하는 메서드를 "재귀 메서드"라고 합니다. void method() { method(); // 재귀호출. 메서드 자신을 호출한다. } 그런데 오로지 재귀호출뿐이라면, 무한히 자기 자신을 호출하기 때문에 무한 반복에 빠지게 됩니다. 무한반복문이 조건문과 함께 사용되어야 하는 것처럼, 재귀호출도 조건문이 필수적으로 따라다닙니다. void method(int n) { if(n==0) return; // n의 값이 0이라면 메서드 종료. System.out.println(n); method(--n); // 재귀호출. } 반복문보다 재귀호출이 더 빠른가 ? 결론부터 말하면 아닙니다. 메서드를 호출하는 것은 반복문보다 ..
메서드 ( Method ) 메서드란 특정 작업을 수행하는 문장들을 하나로 묶은 것으로 수학의 함수와 비슷합니다. 대표적으로 절댓값을 구하는 메서드 Math.abs(-3)을 실행하면 3의 결과를 반환합니다. 메서드를 사용하는 이유 1. 높은 재사용성 ( reusability ) 이미 자바 API에서 제공하는 메서드들을 사용하면서 코딩의 편리함을 느끼실 겁니다. 이렇게 메서드를 한번 만들어 놓으면 몇 번이고 호출할 수 있으며, 다른 프로그램에서도 사용이 가능합니다. 2. 중복된 코드의 제거 프로그램을 작성하다 보면, 같은 내용의 문장들이 중복되곤 합니다. 이렇게 반복되는 문장들을 묶어 하나의 메서드로 작성해 놓으면, 중복을 제거하고 메서드를 호출함으로써 대체할 수 있습니다. public static void..
이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여러 예시가 있습니다. 게임 비유 : 클래스(직업)에 따라 클래스(직업)에 맞는 아이템과 동작들이 주어져서 객채가 생성되는 것. 붕어빵 비유 : hstory0208.tistory.com 자바에서 변수는 클래스 변수, 인스턴스 변수, 지역 변수로 모두 3가지의 변수가 있습니다. 그리고 클래스 변수와, 인스턴스 변수를 "멤버변수"라고 합니다. class test { int a; // 인스턴스 변수 static int b;// 클래스 변수 (static 변수, 공유 변수) // 메서드 영영 void method() { i..