Java Programming

클래스 (Class)

mynameisjh 2022. 3. 27. 16:20

객체 지향 프로그래밍의 특징

  1. 추상화
  2. 캡슐화
  3. 정보은닉
  4. 다형성
  5. 상속

 

객체 지향 설계 (SOLID) 원칙

  • 단일 책임 원칙 (SRP : Single Responsibility Principle) : 한 클래스는 하나의 책임만 가져야 한다.
  • 개방/폐쇄 원칙 (OCP : Open/Closed Principle) : 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
  • 리스코프 치환 원칙 (LSP : Liskov Substitution Principle) : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
  • 인터페이스 분리 원칙 (ISP : Interface Segregation Principle) : 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나 보다 낫다.
  • 의존관계 역전 원칙 (DIP : Dependency Inversion Principle): 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.

 

소프트웨어 위기(Software Crisis)

- 컴퓨터의 발달 과정에서 소프트웨어 개발 속도가 하드웨어 개발 속도를 따라가지 못해 사용자 요구사항을 감당할 수 없는 문제가 발생한 것을 소프트웨어 위기라고 말한다.

 

클래스

구조적(절차적) 프로그래밍의 장점과 단점은?

- 코드가 추가되면 System이 불안해진다.

- 구조적 프로그래밍에서 코드는 개발자의 기준에 따라 아무데나 들어 갈 수 있다.

= 즉 어느 곳이든 불안해 질 수 있다.

* (데이터 + 기능 = Object) Language에서 Data Type으로 구현했지만 이 개념을 처음 만든 곳이 C++ 이고, 이러한 ObjectClass라고 불렀기 때문에 Class라는 단어가 쓰이게 되었다.

자료형

- 기본적으로 메모리에 올라간다.

 

생성자 (Constructor)

- 클래스를 메모리에 적재 할 때 이를 초기화하기 위한 특별한 메소드

- 생성자는 클래스와 이름이 같다.

- 리턴형이 없다.

- 명시적으로 작성을 하지 않을 경우 자바 컴파일러가 기본 생성자 추가.

- 오버로딩(Overloading)하여 사용

- 오버로딩된 생성자만 있는 경우 기본 생성자를 넣지 않음. (기본 생성자는 반드시 작성할 것)

디폴트 생성자를 자바가 넣어주는 기준은 생성자가 없는 경우이다. 그러므로 오버로딩된 생성자가 존재하는 경우

디폴트 생성자를 만들어주지 않아서 에러가 발생하게 된다.

, 디폴트 생성자는 class를 만들 때 반드시 만들어줘야 한다.

 

정보 은닉 (Information Hiding)

- 클래스의 요소를 숨기거나 공개하는 기법

만약 총점과 평균을 구하는 프로그램을 짠 경우.

총점을 공개하게 되면 이 프로그램은 총점과 평균을 같이 알려주게 되므로 프로그램의 기능이 늘어나게 된다.

정보 은닉의 필요성

- 보안성 : 노출시키면 안되는 요소의 보호

- 사용성 : 블랙박스 개념

- 확장성 : 클래스의 확장 시 정보은닉을 기반으로 확장

* 상속받을 때 너무 많은 기능을 확장하려 하면 오히려 코드의 퀄리티가 떨어진다.

 

 기능을 많이 개방하면 좋은 것 같지만, 실제로는 그만큼 사용성이 떨어진다는 뜻이다.
 

 

'Java Programming' 카테고리의 다른 글

연결 리스트 (Linked List)  (0) 2022.03.27
참조형 (Reference)  (0) 2022.03.27
메소드 (Method)  (0) 2022.03.27