본문 바로가기
안드로이드

안드로이드 개발시 꼭 알아야 할 자바 주제들

by 호군 2011. 1. 19.
반응형
링크 : http://eroplug.blog.me/20114689097

요번에 안드로이드를 공부해야되서 안드로이드에 필요한 자바 문법을 찾아 헤매다 발견했습니다. 자세한 내용을 다루고 있지 않지만, 그런쪽(?)인가..라는 느낌을 받을 수 있을 것 같습니다. 자바에 '자'짜도 모르시는 분은 한번 읽어보세요. 많은 도움이 안되어도 아주 작은 부분 느낌이 와닿을 수 있습니다.

 번호

주제 

이유 

 1

Class, Object 

 Java는 기본적으로 Object-oriented Programming 언어입니다. 따라서, 클래스와 객체 간의 개념에 대해선 당연히 알고 있어야 하겠죠. 클래스는 그 자체 만으로는 실행될 수 없기에 반드시 객체화 되어야 하는데, Java에서는 객체화 할 수 없는 클래스들(Interface)도 있어서 이들에 대한 관계 정립이 무엇보다 절실히 요구됩니다. 굳이 C 언어와 비교를 하자면, 우리가 함수를 main 함수 내에서 호출하여 사용하고자 할 때는 호출하기 이전에 호출하려는 함수의 "정의" 가 필요한데, 바로 이러한 '함수의 정의' 를 '클래스' 로, main 함수 내에서 이를 실제로 호출하여 사용하는 것을 '객체' 로 비유할 수 있겠습니다. 즉, 실제 프로그램적으로 실행시키려면 반드시 이전에 정의한 클래스를 먼저 객체로 생성하여 사용하여야 한다는 뜻입니다.

 2

 Package

Java 소스를 컴파일하면 Class 파일(= bytecode)이 생성되며, 이러한 Class 파일들이 여럿 모여서 Package 가 생성될 수 있습니다. Java 에서는 Package 선언 시 반드시 "." 으로 선언하며 이러한 "." 들은 각각 하나의 디렉토리(폴더)와 매칭이 되는데, 안드로이드 어플리케이션은 기본적으로 패키지 형태(*.apk)로 개발이 되니 알아두면 좋을 것 같네요. 

 3

Overload, Override 

한번 정의된 method 를 다시금 정의하는 방식으로는, 같은 method 이름으로 여러 인자 값을 조정하여 같은 이름의 method 를 여러 번 정의하는 것을 Overload(다중 정의) 라고 하며, 상속받은 상위 클래스에서 선언된 method 의 정의를 다시금 수정하는 것을 Override(재 정의)라고 합니다. 안드로이드는 상속받고자 하는 상위 클래스, 예를 들어 Activity 클래스에서 선언된 onCreate() 메쏘드를 다시금 새롭게 정의하는 Override 방식으로 구현되어 있습니다. 

 4

this, super 

Java는 클래스가 객체화 되질 않으면 프로그램에서 사용할 수 없기 때문에 참조할 수 없지만 만약 그럴 경우가 필요할 경우 사용되는 키워드가 바로 this 와 super 입니다. this 는 자기 자신, super 는 상속받으려는 상위 클래스를 지칭하는 키워드입니다.

 5

Thread 

꼭 미리 공부하시기 바랍니다. 정말 어렵기 때문입니다. ㅠ.ㅠ

사용하려는 Thread 에 대한 정의는 run() 를 이용하여 내가 하게 되지만, 이에 대한 실제 실행은 운영체제(OS)의 스케줄링에 의해 실행되기 때문에 실행에 대한 요청은 start() 를 이용하여 하게 됩니다. 또, Thread 간 서로 간에 정보를 교환해야 할 경우 Handler 가 필요하게 되는데 이런 것들이 의외로 어렵습니다.

꼭, 공부하시기 바랍니다. (★ 강조)

 6

 ArrayList

배열(array)을 좀 더 개선시킨 방법이 ArrayList 입니다. C 언어에 익숙하신 분들이라면 처음 보는 내용일테니 한번쯤 확인해 보시기 바랍니다. 

 7

 Listener, Adapter

Java는 이벤트를 발생시키는 컴포넌트(안드로이드에서는 Widget)와 이에 대한 처리(handling)는 별도로 구분하고 있습니다. 버튼이 눌렸거나 체크 박스가 체크되었을 때 무언가 이벤트 처리를 해야 하는 게 기본적일 것이므로 꼭 공부하시기 바랍니다.

 8

Socket 

안드로이드는 기본적으로 Wi-Fi 인터넷을 기본 네트워크로 가정하고 있습니다. 그러다 보니 Socket 연결을 통해 보다 유연하게 프로그램을 설계할 수 있도록 지원하고 있습니다. 소켓 프로그래밍.. 이 기회에 공부해 보심이.. ^^;;; 

 

반응형