[Java] 객체지향 (2) 클래스와 객체

lkc9898·2022년 5월 16일

Java

목록 보기
12/25
post-thumbnail

클래스와 객체

객체란 크게 속성과 기능이라는 두 가지 구성요소로 이뤄져있고 일반적으로 객체는 다양한 속성과 기능의 집합으로 이뤄져있다.
이러한 객체를 정의한 설계도, 프레임을 클래스라고 한다. 클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용이다.

클래스의 구조

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() 메서드를 통해 결과값 출력

0개의 댓글