객체지향 ? 실제 세계를 모델링하여 소프트웨어를 개발하는 방법
절차 지향 프로그래밍(procedural programming) : 문제를 해결하는 절차를 중요하게 생각하는 방법
- 데이터와 알고리즘이 묶여있지 않다.
객체 지향 프로그래밍(Object-Oriented Programming) : 데이터와 절차를 하나의 덩어리(객체)로 묶어서 생각하는 방법
- 객체 지향 소프트웨어를 작성하는 것은 컴퓨터 하드웨어 부품을 구입하여서 컴퓨터를 조립하는 것과 비슷하다.
- 데이터와 알고리즘이 묶여있다.
객체 지향 언어의 특징
▶ 기존의 프로그래밍언어와 크게 다르지 않다.
- 기존의 프로그래밍 언어에 몇가지 규칙을 추가한 것일 뿐이다.
- 3가지 중요 관점 : 재사용성, 유지보수, 중복의 제거
▶ 코드의 재사용성이 높다.
- 클래스를 정의하고 상속이라는 기능을 통해 기존에 작성된 코드를 이용하여 새로운 코드를 쉽게 작성할 수 있다.
▶ 코드의 관리가 쉬워졌다.
- 기존의 절차적 언어에서는 프로그램의 일부를 변경할 때 변경된 코드와 관련된 부분도 일일이 수정해야하지만, 객체지향 언어에서는 코드간의 관계를 맺어줄수 있기 때문에 코드가 변경되면 관련된 코드들도 자동적으로 변경되는것과 같은 결과를 얻을 수 있어서 코드를 관리하는 것이 쉽다.
▶ 신뢰성이 높은 프로그램의 개발을 가능하게 한다.
- 제어자와 메서드를 통해서 중요한 데이터가 외부에서 임의로 변경되는 것으로부터 보호하고, 데이터가 적절하지 않은 값이 되는 것을 말을 수 있다. 예를 들어, 비밀번호와 같이 중요한 데이터를 외부에서 접근하지 못하게 하거나 날짜의 월 데이터가 13월이 되는 것 등을 막을 수 있다.
객체 재향의 3대 특징
-> 캡슐화(encapsulation) :: 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리되어 있는 것
-> 상속(inheritance) :: 이미 작성된 클래스(부모 클래스)를 이어받아서 새로운 클래스(자식 클래스)를 생성하는 기법. 기존의 코드를 재황욜하기 위한 기법.
-> 다형성 :: 하나의 이름(방법)으로 많은 상황에 대처하는 기법. 개념적으로 동일한 작업을 하는 멤버 함수들에 똑같은 이름을 부여 할 수 있으므로 코드가 더 간단해진다.
쉬은 디버깅
예를 들어서 절차 지향 프로그램에서 하나의 변수를 1000개의 함수가 사용하고 있다고 가정해보자
-> 하나의 변수를 1000개의 함수에서 변경할 수 있다.
객체 지향 프로그램에서 100개의 클래스가 있고 클래스당 10개의 메소드를 가정해보자
-> 하나의 변수를 10의 메소드에서 변경할 수 있다.
'Web Programming > java-jsp' 카테고리의 다른 글
java 클래스변수, 인스턴스변수, 접근지정자, 지역변수 (0) | 2018.08.29 |
---|---|
java 클래스와객체 (0) | 2018.08.29 |
java 사용자입력받기, 커맨드라인, 입력창 (0) | 2018.08.29 |
이차원배열, 배열의복사 (0) | 2018.08.29 |
java 배열, 일차원배열, length (0) | 2018.08.29 |