019_객체 지향 프로그래밍

Dec 18, 2023
019_객체 지향 프로그래밍

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

  • 객체 지향 프로그래밍은 OOP(Object-Oriented Programming)이라고 한다.
  • 객체 지향 언어의 핵심은 객체(Object)이다.
  • 객체 지향 프로그래밍의 핵심은 모든 걸 부품화 시켜서 결합 하는 것이다. → 각자 단독 객체로 만들어 상호 작용 한다.
  • 객체 안의 변수를 필드(field)라고 부르고, 객체 안의 함수를 메소드(method)라고 부른다.
  • 재사용이 가능하다.
  • 원칙은 객체는 상태와 행위를 가진다.
존재 가능성이 있는 모든 것을 객체라고 하며, new를 사용해서 띄우는 것은 모두 객체이다. 행위(메서드) 없이 상태를 변경 시키면 안되는게 객체지향 프로그래밍이다.
행위 없는 예제
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

정보 은닉(Information Hiding)

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