메소드(Method)
: 특정 작업을 수행하기 위한 명령문의 집합
1. 메소드의 사용 목적
- 중복되는 코드의 반복적인 프로그래밍을 피하기 위함
- 모듈화로 인해 코드의 가독성 증가
- 유지보수하기 용이함
※ 메소드를 작성할 때는 하나의 메소드가 하나의 기능만 수행하도록 작성하는것이 좋다.
2. 메소드 정의
접근제어자 반환타입 메소드이름(매개변수목록) { // 선언부
// 구현부
}
- 접근제어자 : 메소드에 접근할 수 있는 범위 (public, private, protected...등)
- 반환 타입(return type) : 작업을 마치고 반환하는 데이터의 타입 (int, String, void...등)
- 메소드 이름 : 메소드를 호출하기 위한 이름
- 매개변수목록(parameters) : 메소드 호출 시에 전달되는 인수의 값을 저장할 변수
- 구현부 : 메소드의 고유 기능을 수행하는 명령문의 집합
// Car 클래스의 accelerate() 메소드를 정의하는 예제
class Car {
private int currentSpeed;
private int accelerationTime;
...
public void accelerate(int speed, int second) { // 선언부
// 구현부
System.out.println(second + "초간 속도를 시속 " + speed + "(으)로 가속");
}
...
}
3. 메소드 호출
: 멤버 참조 연산자(.)를 사용하여 호출함.
// 메소드를 호출하는 방법 및 문법
1. 객체참조변수이름.메소드이름(); // 매개변수가 없는 메소드의 호출
2. 객체참조변수이름.메소드이름(인수1, 인수2, ...); // 매개변수가 있는 메소드의 호출
// accelerate() 메소드를 정의하고 호출하는 예제
class Car {
private int currentSpeed;
private int accelerationTime;
public void accelerate(int speed, int second) {
System.out.println(second + "초간 속도를 시속 " + speed + "(으)로 가속함!!");
}
}
public class Method01 {
public static void main(String[] args) {
Car myCar = new Car(); // 객체 생성
myCar.accelerate(60, 3); // 메소드 호출
}
}
생성자(Constructor)
: 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 것
자바에서 생성자의 이름은 해당 클래스의 이름과 같아야함. Ex) Car Class 의 생성자 이름은 Car
※ 생성자의 특징
- 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않음
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있음
- 객체를 초기화 하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있음.
(생성자도 하나의 메소드이므로, 메소드 오버로딩이 가능함 !)
// 예제
Car(String modelName) {}
Car(String modelName, int modelYear) {}
Car(String modelName, int modelYear, String color) {}
Car(String modelName, int modelYear, String color, int maxSpeeds) {}
1. 생성자의 선언
: 생성자를 선언하는 문법은 아래와 같음.
1. 클래스이름() { ... } // 매개변수가 없는 생성자 선언
2. 클래스이름(인수1, 인수2, ...) { ... } // 매개변수가 있는 생성자 선언
생성자 중에는매개변수를 전달받아 인스턴스 변수를 초기화하는 생성자도 선언이 가능함.
// Car 클래스의 생성자를 선언하는 예제
Car(String modelName, int modelYear, String color, int maxSpeeds) {
this.modelName = modelName;
this.modelYear = modelYear;
this.color = color;
this.maxSpeed = maxSpeed;
this.currentSpeed = 0;
}
※ 예제처럼 "클래스의 생성자"는 어떠한 반환값도 명시하지 않음 !
2. 생성자의 호출
: new 키워드를 사용하여 객체를 생성할 때 자동으로 생성자가 호출됨
class Car {
private String modelName;
private int modelYear;
private String color;
private int maxSpeed;
private int currentSpeed;
Car(String modelName, int modelYear, String color, int maxSpeed) {
this.modelName = modelName;
this.modelYear = modelYear;
this.color = color;
this.maxSpeed = maxSpeed;
this.currentSpeed = 0;
}
public String getModel() {
return this.modelYear + "년식 " + this.modelName + " " + this.color;
}
}
public class Method02 {
public static void main(String[] args) {
Car myCar = new Car("아반떼", 2016, "흰색", 200); // 생성자의 호출
System.out.println(myCar.getModel()); // 생성자에 의해 초기화되었는지를 확인함.
}
}
메소드(Method)
: 특정 작업을 수행하기 위한 명령문의 집합
1. 메소드의 사용 목적
- 중복되는 코드의 반복적인 프로그래밍을 피하기 위함
- 모듈화로 인해 코드의 가독성 증가
- 유지보수하기 용이함
※ 메소드를 작성할 때는 하나의 메소드가 하나의 기능만 수행하도록 작성하는것이 좋다.
2. 메소드 정의
접근제어자 반환타입 메소드이름(매개변수목록) { // 선언부
// 구현부
}
- 접근제어자 : 메소드에 접근할 수 있는 범위 (public, private, protected...등)
- 반환 타입(return type) : 작업을 마치고 반환하는 데이터의 타입 (int, String, void...등)
- 메소드 이름 : 메소드를 호출하기 위한 이름
- 매개변수목록(parameters) : 메소드 호출 시에 전달되는 인수의 값을 저장할 변수
- 구현부 : 메소드의 고유 기능을 수행하는 명령문의 집합
// Car 클래스의 accelerate() 메소드를 정의하는 예제
class Car {
private int currentSpeed;
private int accelerationTime;
...
public void accelerate(int speed, int second) { // 선언부
// 구현부
System.out.println(second + "초간 속도를 시속 " + speed + "(으)로 가속");
}
...
}
3. 메소드 호출
: 멤버 참조 연산자(.)를 사용하여 호출함.
// 메소드를 호출하는 방법 및 문법
1. 객체참조변수이름.메소드이름(); // 매개변수가 없는 메소드의 호출
2. 객체참조변수이름.메소드이름(인수1, 인수2, ...); // 매개변수가 있는 메소드의 호출
// accelerate() 메소드를 정의하고 호출하는 예제
class Car {
private int currentSpeed;
private int accelerationTime;
public void accelerate(int speed, int second) {
System.out.println(second + "초간 속도를 시속 " + speed + "(으)로 가속함!!");
}
}
public class Method01 {
public static void main(String[] args) {
Car myCar = new Car(); // 객체 생성
myCar.accelerate(60, 3); // 메소드 호출
}
}
생성자(Constructor)
: 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 것
자바에서 생성자의 이름은 해당 클래스의 이름과 같아야함. Ex) Car Class 의 생성자 이름은 Car
※ 생성자의 특징
- 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않음
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있음
- 객체를 초기화 하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있음.
(생성자도 하나의 메소드이므로, 메소드 오버로딩이 가능함 !)
// 예제
Car(String modelName) {}
Car(String modelName, int modelYear) {}
Car(String modelName, int modelYear, String color) {}
Car(String modelName, int modelYear, String color, int maxSpeeds) {}
1. 생성자의 선언
: 생성자를 선언하는 문법은 아래와 같음.
1. 클래스이름() { ... } // 매개변수가 없는 생성자 선언
2. 클래스이름(인수1, 인수2, ...) { ... } // 매개변수가 있는 생성자 선언
생성자 중에는매개변수를 전달받아 인스턴스 변수를 초기화하는 생성자도 선언이 가능함.
// Car 클래스의 생성자를 선언하는 예제
Car(String modelName, int modelYear, String color, int maxSpeeds) {
this.modelName = modelName;
this.modelYear = modelYear;
this.color = color;
this.maxSpeed = maxSpeed;
this.currentSpeed = 0;
}
※ 예제처럼 "클래스의 생성자"는 어떠한 반환값도 명시하지 않음 !
2. 생성자의 호출
: new 키워드를 사용하여 객체를 생성할 때 자동으로 생성자가 호출됨
class Car {
private String modelName;
private int modelYear;
private String color;
private int maxSpeed;
private int currentSpeed;
Car(String modelName, int modelYear, String color, int maxSpeed) {
this.modelName = modelName;
this.modelYear = modelYear;
this.color = color;
this.maxSpeed = maxSpeed;
this.currentSpeed = 0;
}
public String getModel() {
return this.modelYear + "년식 " + this.modelName + " " + this.color;
}
}
public class Method02 {
public static void main(String[] args) {
Car myCar = new Car("아반떼", 2016, "흰색", 200); // 생성자의 호출
System.out.println(myCar.getModel()); // 생성자에 의해 초기화되었는지를 확인함.
}
}