객체 지향 프로그래밍 (OOP: Object Oriented Programming) 이란, 프로그램 구현에 필요한 데이터를 속성과 기능을 중심으로 추상화시켜 객체를 만들고 그 객체들 간 상호작용을 통해 기능을 구성하는 프로그래밍 방법론
: 객체를 생성하는 데 사용되는 설계도, 틀
class 클래스명1 {
String color = "red"; // (1) 필드
void printColor {...} // (2) 메서드
클래스명1 {...} // (3) 생성자
class 클래스명2 {...} // (4) 이너 클래스
}
(1) 필드: 클래스의 속성을 나타내는 변수: 속성과 기능으로 이루어진 모든 실재하는 어떤 대상
클래스명 참조_변수명;
참조_변수명 = new 생성자();
참조_변수명.필드명 // 필드 접근
참조_변수명.메서드명() // 메서드 호출
: 클래스에 포함된 변수, 객체의 속성을 정의
class Ex {
int intstanceVariable; // (1) 인스턴스 변수
static int classVariable; // (2) 클래스 변수
void method() {
int localVariable = 0; // (3) 지역 변수
}
}
(1) 인스턴스 변수: static 키워드가 붙지 않은 변수, 각 인스턴스가 고유한 값을 가짐
(2) 클래스 변수: static 키워드가 붙은 변수, 모든 인스턴스가 값을 공유(객체 생성없이 사용 가능)
(3) 지역 변수: 메서드 내에 포함된 모든 변수, 메서드 내에서만 사용 가능
: 클래스의 기능을 담당, 특정 기능을 수행하는 명령문들의 집합
자바제어자 반환타입 메서드명(매개변수) { // 메서드 시그니처
메서드 내용 // 메서드 바디
}
public double divide(double x, double y) () {
double result = x / y;
return result;
}
: 이름이 divide인 메서드로 double 2개를 받아서 나눈 다음 double 결과를 반환
: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것