Comment(주석)
제작한 주석을 그대로 코딩한다. O
소스 코드를 주석한다. X
= 주석 밑으로 코딩하라.
= 코드 밑에 주석을 달지 마라.
▶ Refactoring : 결과의 변경 없이 코드의 구조를 재조정하는 활동.
ex) 배열 sc를 for문의 length로 넣는것.
Class
▶ 자료와 자료를 처리하는 기능이 모여있는 객체를 기반으로 하는 사용자 정의형 데이터 타입.
객체지향 프로그래밍은 구조적 프로그래밍에서 데이터와 기능을 합침으로서 class가 발전된 형태이다.
data + 기능 = object
object를 Language 차원에서 데이터 타입으로 구현한것이 class다.
SP -> OOP
※ 객체지향프로그래밍의 오브젝트와 자바에서 말하는 오브젝트는 다른 것이다.
구조적 프로그래밍의 장점과 단점
· 장점 : 추가와 변경이 간단하여 데이터의 변경이 용이하다.
· 단점 : 기능재활용성과 데이터 재활용성이 낮아 재활용성이 낮다 (개발자의 관점)
구조적 프로그래밍은 코드가 들어가면 불안해지기 때문에 품질 유지비용이 높다. (테스터의 관점)
보안성이 낮아 보안 문제가 생긴다. (관리자의 관점)
언어의 발전
c : 구조적 프로그래밍
c++ : 구조적+객체지향적 프로그래밍
c# : 객체지향적 프로그래밍
java : 객체지향적 프로그래밍
★ 추상화 → 캡슐화 → 정보은닉 → 다용성상속성
* software crisis(소프트웨어 위기) : 급격한 컴퓨터 계산 용량과 문제의 복잡성이 급격히 증가함에 따라 발생한 충격.
※ SOLID 의 5대 원리 = 좋은 프로그래밍 언어
클래스의 기본 구조
· class = Attribute + Method
Attribute : Data, Field, Member variable (c++)
Method : Funtion or Member function (c++)
클래스의 인스턴스화
· 클래스의 인스턴스화
※ JAVA는 Run-Time 방식만 지원, C++ 은 Runtime, Complie Time 모두 지원한다.
은행계좌는 소유자 계좌번호 잔액 세가지의 정보를 가지고 있어야 하며 입금기능 출금기능 조회 기능이 있다.
constructor (생성자)
▶ 생성자란 클래스를 메모리에 적재 할 때 이를 초기화 하기 위한 특별한 메소드다.
· 생성자는 클래스와 이름이 같다.
· 리턴형이 없다.
· 명시적으로 작서을 하지 않을 경우 자바 컴파일러가 기본 생성자를 추가한다.
· 오버로딩(Overloading)하여 사용한다.
· 오버로딩된 생성자만 있는 경우 기본생성자를 넣지 않는다. (기본생성자를 반드시 작성해야한다.)
· default 생성자는 꼭 생성해야한다.
information hiding (정보 은닉)
▶ 정보은닉이란 클래스의 요소를 숨기거나 공개하는 기법이다.
정보은닉의 필요성
· 보안성 : 노출시키면 안되는 요소의 보호.
· 사용성 : 핵심기능을 제외한 다른 기능을 많이 오픈해 놓을 수 록 불필요한 품질이 공급되어 사용성이 떨어지기 때문에 불필요한 기능은 가급적 감추어야한다.
· 일관성 : 정해진 방식으로만 데이터를 접근한다.
· 확장성 : 클래스의 확장시 정보은닉을 기반으로 확장한다.
지시자 | 개념 | 동일 패키지 | 외부 |
private | 비공개 | X | X |
public | 공개 | O | O |
protected | 상속시 공개 | O | X |
(default) | 동일 패키지 공개, 생략으로 표현 | O | X |
* 객체지향의 특성 : 추상화, 캡슐화, 정보은닉, 상속성, 다형성
'JAVA' 카테고리의 다른 글
[Java] Overloading, String, StringBuilder (0) | 2022.06.02 |
---|---|
[Java] Stack 구현 (0) | 2022.05.31 |
[Java] 리터럴(Literal), 연산자 (0) | 2022.05.30 |
[Java] list, list container, linked list (0) | 2022.05.23 |
[Java] 패키지, 버블소트 (0) | 2022.05.23 |