클래스 안에 있는 구성 요소를 멤버(member) 라고 부른다.
public class Ex01 { // 클래스
int fileName; // 필드
public Ex01(){
// 생성자
}
// 메서드(Method)
public static void main(String[] args){
// 특정 기능을 구현하는 곳
}
}
MyApiClass api = new MyApiClass();
api.fileName = "document";
Car 클래스
public class Car {
// 멤버 변수 (필드) 생성
int gear = 0; // 기어
boolean on = false; // 시동이 걸려있는지 여부
// 생성자 호출 (초기화값 지정)
public Car() {
// 아래 값은 누가 전달하지 않아도 스스로 초기화 가능
gear = 0;
on = false;
}
// 시동거는 메소드 (꺼져있는 시동이 켜지면 true)
void start() {
if(on==false) { // on==false 면
on=true; // on 을 true 로 바꾸고
System.out.println("시동이 걸렸습니다.");
}else { // on==true 면 실행
System.out.println("이미 시동이 걸려있습니다.");
}
}
// 기아변속 메소드
void change(int gear) {
this.gear = gear; // 위에있는 int gear와 이름이 같기 때문에 this를 붙여준다.
System.out.println(this.gear + " 단으로 변속되었습니다.");
}
}
Main 클래스
public class Main {
public static void main(String[] args) {
// 1. Car 객체화
Car car = new Car()
// 2. 원하는 메소드 호출
car.start();
car.start(); // 시동 다시 걸기
// 3. 원하는 기어변속 값 호출
car.change(2);
// 4. 원하는 필드 호출
System.out.println(car.gear);
System.out.println(car.on);
}
}
/*
결과 :
시동이 걸렸습니다.
이미 시동이 걸려있습니다.
2 단으로 변속되었습니다.
2
true
*/
메서드는 메서드명, 매개변수(parameter), 실행문, 반환(return) 타입으로 이루어진다.
return이 없으면 void, 있으면 반환 타입이 있어야 한다.
public class Toast {
// return 이 없기 때문에 void 로 지정
public static void main(String[] args) {
String dish = "";
dish = toaster("식빵");
System.out.println(dish);
}
// 반환 타입 : static String
// 메서드명 : toaster
// 매개변수 : String input
static String toaster(String input){
System.out.println(input+" 이 구워지고 있다."); // 실행문
return "구워진"+input; // 반환문
}
}
직접 메소드를 만드는 것을 정의라고 하고, 만들어진 메소드를 실행하는 것을 호출이라고 한다.
// numbering이라는 이름의 메소드를 정의하고 있다.
public static void numbering(){
int i = 0;
while(i<10){
i++;
}
}
// numbering 메소드가 main이라는 이름의 메소드 안에서 호출되고 있다.
public static void main(String[] args) {
numbering(); // numbering 메소드의 로직이 실행된다.
numbering();
}
main 메소드는 규칙이다. 만들고 싶은 프로그램이 있다면 반드시 public static void main(String[] args)가 이끄는 중괄호 {} 안에 실행되기를 기대하는 로직을 위치시켜야 한다.
그럼 자바를 실행할 때 main 메소드를 최초로 실행한다.