54
자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심) 충북대학교 최민

자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

Embed Size (px)

Citation preview

Page 1: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심)

충북대학교

최민

Page 2: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

2 OCJP 5.0 대비 강좌

OCJP 자격증 소개 자바기술을 직접 개발한 선 마이크로시스템즈에서 자바 프로그래밍 언어에 관련된 지식을 표준화된 방식으로 검증해 주는 시험 2010년 이전까지는 선마이크로시스템즈에서 주관 선마이크로시스템즈(Sun Microsystems)사가 오라클(Oracle)로 인수가 되면서 자격증 명칭도 SCJP에서 OCJP로 변경되었음. 시험 주관사도 프로메트릭(Prometric)에서 피어슨뷰(PearsonVUE)로 변경돼 앞으로는 피어슨뷰 시험센터에서 시험을 볼 수 있다. 국내 시험센터는 www.vue.com 에서 확인 가능

Page 3: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

OCJP 자격증 소개 OCJP 6.0 시험 안내 과목 수 : ‘1ZO - 853’ 와 ‘1ZO - 851’

문제 수 : 50~60문항

문제형태 : 객관식

소요시간 : 150분

합격기준 : 60%이상 정답 맞추면 합격

시험비용 : 300달러

3 OCJP 5.0 대비 강좌

Page 4: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified Programmer Exam) 시험문항 : 60문제

시험시간 : 180분

시험합격기준 : 58%

시험출제 : 객관식

시험시간 : 175분

시험비용 : $300

IZO-851 (Java SE 6 Programmer Certified Programmer Exam) 시험문항 : 61문제

시험시간 ; 145분

시험합격기준 : 59%

시험출제 : 객관식

시험시간 : 175분

시험비용 : $300 4 OCJP 5.0 대비 강좌

Page 5: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

OCJP 자격증 소개

5 OCJP 5.0 대비 강좌

Page 6: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

OCJP 자격증 소개 SCJP 자격증은 J2SE (Java 2 Platform, Standard Edition) 기반의 Java Programming 언어에 대한 기본적인 지식을 기반으로 Java의 능률성을 실행하는데 관심이 있는 프로그래머들을 위한 자격증입니다. Java 기술을 직접 개발한 썬 마이크로시스템즈에서 Java Programming 언어에 관련된 지식을 표준화된 방식으로 검증해 주는 시험이며, 또한 Java 기반의 모든 툴 개발에 필요한 기초 지식을 인정 받을 수 있는 자격증입니다. 자바 자격증의 기본이 되는 자격증이며, 이후 다른 JAVA 자격증을 취득하기 위해서 우선 취득해야 하는 자격증입니다.

SCJP외에도 SCWCD, SCBCD, SCJD, SCMAD, SCEA 자격증이 있음

6 OCJP 5.0 대비 강좌

Page 7: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

7 OCJP 5.0 대비 강좌

Page 8: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

8 OCJP 5.0 대비 강좌

Page 9: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

9 OCJP 5.0 대비 강좌

Page 10: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

10 OCJP 5.0 대비 강좌

Page 11: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

11 OCJP 5.0 대비 강좌

Page 12: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

12 OCJP 5.0 대비 강좌

Page 13: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법

13 OCJP 5.0 대비 강좌

Page 14: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 계정 만들기

14 OCJP 5.0 대비 강좌

Page 15: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 회원 가입 후 24시간 이내에 ID/PASSWORD 정보가 이메일로 수신됨

15 OCJP 5.0 대비 강좌

Page 16: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 PEARSON VUE 사이트 로그인 Schedule Exam 클릭 IZO-851(OCJP) 선택 시험 볼 언어 선택 NEXT

16 OCJP 5.0 대비 강좌

Page 17: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 SEARCH 클릭 시험볼 지역 선택 NEXT

17 OCJP 5.0 대비 강좌

Page 18: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 시험볼 날짜 선택 시간선택 Select Appointment 클릭 NEXT

18 OCJP 5.0 대비 강좌

Page 19: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 접수 방법 바우처

(voucher) 번호 있으면 번호 입력 Apply Voucher 클릭 NEXT 바우처 없으면 결제 후 접수완료

19 OCJP 5.0 대비 강좌

Page 20: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 응시 방법 시험 당일 바우처와 신분증을 지참하시고 시험장으로 go 시험장에 따라 다르지만, 시험 시간 10분전부터 입실 가능 시험장에 도착하면 감독관에게 신분증을 보인 후 온라인 시험 서버에 연결할 수 있는 아이디를 받음 지정된 PC앞에 앉아서 모니터를 보면 로그인하는 화면이 있음 자신의 아이디로 로그인 하면, 우선 자신의 이름과 함께 환영한다는 메시지가 화면에 출력되고 본 시험에 앞서 시험 프로그램의 구조를 알 수 있는 연습 시험이 진행됨.

20 OCJP 5.0 대비 강좌

Page 21: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 응시 방법 예를 들어, ‘지구 다음에 있는 별이 무엇인가?’, ‘겨울밤에 항상 볼 수 있는 별자리가 무엇인가?’, ‘태양계에서 갈색의 행성은 무엇인가?’ 답이 여러 개인 문제(다중 선택, Multi-Choice),

답이 하나인 문제(단일 선택, Single Chioce)

답을 직접 입력해야 하는 주관식 문제

등을 제시하고 적절하게 응답하는 요령을 알려줌 물론, 이 문제는 맞히거나 틀리거나 본 시험과는 전혀 관계 없음

21 OCJP 5.0 대비 강좌

Page 22: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 응시 방법 다중 선택 문제와 단일 선택 문제 구별 방법 답을 표시하는 곳의 모양으로 구별가능함

다중 선택 문제는 체크 박스(□) 형태로 여러 개의 답을 체크(√)할 수 있으며,

단일 선택 문제는 옵션 버튼(○) 형태로 오직 하나의 답만 선택()할 수 있음

연습 시험 문제를 다 풀고 “End” 버튼을 누르면 시험을 마치고 답안을 제출하는 것인데, 연습 시험에 대한 결과가 화면에 표시됨.

22 OCJP 5.0 대비 강좌

Page 23: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 응시 방법 PEARSON VUE 센터는 OCJP 시험만 진행하는 것이 아님 따라서, MCSE나 MCSD 등 다른 자격증 응시자들과 함께 진행하는 경우가 많음 MCSE나 MCSD 시험은 과목이 여러 개이고, 과목별로 시험 시간이 짧음 따라서, 시험을 20~30분만에 마치고 쏜살같이 나가는 사람들이 있는데, 동요할 필요 없음.

23 OCJP 5.0 대비 강좌

Page 24: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

시험 응시 방법 시험이 종료되면 약 30초 후에 시험 결과가 모니터에 나타남 합격인 경우에는 “Congratulation!” 메시지와 함께 합격 기준 점수(61%)와 자신의 스코어가 막대 그래프로 나타남, 프린터로 출력하여 감독관의 확인 도장을 받아 가져오면 됨

24 OCJP 5.0 대비 강좌

Page 25: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심)

충북대학교 최민

Page 26: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

26 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

머리글 이 장에서는 자바의 기본 문법을 설명합니다. 소스파일을 구성하는 방법부터 클래스를 선언하고, 이를 이루는 멤버변수와 메소드를 선언하고 이용합니다. 이들을 선언하고 사용하는 정해진 규칙들을 숙지하는 것이 이 장의 목적입니다.

OCJP 시험에서도 10% 정도 빠지지 않고 출제되고 있으므로, 소홀히 하지 않도록 합니다. 특히 자바언어를 처음 공부하시는 분들은 반드시 정확히 이해하시길 바랍니다.

Page 27: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

27 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

출제기준 1. 소스 파일 구성 순서를 알아야 합니다. 2. main 메소드의 선언 규칙을 정확히 알고, 메소드의 인자와 명령줄(command line)의 인수 간의 대응관계를 이해해야 합니다. 3. 자바 키워드를 구분할 줄 알아야 합니다. 4. 식별자 선언 규칙을 알아야 합니다. 5. 변수와 배열의 범위와 명시적으로 값을 할당하지 않았을 때 자동으로 초기화되는 값들을 알아야 합니다. 6. primitive 타입과 object 타입 데이터 형을 구분할 수 있어야 합니다.

Page 28: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

28 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 자바 소스파일 1. package 선언문

2. import 문

3. 클래스 본체

1. 패키지 선언문 컴파일 후 생성되는 클래스파일을 원하는 패키지에 소속

소스파일 맨 위에 한번만 올 수 있음

패키지에 소속시키고자 하지 않을 때는 생략가능

2. import 문 프로그램 내에서 사용할 클래스를 다른 패키지에서 가져옴

Page 29: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

29 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 일반적인 import 사용방법

import 패키지이름.클래스이름;

한 패키지에 있는 클래스 전부를 import 할 때

import 패키지이름.*;

import문은 package문과 클래스 선언 사이에 위치 물론 package 선언이 생략된 경우에는 맨 위에 위치

import문은 package와는 달리 여러개를 사용할 수 있습니다.

Page 30: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

30 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 [NOTE]

java.lang 패키지는 자동으로 import

import 문을 사용하지 않고 다른 패키지의 클래스를 사용 클래스를 사용할 때 그 클래스의 패키지 이름까지 같이 명시 java.util.Vector

public class VectorTest { public static void main(String args[]) { java.util.Vector vector = new java.util.Vector(); java.util.Vector vector2 = vector; } }

Page 31: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

31 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 3. 클래스 선언부 자바에서 객체를 만드는 틀이 되는 클래스를 정의하는 부분

class 앞에는 public 제한자만 가능 default 혹은 friendly public 이외의 제한자는 class 앞에 불가능 또한 public 클래스는 하나만 가능, public 클래스 이름은 소스 파일과 일치 extends와 implements

[public] class [extends ...], [implements ...] {}

Page 32: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

32 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

기본예제 예제 1-1-1 Top-level 의 순서 패키지 선언문과 import문을 모두 사용

package scjp; import java.lang.*; public class Hello { public static void main(String[] args) { System.out.println(“Hello SCJP!”); } }

Page 33: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

33 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

기본예제 ocjp 패키지에 소속,

java.lang 패키지의 모든 클래스를 import 하여 사용가능

출력 결과 첫째 줄과 둘째 줄의 (선언과 public 제한자)는 생략가능

Hello SCJP!

Page 34: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

34 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

기본예제 첫째 줄의 패키지 선언이 생략되면 소속 패키지가 없는 클래스가 되며, java.lang패키지는 자바가상기계가 자동으로 import 하기 때문에 생략한 것과 코딩한 것에 아무런 차이가 없습니다. public 제한자를 생략하면 이 클래스에 대한 접근권한이 축소되는데 제한자 문제는 “교재 3.2 메소드와 변수의 접근 제어" 부분을 참고하시기 바랍니다.

class Hello { public static void main(String[] args) { System.out.println(“Hello SCJP!”); } }

Page 35: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

35 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

기본예제 [note] 패키지 선언문 존재시 생성된 클래스가 패키지이름과 같은 이름의 디렉토리 안에 있지 않을 때 -> 컴파일 가능하나 예외 발생.

컴파일시 -d 옵션 부여시 패키지 선언이 있을 때 디렉토리 자동 생성,

컴파일 결과 생성된 *.class 파일을 해당 디렉토리에 넣어줌

Page 36: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

36 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

기본예제 1. 도스 프롬프트에서 컴파일 할 때

javac -d Hello.java

2. EditPlus에서 컴파일 할 때

[도구-사용자 도구 구성] 에서 명령(O) 텍스트 필드에 (javac.exe의 경로) -d

예) C:\jdk1.3.1\bin\javac.exe -d

3. Eclipse에서 컴파일 시

[Run-Run as – Java Application]

Page 37: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

37 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-1-2 한 소스파일에 두 개 이상의 클래스를 선언해봅니다. 이 때 public 클래스는 한 파일에 하나밖에 올 수 없다는 것을 확인합니다.

public class Bank { public static void main(String[] args) { Account client = new Account(); client.printInfo(); } } class Account { void printInfo() { System.out.println("계좌정보"); System.out.println("고객이름“); } };

Page 38: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

38 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-1-2 한 소스 파일에 두 개의 클래스를 선언하는 것을 보이기 위한 예제 파일이름인 Bank 와 같은 이름의 클래스가 public 으로 선언됨.

Bank 클래스를 default 로 선언해도 상관없으나

Account 클래스만 public 으로 선언하거나 두 클래스 모두 public 으로 선언하면 컴파일 에러가 발생함.

계좌정보 고객이름

Page 39: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

39 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-1-2 Account 클래스를 public 으로 선언했을 때 컴파일 에러

Account 클래스가 public 으로 선언되었기 때문에 파일 이름이 Account.java 가 되어야 함

public 으로 선언된 Account 클래스 이름과 같이 파일 이름을 고치면? 컴파일 시에는 문제가 없지만, 이번에는 실행시에 에러가 발생

Bank.java:8: class Account is public, should be declared in a file named Account.java public class Account { ^ 1 error

Page 40: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

40 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-1-2

public 클래스에서 메인 메소드를 찾을 수 없기 때문

실행을 위한 소스파일에서는 main 을 포함한 클래스만이 public 으로 선언될 수 있음

default 여도 되지만 다른 클래스가 public 이면 안됨

java.lang.NoSuchMethodError: main Exception in thread "main" Normal Termination

Page 41: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

41 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문제 when the file name is Test.java, which two statements are illegal in //point x. (choose two) //point x class Var{ } a) package foo; b) import java.io.*; c) public class Test{ ...... } d) public class Bar{ ...... } e) public int I;

Page 42: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

42 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 선언 패키지, 클래스, 인터페이스, 메소드, 변수 선언

패키지 클래스들을 비슷한 역할을 하는 것들끼리 묶어서 편의를 제공하지 위한 것

클래스를 패키지화 하려면 같은 패키지의 클래스 파일들을 같은 디렉토리에 모아야 함.

package 패키지이름;

Page 43: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

43 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 또한 패키지의 구조는 계층적 여러개의 패키지를 모으면 디렉토리 구조상에 많은 클래스 파일들이 각 패키지에 해당하는 서브디렉토리 안에 존재함

많은 수의 클래스 파일을 비슷한 기능을 하는 것들끼리 모아 관리

같은 패키지에 있는 것과 그렇지 않은 것들 사이의 접근 권한에 차별을 둠 접근 권한에 대한 자세한 설명은 교재 “3장. declaration and access specifiers“을 참조하세요.

Page 44: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

44 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 import 키워드 뒤에는 패키지이름.클래스이름을 주어 해당하는 클래스를 사용할 것을 명시적으로 선언 클래스이름에는 *을 사용할 수 있는데, 이렇게 될 경우 해당 패키지 안에 있는 모든 클래스를 사용 가능하도록 선언 패키지의 이름이 계층 구조를 가지므로 실제 선언할 때에는

import java.util.Vector;

Page 45: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

45 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 클래스 멤버변수와 메소드로 구성되고,

메소드 안에는 메소드 내부에서만 사용되는 지역변수(자동변수)가 선언 가능

// 클래스 선언 [제한자 ] class 클래스이름 [extends 클래스이름 ] [implements 인터페이스이름, ...] { // 멤버 변수 선언 [제한자] [변수형] 멤버변수이름 [=초기값]; // 메소드 선언 [제한자] [리턴형] 메소드이름 (파라미터선언) [throws 예외, ...] { // 지역변수 선언 [변수형] 지역변수이름 [=초기값]; // 메소드의 내용 } }

Page 46: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

46 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 class선언에서 제한자는 public이 오거나 아무것도 오지 않게 할 수 있습니다. public으로 선언한 클래스는 다른 모든 클래스들이 액세스할 수 있습니다. 아무것도 쓰지 않는 경우는 default(혹은 friendly)라고 하며, 같은 패키지 내의 클래스에서만 액세스할 수 있음 특별한 제한자로 abstract와 final같은 제한자들이 있는데, 자세한 것은 교재 3장에서 설명합니다.

Page 47: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

47 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 Extends 해당 클래스를 상속하게 하는 키워드

상속은 교재 7장과 8장에서 중점적으로 언급함

자바는 다중 상속을 지원하지 않으므로, extends 뒤에는 오직 하나의 클래스만 사용할 수 있음

다음은 java.util.Vector클래스를 상속하는 방법

import java.util.Vector; public class Vector2 extends Vector { // 클래스의 내용 부분 }

Page 48: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

48 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 Implements 인터페이스를 구현하도록 하는 키워드인데,

여러개의 인터페이스를 한 클래스에서 구현할 수 있음 (implements 뒤에는 여러개의 인터페이스가 올 수 있음)

멤버변수와 메소드 필요한 만큼 얼마든지 선언할 수 있음,

어느 것을 먼저 선언해야한다는 규칙은 없음.

멤버변수와 메소드를 번갈아 가면서 선언해도 컴파일 에러는 발생하지 않음.

일반적으로는 소스 코드의 가독성을 높이기 위해 클래스의 앞부분에 필요한 멤버변수를 모두 선언하고 뒷부분에 메소드들을 선언

Page 49: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

49 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 멤버변수 클래스보다 더욱 다양한 제한자를 사용가능

교재 3장에서 설명함

또한 멤버변수를 선언할 때에는 초기값을 줄 수 있는데, 주지 않을 경우는 정해진 값으로 자동으로 초기화됩니다.

클래스나 메소드 성격이 다른 여러 가지 제한자를 함께 사용할 경우 제한자의 순서는 컴파일 에러를 유발하지 않지만,

제한자와 리턴형의 순서는 반드시 지켜야 함 제한자를 먼저 쓰고 리턴형을 마지막에 써야 합니다.

Page 50: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

50 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 지역변수는 메소드가 수행되는 동안 임시 기억장소로 이용되는 변수 객체가 활동하는 시간동안 상태가 유지되는 멤버변수와는 달리, 지역변수는 메소드가 수행되는 동안만 잠시 활성화되었다가 메소드가 끝나는 즉시 제거됨

따라서, 외부에서는 메소드 내의 지역변수를 액세스할 수 없습니다. 즉, 지역변수는 제한자가 없습니다.

인터페이스는 클래스처럼 메소드와 멤버변수를 가지지만 모든 메소드가 선언만 되어있고 구현은 되어있지 않은 특별한 형태

Page 51: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

51 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문법설명 인터페이스는 그 자체로 어떤 기능을 제공하기 위한 객체가 아닌, 객체들이 서로 통신하기 위한 인터페이스를 제공

[제한자] interface 인터페이스이름 [extends 인터페이스이름] { [제한자] [변수형] 멤버변수이름[=초기값]; [제한자] [리턴형] 메소드이름 (파라미터선언) [throws 예외, ...]; //메소드의 내용을 구현하지 않음 }

Page 52: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

52 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-1 클래스에서 멤버변수와 메소드를 선언하고 메인에서 인스턴스를 생성하고 이용하는 예제 모든 객체는 사용하기 전에 인스턴스화 하는 작업이 필요

main메소드에서 자기 자신(BankAccount)의 인스턴스를 만들어 줌

public class BankAccount { String name = "홍길동"; int accountNumber = 123456; void printInfo() { System.out.println(name); System.out.println(accountNumber); }

Page 53: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

53 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-1 name과 accountNumbe는 BankAcount의 멤버변수입니다.

printInfo() 메소드 역시 이 클래스에 소속되어 있는 멤버

new 키워드로 생성한 client라는 인스턴스를 통해서 접근 가능

public class BankAccount { public static void main(String[] args) { BankAccount client = new BankAccount(); client.printInfo(); } }

Page 54: 자바 네트워크 프로그래밍 - elearning.kocw.netelearning.kocw.net/KOCW/document/2014/Chungbuk/choimin/1.pdf · OCJP 자격증 소개 IZO-853 (Java SE 5 Programmer Certified

54 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-1 메소드와 멤버 변수를 선언하는 방법에 주의하도록 하며 제한자는 모두 생략된 default 상태임 제한자에 대해서는 교재 "3장. declaration and access specifier"에서 자세히 설명되어 있습니다.

홍길동 123456