객체지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객체의 속성과 기능을 코드로 구현한 것이다. 객체를 클래스로 구현하는 것을 '클래스를 정의한다'라고 한다.
(접근 제어자) class 클래스 이름 {
멤버 변수;
메서드;
}
클래스 이름은 항상 대문자로 시작한다. 코딩 컨벤션 (암묵적 규칙)
▶ 변수의 자료형은 기본 자료형(int, long, double 등), 참조자료형(String, Date, Student 등) 으로 나뉜다.
▶ 위 코드와 같이 studentId, studentName, grade, address는 모두 Student 클래스 내부에 선언된 속성, 즉 멤버변수이다.
클래스 이름이 같더라도 패키지 이름이 다르면 class full name도 달라지므로 서로 다른 클래스이다.
함수의 장점
- 기능을 나누어 코드를 효율적으로 구현할 수 있다.
▶ 기능을 분리해서 구현하면 프로그램 코드의 가독성이 좋아진다. 너무 긴 코드가 main()함수에 모두 들어 있으면 이해하기 어렵다.
//기본 형식
함수 반환형 함수 이름 (매개변수) {
code;
code;
return 반환값;
}
//num1, num2를 더한 값을 리턴하는 함수
int add (int num1, int num2) {
int result;
result = num1 + num2;
return result;
}
public class method {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int sum = add(num1, num2); //함수 호출
System.out.println(num1 + "+" + num2 + "=" + sum);
}
//add() 함수 정의
public static int add(int n1, int n2) {
int result = n1 + n2;
return result;
}
}
✔ add() 함수의 반환형이 int이기 때문에 결과 값이 저장되는 sum 변수도 int로 선언했다.
✔ 함수를 구현할 때 사용한 매개 변수의 이름과 호출할 때 변수 이름은 같을 필요가 없다.
▶ 반환값이 없는 함수를 정의할 때는 반환형 자리에 void를 쓴다.
void printGreeting(String name) {
System.out.println(name + "님 안녕하세요");
return; //반환 값 없음
}