일반적으로 소프트웨어 개발 방법론은 절차 지향 방법과 객체 지향 방법으로 분류된다. 절차 지향 방법은 문제를 차근차근 해결해나간다는 알고리즘 관점과 일맥 상통하여 낯설지 않다. 최근 강조되고 있는 조기 소프트웨어 교육도 논리에 따른 순차 실행 개념부터 시작되므로 이 역시 절차 지향 사고로 볼수 있다. 대학의 컴퓨터 관련 전공 학과에서도 대표적인 절차 지향 프로그래밍 언어인 C 언어부터 시작하는 경우가 많다. 이러한 절차 지향 사고에서는 소프트웨어 개발이 데이터를 매개 인수로 받아, 주어진 처리 기능을 적용하는 프로시저(모듈) 중심으로 이루어진다. 즉, 처리 프로시저 주변에 매개 인수로 사용될 데이터가 산재해 있는 모습으로, 이는 하나의 프로시저가 여러 데이터
를 공통으로 지원할 수 있음을 강조한다.
객체 지향 방법은 절차 지향 방법과는 다르게 데이터를 중심에 두고, 그 데이터의 변화를 관리하는 메소드(처리 프로시저)를 데이터 옆에 붙이자는 개념인데, 이는 어떤 주체(데이터)가 행동(메소드)하는 현실 상황과 일치한다. 이와 같이 주체와 행동이 결합된 개체를 객체라 부른다. 객체 지향 방법에서는 데이터(타입)마다 고유의 메소드가 붙기 때문에 전체적으로 프로시저의 수가 많아질 것임은 당연하다. 또한, 객체 지향 방법론에는 소프트웨어 공학 이론에서 다뤄지는 고급 주제(개념)들이 많이 스며있기 때문에 이러한 개념을 충분히 활용하고 적용하기 위해서는 많은 노력이 필요하다. 객체 지향 방법이라고 하여 절차 지향 개념이 전혀 필요없는 것은 결코 아니다. 데이터의 메소드는 결국 절차 지향적으로 구현되어야 하기 때문이다. 특히 객체 지향 언어인 자바는 C 언어의 처리 문장 구조를 거의 그대로 도입했다.
이 교재는 C 언어를 충분히 학습한 후, 자바 프로그래밍을 처음 접하는 학생들을 위해 마련되었다. 한마디로 “C 언어에서는 이렇게 했는데, 자바에서는 어떻게 하나?”라는 호기심에 대한 신속한 실마리가 되리라 믿는 바이다.
STEP_00. HELLO 자바
STEP_01. 클래스 만들기
STEP_02. 메소드 중복 정의(Method Overloading)
STEP_03. 중첩 클래스(Nested Class)
STEP_04. 소스 파일 분리
STEP_05. 객체지향 프로그래밍
STEP_06. 클래스 상속ㆍ 확장(Class Inheritance & Extense)
STEP_07. 클래스 패키지(Class Package)
STEP_08. 접근 제한 모드(Access Modifier)
STEP_09. 인터페이스의 추상 클래스(Interface & Abstract Class)
STEP_10. 기초 GUI 프로그래밍
STEP_11. 오류 처리(예외: Exception)
STEP_12. 기본 타입과 포장 클래스
STEP_13. 배열과 배열 리스트('Arrays' & 'ArrayList')
STEP_14. 배열과 배열 리스트 정렬
STEP_15. 파일 입ㆍ 출력
STEP_16.스레드(Thread)
STEP_17.표식(Annotation)