WEB

스프링 입문을 위한 자바 객체지향의 원리와 이해

paulaner80 2016. 4. 15. 01:47
반응형

02 자바와 절차적/ 구조적 프로그래밍

자바 프로그램의 개발과 구동

객체지향 프로그램에서는 데이터 저장 영역을(T 메모리 구조) 다시 세개의 영역으로(static, stack , heap) 분할 해서 사용한다. 


다시 보는 main() 메서드 : 메서드 스택 프레임

스태틱 영역 : 클래스들의 놀이터

스택 영역 :  메서드들의 놀이터

힙 영역 : 객체들의 놀이터


변수와 메모리: 넌 어디서 왔니?


블록 구문과 메모리: 블록 스택 프레임


지역변수와 메모리 : 스택 프레임에 갇혔어요!

지역변수는 스택영역에서 일생을 보낸다. 그것도 스택 프레임 안에서 일생을 보내게 된다.

클래스 멤버 변수는 스태틱 영역에서 일생을 보낸다. 스태틱 영역에서 한 번 자리 잡으면 jvm이 종료될때까지 고정된 (static) 상태로 그 자리를 지킨다.


메서드 호출과 메모리: 스택 프레임2


전역 변수와 메모리 : 전역변수 쓰지 말라니깐요


멀티 쓰레드/ 멀티 프로세서의 이해

멀티 쓰레드의 T 메모리 모델은 스택영역을 쓰레드 갯수만큼 분할해서 쓰는 것이다.

멀티 프로세서는 다수의 저장영역, 즉 다수의 T 메모리를 갖는 구조다


STS 또는 이클립스를 이용해 T 메모리 영역 엿보기



03 자바와 객체 지향

객체지향은 인간지향이다.

사물을 하나하나 이해하기 보다는 사물을 분류(class)해서 이해하는 것이 인간의 인지법이다.


객체지향의 4개 특성 - 캡! 상추다

캡 - 캡슐화

상 - 상속

추 - 추상화

다 - 다형성


클래스 vs 객체 = 붕어빵틀 vs 붕어 빵

추상화: 모델링

클래스 멤버 vs 객체 멤버 = static 멤버 vs 인스턴스 멤버

상속 : 재사용 + 확장

상속의 강력함

상속은 is a 관계를 만족해야 한다?

 -> 하위 클래스는 하나의 상위 클래스이다. 

is a kind of

다중 상속과 자바

상속과 인터페이스

인터페이스는 be alble to, 즉 " 무엇을 할 수 있는"이라는 형태로 표현하는 것이 좋다.

상속과 T 메모리

명시적 형변화 (Casting) 암묵적 형변환(Promotion)

다형성 : 편의성

오버라이딩? 오버로딩?

다형성과 T 메모리

다형성이 지원되지 않는 언어

얼마나 사용하기 편리한지..

캡슐화 정보 은닉

객체 멤버의 접근 제어자

- : private

~: default

#: protected

+:public

참조변수의 복사


04 자바가 확장한 객체지향

abstract 키워드 - 추상 메서드와 추상클래스

생성자

클래스의 인스턴스 즉 객체를 만들 때마다 new 키워드를 사용한다.

클래스 생성 시의 실행 블록, static 블록

static 블록 : 클래스가 스태틱 영역에 배치될 때 실행되는 코드블록

클래스 정보는 해당 클래스가 코드에서 맨처음 사용될 때 T 메모리의 스태틱 영역에 로딩되며, 이 때 단 한번 해당 클래스의  static 블록이 실행된다. 여기서 클래스가 제일 처음 사용될 때는 다음 세 가지 경우 중 하나이다.

- 클래스의 정적 속성을 사용할 때

- 클래스의 정적 메소드를 사용할 때

- 클래스의 인스턴스를 만들 때



05 객체 지향 설계 5원칙 - SOLID

S (Single Responsibility Principle)

O (Open Closed Principle)

L (Liskov Subsitution  Principle)

I (Interface Segregation Principle)

D (Dependency Inversion Principle)

'WEB' 카테고리의 다른 글

언더스코어-정리  (0) 2017.12.29
자바스크립트+제이쿼리  (0) 2016.05.21
크롬에서 request, response header 확인하기.  (0) 2016.04.14