객체 지향 프로그래밍(Object-Oriented Programming)

Jan 01, 2024
객체 지향 프로그래밍(Object-Oriented Programming)
  • 객체 지향 프로그래밍은 OOP(Object-Oriented Programming)이라고 한다.
  • 객체 지향 언어의 핵심은 객체(Object)이다.
  • 객체 지향 프로그래밍의 핵심은 모든 걸 부품화 시켜서 결합 하는 것이다. → 각자 단독 객체로 만들어 상호 작용 한다.
  • 객체 안의 변수를 필드(field)라고 부르고, 객체 안의 함수를 메소드(method)라고 부른다.
  • 재사용이 가능하다.
  • 원칙은 객체는 상태와 행위를 가진다.
💡
존재 가능성이 있는 모든 것을 객체라고 하며, new를 사용해서 띄우는 것은 모두 객체이다. 행위(메서드) 없이 상태를 변경 시키면 안되는게 객체지향 1번째 프로그래밍이다.
행위 없는 예제
package ex04; class Person3 { int weight = 100; } public class OOPEx01 { public static void main(String[] args) { Person3 p3 = new Person3(); System.out.println("p3의 몸무게 : " + p3.weight); p3.weight = 60; System.out.println("p3의 몸무게 : " + p3.weight); } } // 행위(메서드) 없이 상태를 변경하면 안되는 예시
행위 있는 예제
package ex04; class Person4 { // 상태 = 변수 private int weight = 100; // 다른 클래스에서 접근이 불가능하도록 하는 것 // 메서드 x => 확인 용도 이다. public int getWeight() { return weight; } // 행위 = 메서드 // 접근 제어자 : private 어디에서도 접근 불가 / public 어디에서든지 접근 가능 public void exercise() { weight = weight - 10; } } public class OOPEx02 { public static void main(String[] args) { Person4 p4 = new Person4(); System.out.println("p4의 몸무게 : " + p4.getWeight()); p4.exercise(); System.out.println("p4의 몸무게 : " + p4.getWeight()); p4.exercise(); System.out.println("p4의 몸무게 : " + p4.getWeight()); for (int i = 0; i < 8; i++) { p4.exercise(); } System.out.println("p4의 몸무게 : " + p4.getWeight()); } }
객체 지향 언어(메서드) 예제
메서드 생성 package ex04; // 설계도 public class Circle { private int radius; // 생성자 : 생성될 때 무조건 실행되는 메소드 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(5); System.out.println(obj.getArea()); } }

절차 지향 언어(Procedural Programming)

  • 절차 지향 언어는 프로시저(procedure)에 기반을 두고 있다.
  • ‘절차’ 라는 용어는 ‘procedure’를 번역 한 것이며, 함수 또는 서브루틴을 뜻한다.
  • 함수를 쭉 만들어두고 순서대로 진행하는 것이다.
💡
예시로는 이렇게 생성 된다고 보면 된다.
void 양치하기(){} void 세수하기(){} void 머리감기(){} void 드라이기(){} void 로션바르기(){} void 옷입기(){} void main(){ 머리감기(); 세수하기(); 양치하기(); 드라이기(); 로션바르기(); 옷입기(); }
 

캡슐화(Encapsulation)

  • 객체 지향 프로그래밍이 연구가 진행될수록 관련 있는 함수(메소드)와 데이터를 묶어서 생각해야 한다는 점이 명백해졌다.
  • 데이터와 함수를 하나의 덩어리(객체)로 묶는 것캡슐화(encapsulation)이라 한다.
캡슐화 그림 예시
notion image
notion image

정보 은닉(Information Hiding)

  • 객체의 외부에서는 객체의 내부 데이터를 볼 수 없게 한다.
  • 내부 데이터가 훼손될 염려가 없다.
  • public, private와 같은 키워드를 통하여 구현된다.
 
Share article
RSSPowered by inblog