본문 바로가기

메서드 메서드란? 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환하는 것. 작업을 수행하는 일련의 문장들을 하나로 묶는다. 사용하는 이유 1. 높은 재사용성 2. 중복된 코드 제거 3. 프로그램의 구조화 메서드의 선언과 구현 1. 선언부 2. 구현부 반환타입 메서드이름 (타입변수명, 타입변수명, ..) // 선언부 { ... // 구현부 } int add (int a, int b) // 선언부 { int result = a + b; // 구현부 return result; } 메서드 선언부 - 메서드이름 - 매개변수 선언 - 반환타입 매개변수 선언 : 매서드가 작업을 수행하는데 필요한 값들을 제공받기 위한 것. 메서드의 이름 : 함축적이면서도 의미있는 이름을 짓도록 노력해야 한다. 반환타입 : 출력타입..
오버로딩 오버로딩 : 한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것 조건) 1. 메서드 이름이 같아야 한다. 2. 매개 변수의 개수 또는 타입이 달라야 한다. *여러개를 정의했다고 무조건 오버로딩은 아니다.* 예) -오버로딩이 안되는 예 // 이름만 다를 뿐 매개변수의 타입이 같기 때문에 오버로딩이 성립되지 않는다. int add(int a, int b) {return a + b;} int add(int x, int y) {return x + y;} // 리턴타입만 다를 경우, 타입과 개수가 같아 오버로딩으로 간주되지 않는다. int add(int a, int b) {return a + b;} long add(int a, int b) {return (long)a + b;} - 오버로딩이 되는 예 // ..
인스턴스 변수, 클래스변수, 로컬변수 변수의 종류 1. 인스턴스 변수 : 클래스 영역에 선언. 클래스의 인스턴스를 생성할 때 만들어진다. -> 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언 2. 클래스 변수 : 모든 인스턴스가 공통된 저장공간(변수)을 공유한다. ->한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성 3. 로컬 변수 : 메서드 내에 선언되어 메서드 내에서만 사용 가능, 메서드가 종료되면 소면되어 사용할 수 없다. 클래스 변수와 인스턴스 변수 클래스 변수 - 여러 개의 인스턴스가 static 변수를 공유한다. - 클래스 변수는 여러 인스턴스가 하나의 메모리 값을 공유할 때 필요하다. - 기준이 되는 값을 static 변수로 생성하여 유지한다. 데이터 영역 스택 메모리 힙 메모리 1001 ..
생성자는 언제 쓰나? 생성자는 객체를 생성하면서 ( 해야될 일 들, 하고 싶은 일들 ) 구현하는 것 또는 인스턴스가 생성될 때 호출되는 초기화메서드 구조는 리턴값이 없다. 그렇다고 void를 사용하지 않는다. 이유는 모든 생성자가 리턴값이 없으므로 void를 생략할 수 있게 한 것이다. 조건은 1. 생성자의 이름은 클래스이 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. public class Student { int studentID; String studentName; int grade; String address; // 이 객체를 생성할 때, 무조건 이름 or id을 가지고 생성해야한다면 // 생성자를 이용하는 것이다. public Student(int id, String name) { // 매개변수가 있는 생성자..