지금까지 공부하면서 제일 어렵다고 느낀 건 OOP였다.
그래서 조금 정리를 해보고자 한다.
OOP는 객체지향언어라고 불리며, 각 객체에서 일어나는 모든일들을 컴퓨터로 옮겨 놓은 것을 의미한다고 한다.
이 말만 들으면 무슨 말인지 모르겠다 ㅅㅂ 쉽게 좀 설명해봐
객체는 뭐냐??
객체란 각각 구분하고 인식할 수 있는 모든 것을 의미한다
그냥 쉽게 말해서
이 글을 쓰고 있는 나도 객체이고, 이 글을 보고 있는 너님도 객체란 것!
즉, 다시 말해서 사람을 예로 들면... 흠..
사람의 속성 --> 머리 색깔, 키, 눈 크기
이런 것들이 있다.
이런것 들이 자바의 객체에서는 필드영역에 해당된다.
그리고 사람은 움직일 수 있는데
현재 이걸 읽고있는 행위, 그리고 먹는 행위, 노는 행위 이것 처럼 동사로 표현할 수 있는 것들을 자바의 객체에서는 메서드 영역에 해당된다는 것
말이 좀 어려운데.. 한 번에 이해가 안되니 여러 번 생각하고 돌려보자
OOP에는 크게 4가지 특징이 있다.
단어가 참 어렵다.
근데 밑에 설명을 들으면 참 쉬울 거다.
추상화라는 건 간단하게 생각하면 공통점을 모으면서 불필요한 것들을 제거하는 과정이라고 생각하면 된다.
프로그램에서 필요한 공통점(속성)을 추출하고, 불필요한 부분을 제거하는 과정이다.
우리나라 국민을 예로 들면 공통적인것으로 주민번호, 나이, 성별, 이름 등등 공통적으로 가지고 있는 것들을 모아서 나머지 불필요한 것을 제거한 것이라고 생각하면 된다.
말 그대로 캡슐안에 다 넣은 것이다.
추상화를 통해서 정리된 데이터들과 기능을 하나로 묶고, 직접 접근제한의 원칙을 둬서, 속성의 직접적인 접근을 방지하는 것이다.
But 속성 값의 간접적인 접근을 위한 메서드는 클래스 내에 작성하는 것!
더 간단하게 말하면, 안에 정보들을 캡슐로 한 군데 다 넣어두고 외부에서 못보게 한 뒤, 뭐가 있는지 보고 싶으면 빨대로 콕 찔러서 뽑아 먹어 이거다.
상속..
말 그대로 물려주는 거다
부모 클래스의 메서드와 속성들을 자식 클래스에 물려줘서 자식이 이미 가지고 있는 것과 합체 하는 거!
필요에 따라 객체가 모양을 바꿔 나가는 것을 다형성이라고 한다.
간단하게 말해도 어렵게 느껴지는 건 기분탓이 아니고 진짜 어려운 거다.
처음부터 다 이해할 수 없고 다 외울수 없다.
자주 보고 익숙해지자.
그게 답이다.
18 자주보자...