객체란 크게 속성과 기능이라는 두 가지 구성요소로 이뤄져있고 일반적으로 객체는 다양한 속성과 기능의 집합으로 이뤄져있다.
이러한 객체를 정의한 설계도, 프레임을 클래스라고 한다. 클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용이다.
public class 클래스이름 {
// 멤버 변수
int a;
int b;
// 메서드
void printAb() { ... }
// 생성자
클래스이름 { ... }
// 이너 클래스
클래스이름2 { ... }
- 필드(멤버변수)
클래스의 속성을 나타내는 변수이다.
ex.System.out.println()에서 out은 Systen 클래스의 out이라는 멤버변수를 사용- 메서드
클래스의 기능을 나타내는 함수이다.
ex.System.out.println()에서 println()이 메서드 이다.- 생성자
클래스의 객체를 생성하는 역할이다.- 이너 클래스
클래스 내부의 클래스를 의미한다.
new 키워드로 생성한다. 메서드를 사용해 객체를 생성하는 경우도 내부적인 작업을 통해 new 키워드로 객체를 생성하는 것이기 때문에 동일한 방식이다.
클래스명 참조_변수명 = new 생성자();
참조 변수가 선언되면, new키워드와 생성자를 통해 인스턴스를 생성하여 참조변수에 할당
참조 변수명.멤버변수 // 멤버변수 호출
참조 변수명.메서드() // 메서드 호출
포인트 연산자로 불리는 .은 '해당 위치에 있는 객체 안을 봐라' 라는 뜻을 가지고 있고 .을 이용하여 특정 인스턴스 객체의 필드와 메서드에 접근할 수 있다.
public class Person {
// 멤버변수
public String name;
public int age;
// 메서드
public void personInfo() {
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
}
}
Person이라는 클래스를 만들어 이름과 나이를 멤버변수로 선언public class PersonTest {
public static void main(String[] args) {
Person personJohn = new Person(); // 인스턴스 생성 후, 객체의 주소를 참조 변수에 저장
personJohn.name = "John"; // 참조 변수명.멤버변수 : 멤버변수 호출
personJohn.age = 35; // 참조 변수명.멤버변수 : 멤버변수 호출
personJohn.personInfo(); // 참조 변수명.메서드() : 메서드 호출
}
}
/* 출력값
이름 : John
나이 : 35
*/
PersonTest 클래스 생성 후 참조 변수 personJohn 인스턴스 생성personJohn.멤버변수를 통해 값을 넣어주고 personInfo() 메서드를 통해 결과값 출력