객체를 사용하는 프로그래밍 방식을 객체 지향 프로그래밍(OOP)라고 함.

<aside> 💡 Object-Oriented Programming) = OOP

</aside>

객체는 상태와 행위를 가짐

객체 지향에서는 행위 없이 상태 값을 변경 시켜서는 안됨

package ex04;

class Person3 {
    int weight = 100; //상태
}

public class OOPEx01 {
    public static void main(String[] args) {
        Person3 p3 = new Person3();
        System.out.println(p3.weight);

        p3.weight = 60;
        System.out.println(p3.weight);
    }
}
package ex04;

//설계도
class Person4 {
    // 접근 제어자
    // private = 다른 클래스에서 접근을 할 수 없게 만듬
    //상태 = 변수
    private int weight = 100;

    //값을 확인하는 메서드
    public int getWeight() {
        return weight;
    }

    // public = 다른 클래스에서 접근 가능
    // 행위 = 메서드
    public void exercise() {
        weight = weight - 10;
    }
}

public class OOPEx02 {
    public static void main(String[] args) {
        Person4 p4 = new Person4();
        System.out.println(p4.getWeight());

        p4.exercise();
        System.out.println(p4.getWeight());
    }
}

예제)

package ex04;

public class Circle {
    private int radius;

    //생성자
    //생성될 때 무조건 실행됨
    //안적으면 자동으로 생성됨
    //new로 동적할당하면 생성자를 말하는것
    //최초값 세팅(초기화)
    public Circle(int r) {
        radius = r;
    }

    public double getArea() {
        return 3.14 * radius * radius;
    }
}

다른 클래스

package ex04;

public class CircleTest {
    public static void main(String[] args) {
				//값을 넣어줌
        Circle obj = new Circle(50);
        System.out.println(obj.getArea());
    }
}

7850.0