JAVA 객체지향 프로그래밍

Tags:

객체지향 프로그램?

객체지향은 순서대로 실행 되는 절차지향과 반대되는 개념입니다.

Object Oriented Programming 현실세계에 존재하는 유, 무형의 데이터를 객체로 보고 프로그래밍 하는 것입니다. 객체에서 중요한 것은 객체들과의 상호작용이고 이러한 oop의 특징으로는 1. 상속 2. 다형성 3. 추상화 4. 캡슐화가 있습니다.

  1. 상속 코드 재사용
  2. 다형성 상속 관계에 있을 때 부모 자료형으로 다양한 자식 자료형들의 객체를 처리할 수 있는 기능 Object a = new Integer(100); Object b = new Charater(‘A’);
  3. 추상화(추상클래스, 인터페이스) 필요한 기능들은 구현하는 것이 아닌 선언만 해놓고 구현을 나중으로 미루는 기능
  4. 캡슐화 변수는 private으로 보호하고 getter, setter는 public으로 선언해서 사용하는 것입니다. 현업에서는 별 의미없이 getter, setter를 사용하다보니 필요성을 못느끼고 오히려 번잡스러운 느낌이여서 활용 가치에 대해 알고 싶어 보니 패스워드 변수 같이 항상 인코딩이 필요하거나 디코딩이 필요한 변수는 setter 메서드를 통해 호출할 때 데이터 가공을 할 수 있어서 이럴 때는 좋은 기능이라고 생각합니다.

oop의 장점은 유지보수에 용이하다는 것입니다. 코드의 재사용성이 높고 코드 변경이 용이합니다. 이 말은 테스트 케이스를 작성하기에도 수월하다는 것입니다. 또 다른 장점은 대규모 프로젝트에서 인터페이스로 개발에서의 표준을 만들 수 있고 본인이 해야하는 업무에 집중할 수 있는 장점이 있습니다.

GC(Garbage Collector) 불필요한 메모리를 정리하는 기능(자동 메모리 관리)

객체 : 데이터(변수) + 데이터에 관련된 동작(method)