2014년 9월 10일 수요일

[안드로이드강좌] 1.Object, Class, Package[컴퓨터/IT/국비교육/무료교육/국비지원/국비지원학원/프로그램/서울자바/서울국비지원/IT국비/안드로이드/아이폰/자바국비]

Object

자바는 흔히 객체지향 언어라고 합니다. 그럼 객체란 무엇인가요? 객체(Object)를 가장 쉽게 이해할수 있는 방법은 우리주위를 그냥 무엇이 있는지 둘러보고 무엇이 있는지 보는 겁니다. 컵이 보이고 볼펜이 보이고 창문을 통해 옆집이 보입니다. 이것들이 다 객체들입니다. 소프트웨어세계의 객체는 이러한 실생활속에 객체와 그리 다르지 않습니다. 일단은 실생활 속의 객체들을 소프트웨어 세계로 추상화한것이라 생각하면 쉽습니다.
객체는 상태(State)와 행위(Behavior)의 두가지 속성을 가집니다. 상태에 대한 답을 하기위해 이런 질문을 던져봅니다. 이 객체는 어떤 상태에 있습니까? 그 객체가 자전거이라면 그 색깔, 크기, 변속기의 유무, 달려있는 변속단수가 상태가 될수 있을겁니다. 행위라면 그 객체가 할수 있는 행위, 가는것, 서는 것, 페달이 돌아가는것, 등등이 될겁니다.
이 실생활의 상태와 행위개념은 소프트웨어의 세계로 들어어면서 필드와 메소드의 개념으로 대치됩니다. 필드는 자정거의 색깔이 되는 것이고 그안에 파란색이다, 빨간색이다의 변수(Variable) 개념이 들어가면서 상태가 소프트웨어적으로 정의 되는 겁니다. 행위는 소프트웨어 객체가 할 수 있는 일이 됩니다. 행위는 객체 내부의 행위일수도 다른 객체와 의사소통을 하는 일이 될수도 있습니다.

Class

이제는 개념적으로 정의한것을 하나하나 더 구체적으로 소프트웨어의 세계로 접목시키는 방법을 볼 단계가 되었습니다. 객체라고 했는데, 그 객체를 자전거 전부로 뭉뚱그려서 정의해야할지 산악자전거, 세발자전거, 로드 자전거로 분류하여 정의할지 모호합니다. 이를 위해 클라스(Class)와 상속(Inheritance)의 개념이 동원됩니다. 일단은 다 뭉뚱그려서 자전거를 하나의 클라스로 만들고, 가장 포괄적인 상태와 행위만을 정의합니다. 이를 수퍼클라스로 하고 그 성격을 상속하여 하위에 좀더 세분화된 클라스를 놓습니다. 산악자전거, 로드자전거, 세발자전거 들이 그것입니다. 이 레벨의 클라스를 정의하면서 산악, 로드만의 독특한 상태들와 행위들을 추가적으로 집어넣습니다. 이런식으로 계속 세분화시켜가면서 프로그램내에서 이용하기 쉬울 정도의 성격을 가진 세부적인 객체를 만들어나갑니다.
이 상속의 관계를 자바의 세계에서는 다음의 표현으로 구현합니다.
class MountainBike extends Bicycle {
// new fields and methods defining a mountain bike would go here
}

Interface

인터페이스(Interface)는 하나의 객체가 그 외부의 세계와 어떤 행위를 가하거나 당하는것을 말합니다. 자전거라면 기어 단을 바꾸는것, 회전수를 늘리는것, 브레이크를 밟는것이 될겁니다. 이를 자바코드에서는 다음과 같이 구현합니다.
interface Bicycle {
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
그리고 자전거 클라스에는 다음과 같이 연결합니다.
class ACMEBicycle implements Bicycle {
// remainder of this class implemented as before
}

Package

패키지는 위에서 언급하였던 소프트웨어적인 요소를 관련있는것을 모야 하나의 패키지라 이름지워놓은 것으로 뭉뚱그려 모아놓은것을 말합니다. 이 안에는 많은 클라스들이, 자건거의 이미지가, 자전거가 할수있는 행위들의 묶음인 인터페이스가, 자전거의 상태들에 대한 정의들이 들어갈수도 잇습니다

리뷰

마지막으로 다음문장들을 곰곰히 생각해보면서 이제까지 배운것을 정리합니다..
.
실세계의 객체는 상태와 행위를 포함합니다.
Real-world objects contain state and behavior.
.
소프트웨어 객체의 상태는 필드에 저장되어잇습니다.
A software object's state is stored in fields.
.
소프트웨어 객체의 행위는 메소드를 이용하여 구현됩니다. .
A software object's behavior is exposed through methods.
.
소프트웨어세계에서 객체의 모습을 구체화시키는 것은 클라스를 통해 합니다.
A blueprint for a software object is called a class.
.
가장일반적으로 공유되는 행위는 수퍼클라스에서 정의되어지고 상속을 통하여 하위클라스로 공유됩니다. 이 과정에서 extends 라는 키 워드를 사용합니다.Common behavior can be defined in a superclass and inherited into a subclass using the extends keyword.
.
메소드를 모두 모아 놓은 것을 인터페이스라 합니다. 하지만 그 메소드의 행위가 어떤것인지 그 단계단계의 절차까지 이내에 정의 되어있지는 않습니다.
A collection of methods with no implementation is called an interface.

단어정리

객체(Object)
상태(State)
행위(Behavior)
필드(Field)
변수(Variable)
메소드(Method)
상속(Inheritance)
상호작용.인터페이스(Interface)
 
 
 
 
 
 
 



 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271795
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111304
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-151050
52 [주말주간]C#, ASP.NET마스터 오라클자바…01-311209
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-311008
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-31904
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191211
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111071
47 [평일야간,주말주간]JAVA,Network&WEB&Framework 오라클자바…01-031552
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… 오라클자바…12-271795
45 [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… 오라클자바…12-191318
44 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) 오라클자바…12-141311
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111304
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-091049
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011213
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011423
39 [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌… 오라클자바…12-01927

댓글 없음:

댓글 쓰기