[Java] 객체지향 1

최우형·2023년 2월 23일
1

Java

목록 보기
7/24
post-thumbnail

📌객체란?

모든 실재하는 어떤 대상을 프로그래밍 언어에서는 객체라고 한다.
한마디로, 객체는 우리가 보고 느끼고 인지할 수 있는 모든 것을 의미한다고 할 수 있다.


📌클래스란?

객체를 정의한 '설계도' 또는 '틀'이라 정의할 수 있다.

즉, 클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다.


인스턴스?

클래스를 통해 생성된 객체는 해당 클래스의 인스턴스라 부른다.
또한 클래스로부터 객체를 만드는 과정을 인스턴스화라 자칭한다.

클래스의 구성 요소와 기본 문법

class 클래스명 { // 클래스 정의
   ----
   }

클래스명은 주로 대문자로 시작하는 것이 관례!

클래스는 필드(field), 메서드(method), 생성자(constructor), 이너 클래스(inner class) 총 4가지가 있다.

public class ExampleClass {
	int x = 10; // (1)필드
    void printX() {...} // (2)메서드
    ExampleClass {...} // (3)생성자
    class ExampleClass2 {...} // (4)이너 클래스
}

간단히 설명하면

(1) 필드 - 클래스의 속성을 나타내는 변수이다. ex) 자동차의 모델명, 컬러, 바퀴의 수

(2) 메서드 - 클래스의 기능을 나타내는 함수이다. ex) 시동걸기, 가속하기, 정지하기

(3) 생성자 - 클래스의 객체를 생성하는 역할은 한다.

(4) 이너 클래스 - 클래스 내부의 클래스를 의미한다.

위 요소 중 생성자를 제외한 나머지 3가지 요소를 클래스의 멤버(member) 라고 부른다.

이 중에서 필드와 메서드는 각각의 클래스가 가지는 속성(state)와 기능(behavior)을 대표한다. 속성과 기능은 해당 클래스와 관련된 데이터의 집합이다.


객체의 구성

객체는 크게 속성기능으로 이루어져있다.

속성과 기능은 각각 필드메서드로 정의된다.

객체의 생성 방법
class CarTest {
	public static void main(String[] args) {
    Car bmw = new Car();  // Car 클래스를 기반으로 생성된 bmw 인스턴스
    Car tesla = new Car(); // Car 클래스를 기반으로 생성된 tesla 인스턴스
	Car audi = new Car(); // Car 클래스를 기반으로 생성된 audi 인스턴스
	}
}

객체의 생성

클래스명_참조_변수명; //인스턴스를 참조하기 위한 참조변수 선언
참조_변수명 = new 생성자(); // 인스턴스 생성 후, 객체의 주소를 참조 변수에 저장

간편하게 줄여서

클래스명 참조_변수명 = new 생성자();

로 가능하다.

예제
public class CarTest {
    public static void main(String[] args) {
        Car tesla = new Car("Model 3", "빨강"); // 객체 생성. 

        System.out.println("내 차의 모델은 " + tesla.model + "이고 " + "색은 " + tesla.color + "입니다."); // 필드 호출
        tesla.power(); // 메서드 호출
        tesla.accelerate();
        tesla.stop();
    }
}

class Car {
    public String model; // 필드 선언
    public String color;

    public Car(String model, String color) { // 인스턴스 초기화를 위한 생성자 함수.
        this.model = model;
        this.color = color;
    }

    void power() { // 메서드 선언
        System.out.println("시동을 걸었습니다.");
    }

    void accelerate() {
        System.out.println("더 빠르게!");
    }

    void stop(){
        System.out.println("멈춰!!");
    }
}

// 출력값
내 차의 모델은 Model 3이고 색은 빨강입니다.
시동을 걸었습니다.
더 빠르게!
멈춰!!
profile
프로젝트, 오류, CS 공부, 코테 등을 꾸준히 기록하는 저만의 기술 블로그입니다!

0개의 댓글