JAVA/기본 이론

JAVA | 객체 지향 프로그래밍(OOP)

로아다 2023. 3. 22. 01:35
728x90
반응형
객체 지향 프로그래밍(Object Oriented Programming)

- 변수와 메서드들을 실제로 세상에 존재하는 개념(객체)으로 묶어서 사용하는 프로그래밍 방법론

- 변수와 메서드들을 무분별하게 사용하다보면 여러 문제들이 발생하기때문에 현실에 존재하는 객체 단위로 묶어서 표현하기 시작했다.

- 변수는 객체의 현재 상태를 나타낸다.

- 객체 내부의 메서드는 해당 객체의 상태(변수)를 변화시킨다. 이를 메서드라고 부른다.

 

ex :

- 책의 현재 상태 (변수) :

    현재 펼쳐져 있는 페이지, 전체 페이지, 각 페이지의 낙서 여부, 각 페이지에 필기가 되어있는 위치의 좌표, 가격, 할인율 등

- 책의 기능 (메서드) : 다음 페이지로 넘기기, 여러 페이지 넘기기, 한 장 넘기기, 낙서 지우기 등


클래스(class)

- 객체 지향 프로그래밍의 객체를 프로그래밍 언어로 표현하는 문법

- 클래스는 해당 객체의 설계도 역할을 한다.

- 클래스를 정의한 시점에서는 실체가 없다.

- 클래스를 통해 만들어내는 실제 객체를 인스턴스(instance)라고 부른다.

- 클래스를 통해 인스턴스를 생성할 때 new를 사용한다.

 


public class OOP {
    public static void main(String[] args) {
        // Apple이라는 설계도로 실체(인스턴스)를 만들었다.
        Apple a1 = new Apple();
        Apple a2 = new Apple();
        Scanner sc = new Scanner(System.in);
        Random ran = new Random();
        Apple[] apples = new Apple[100];
        String[] animals = new String[10];

        // 인스턴스에 .을 찍고 해당 클래스의 변수와 메서드를 사용할 수 있다.
        a1.price = 800;
        a2.price = 2000;

        // 메서드는 모두 똑같은 동작을 하지만 각 인스턴스의 상태값에 따라 결과가 달라질 수 있다.
        System.out.println(a1.toDollar());
        System.out.println(a2.toDollar());
    }
}

// Apple객체의 설계도 (class)
class Apple {
	int price;
	
	// 현재 사과 가격을 달러로 변환하여 반환해주는 메서드
	double toDollar() {
		return price * 0.00083;
	}
}

 

728x90
반응형