Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 배다해
- 토익
- 네트워크보안
- error
- Android
- Intent
- xml
- 인텐트
- Java
- 서비스
- 뮤직비디오
- 자바
- 이클립스
- TOEIC
- Looper
- Eclipse
- rainbow
- 걸스데이
- 네트워크
- 브로드케스트 리시버
- HTML
- 쓰레드
- 엑티비티
- 바닐라루시
- 안드로이드
- opencv
- Linux
- 레인보우
- opengl
- 영어
Archives
- Today
- Total
W.A 저장소
객체지향의 3대 요소 본문
우리가 Java의 3대 요소를 생각할때에는 절대로 혼자서 어플리케이션을 만든다고 생각하지 말고
여러사람이 같이 무언가를 개발을 한다고 생각을 하면서 접근을 해야한다. 밑에서는 각각의 요소별로 간략하게 설명하겠다.
캡슐화라는것은 쉽게 설명하자면은 어떤 통합적인 기능을 모아서 다른곳에서는 안보이게끔 해서 만드는것이다.
쉽게 생각하면은 우리가 먹는 알약도 하나의 켑슐화이다.
생각해보자 우리는 알약을 먹을때 이것이 어떤 기능을 하는지는 안다. 하지만 그 안에 무엇이 있는지는 절대로 관심을
가지지 않는다는 것이다.
다른예를 들어보자 많이들 생각하는것이 자동차를 예를 든다. 자동차에서 캡슐화가 되있는것을 엔진과 바퀴라고 생각해보자. 그럼 엔진에서 바퀴에 몇바퀴를 돌아달라고 한다고 하면은, 엔진에서는 바퀴가 어떻게 돌아가는지는 원하지 않는다. 다만 바퀴가 자신이 원하는 만큼의 바퀴수를 돌기만 하면은 된다는것이다.
이런것이 바로 캡슐화이다.
상속(Inheritance)
상속이란 부모와 자식으로 나뉘며 부모의 변수 및 메서드를 자식이 모두 물려받는것이다. 이해를 돕기 위해서 예를 들어보겠다.
예를 들자면 부모클래스로 동물이라는것을 두고 자식으로 동물에서 나올수 있는 사자, 호랑이 이런식으로 생각을 해보자. 사자와 호랑이의 공통점은 4발이다. 또는 새끼를 낳는다 이런식으로 공통점을 가질수가 있다. 이런것에서 부모인 동물클래스에서는 사자나 호랑이같은 자식클래스의 공통점을 다 가지며 그것을 자식클래스인 사자, 호랑이가 물려받아 그것을 그대로 사용할수가 있다는점에서 보다 전체적인 프로젝트가 짜임새있게 되는 구조를 가질수가 있다.
다형성(Polymorphism)
다형성이란 두개지로 나누어 생각을 할 수가 있다. Overriding와 Overloading이다. 각각을 설명하자면은
Overriding
오버라이딩이란 부모클래스에서 정의되어 있는 내용을 자식클래스에서 재정의를 하여 사용하는것이다. 이런것의 예를 들어보면은 위에서 설명했던 동물이라는 부모클래스에서 동물들이 특성인 울음을 매서드로 정의를 했다고 하자. 하지만 자식클래스에서는 각 자식클래스(사자, 호랑이, 고양이)에서는 그 울음소리라는것이 다를수가 있기 때문에 그 울음이라는 매서드를 재정의해서 사용을 해야된다는것을 말한다.
Overloading
오버로딩이라는것은 같은 이름을 가진 매서드를 정의할수가 있다. 이것은 예를 들자면은 생성자를 정의할때 매서드의 인자를 아무것도 넣지 않았을때에는 간단하게 자신이 정의한 초기화값으로 각각의 변수를 세팅하고 하지만 매서드에 인자를 주어서 생성했을경우에는 그에 맞는 행동을 하게끔 정의를 한다는것이다.
위와같이 각각의 자바의 3요소를 간단하게 설명하였다.
'Programing' 카테고리의 다른 글
AccelerorMeter Sensor 사용 소스 (0) | 2010.07.15 |
---|---|
Android Sensor Simulator 사용법 (0) | 2010.07.15 |
Java 접근자 (0) | 2010.07.12 |
Call by value & Call by reference (0) | 2010.07.07 |
변수 명명법 (0) | 2010.01.06 |