Java는 정적 타입 언어예요. 즉, 컴파일 시점에 모든 것에 타입이 있어요. 이름에 값을 할당하는 것을 변수를 정의한다고 해요.
int explicitVar = 10; // Explicitly typed
변수의 값은 = 연산자를 사용해 할당하고 갱신할 수 있어요.
한 번 정의된 변수의 타입은 절대 바뀌지 않아요.
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning different type
// count = false;
Java는 객체 지향 언어이고, 모든 함수를 클래스 안에 정의해야 해요.
클래스는 class 키워드로 정의해요.
클래스 안에 있는 함수를 _메서드_라고 해요.
각 메서드는 매개변수를 0개 이상 가질 수 있어요.
모든 매개변수는 타입을 명시해야 하며, 매개변수에는 타입 추론이 없어요.
마찬가지로 반환 타입도 명시해야 해요.
값은 return 키워드를 사용해 함수에서 반환해요.
다른 클래스에서 메서드를 호출할 수 있게 하려면 public 접근 제한자를 추가해야 해요.
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
메서드를 호출하려면 클래스와 메서드 이름을 지정하고, 메서드의 각 매개변수에 대응하는 인자를 전달해요.
int sum = new Calculator().add(1, 2);
메서드가 클래스의 _상태_를 전혀 사용하지 않는다면(이 연습 문제의 경우가 그래요), static 제한자를 사용해 메서드를 _static_으로 만들 수 있어요.
마찬가지로, 클래스에 static 메서드만 있다면 그 클래스도 static 제한자를 사용해 static으로 만들 수 있어요.
static class Calculator {
public static int multiply(int x, int y) {
return x * y;
}
}
Java에서 스코프는 {와 } 문자 사이에 정의돼요.
Java는 두 가지 종류의 주석을 지원해요.
한 줄 주석은 //로 시작하고, 여러 줄 주석은 /*와 */ 사이에 넣어요.
정수 값은 하나 이상의 (연속된) 숫자로 정의되고, 기본 수학 연산자를 지원해요.