• 검색 결과가 없습니다.

최민 충북대학교 (OCJP )

N/A
N/A
Protected

Academic year: 2022

Share "최민 충북대학교 (OCJP )"

Copied!
54
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

자바 네트워크 프로그래밍

(OCJP 국제공인자격 취득 중심 )

충북대학교 최민

(2)

2

OCJP 5.0 대비 강좌

OCJP 자격증 소개

자바기술을 직접 개발한 선 마이크로시스템즈에서 자바 프로 그래밍 언어에 관련된 지식을 표준화된 방식으로 검증해 주 시험

2010년 이전까지는 선마이크로시스템즈에서 주관

선마이크로시스템즈(Sun Microsystems)사가 오라클

(Oracle)로 인수가 되면서 자격증 명칭도 SCJP에서 OCJP 변경되었음.

시험 주관사도 프로메트릭(Prometric)에서 피어슨뷰

(PearsonVUE)로 변경돼 앞으로는 피어슨뷰 시험센터에서 시험을 볼 수 있다.

국내 시험센터는 www.vue.com 에서 확인 가능

(3)

OCJP 자격증 소개

OCJP 6.0 시험 안내

과목 수 : ‘1ZO - 853’ 와 ‘1ZO - 851’

문제 수 : 50~60문항 문제형태 : 객관식 소요시간 : 150분

합격기준 : 60%이상 정답 맞추면 합격 시험비용 : 300달러

3

OCJP 5.0 대비 강좌

(4)

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 대비 강좌

(5)

OCJP 자격증 소개

5

OCJP 5.0 대비 강좌

(6)

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 대비 강좌

(7)

시험 접수 방법

7

OCJP 5.0 대비 강좌

(8)

시험 접수 방법

8

OCJP 5.0 대비 강좌

(9)

시험 접수 방법

9

OCJP 5.0 대비 강좌

(10)

시험 접수 방법

10

OCJP 5.0 대비 강좌

(11)

시험 접수 방법

11

OCJP 5.0 대비 강좌

(12)

시험 접수 방법

12

OCJP 5.0 대비 강좌

(13)

시험 접수 방법

13

OCJP 5.0 대비 강좌

(14)

시험 접수 방법

계정 만들기

14

OCJP 5.0 대비 강좌

(15)

시험 접수 방법

회원 가입 후 24시간 이내에

ID/PASSWORD 정 보가 이메일로 수신됨

15

OCJP 5.0 대비 강좌

(16)

시험 접수 방법

PEARSON VUE 사이트 로그인

Schedule Exam 클릭

IZO-851(OCJP) 선택

시험 볼 언어 선택 NEXT

16

OCJP 5.0 대비 강좌

(17)

시험 접수 방법

SEARCH 클릭 시험볼 지역 선택 NEXT

17

OCJP 5.0 대비 강좌

(18)

시험 접수 방법

시험볼 날짜 선

시간선택 Select

Appointment 클릭

NEXT

18

OCJP 5.0 대비 강좌

(19)

시험 접수 방법

바우처

(voucher) 번호 있으면 번호 입

Apply Voucher 클릭

NEXT

바우처 없으면 결제 후 접수완

19

OCJP 5.0 대비 강좌

(20)

시험 응시 방법

시험 당일 바우처와 신분증을 지참하시고 시험장으로 go 시험장에 따라 다르지만, 시험 시간 10분전부터 입실 가능 시험장에 도착하면 감독관에게 신분증을 보인 후 온라인 시 서버에 연결할 수 있는 아이디를 받음

지정된 PC앞에 앉아서 모니터를 보면 로그인하는 화면이 있

자신의 아이디로 로그인 하면, 우선 자신의 이름과 함께 환영 한다는 메시지가 화면에 출력되고

시험에 앞서 시험 프로그램의 구조를 알 수 있는 연습 시 험이 진행됨.

20

OCJP 5.0 대비 강좌

(21)

시험 응시 방법

예를 들어, ‘지구 다음에 있는 별이 무엇인가?’, ‘겨울밤에 항 볼 수 있는 별자리가 무엇인가?’, ‘태양계에서 갈색의 행 성은 무엇인가?’

답이 여러 개인 문제(다중 선택, Multi-Choice), 답이 하나인 문제(단일 선택, Single Chioce) 답을 직접 입력해야 하는 주관식 문제

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

21

OCJP 5.0 대비 강좌

(22)

시험 응시 방법

다중 선택 문제와 단일 선택 문제 구별 방법

답을 표시하는 곳의 모양으로 구별가능함

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

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

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

22

OCJP 5.0 대비 강좌

(23)

시험 응시 방법

PEARSON VUE 센터는 OCJP 시험만 진행하는 것이 아님 따라서, MCSE나 MCSD 등 다른 자격증 응시자들과 함께 진 행하는 경우가 많음

MCSE나 MCSD 시험은 과목이 여러 개이고, 과목별로 시험 시간이 짧음

따라서, 시험을 20~30분만에 마치고 쏜살같이 나가는 사람 들이 있는데, 동요할 필요 없음.

23

OCJP 5.0 대비 강좌

(24)

시험 응시 방법

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

24

OCJP 5.0 대비 강좌

(25)

자바 네트워크 프로그래밍

(OCJP 국제공인자격 취득 중심 )

충북대학교 최민

(26)

26

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

머리글

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

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

(27)

27

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

출제기준

1. 소스 파일 구성 순서를 알아야 합니다.

2. main 메소드의 선언 규칙을 정확히 알고, 메소드의 인자 명령줄(command line)의 인수 간의 대응관계를 이해해 합니다.

3. 자바 키워드를 구분할 줄 알아야 합니다.

4. 식별자 선언 규칙을 알아야 합니다.

5. 변수와 배열의 범위와 명시적으로 값을 할당하지 않았을 자동으로 초기화되는 값들을 알아야 합니다.

6. primitive 타입과 object 타입 데이터 형을 구분할 수 있 어야 합니다.

(28)

28

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

문법설명

자바 소스파일

1. package 선언문 2. import 문

3. 클래스 본체

1. 패키지 선언문

컴파일 후 생성되는 클래스파일을 원하는 패키지에 소속 소스파일 맨 위에 한번만 올 수 있음

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

2. import 문

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

(29)

29

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

문법설명

일반적인 import 사용방법

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

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

import 패키지이름.*;

import문은 package문과 클래스 선언 사이에 위치

물론 package 선언이 생략된 경우에는 맨 위에 위치

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

(30)

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;

} }

(31)

31

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

문법설명

3. 클래스 선언부

자바에서 객체를 만드는 틀이 되는 클래스를 정의하는 부분

class 앞에는 public 제한자만 가능 default 혹은 friendly

public 이외의 제한자는 class 앞에 불가능 또한 public 클래스는 하나만 가능,

public 클래스 이름은 소스 파일과 일치 extends와 implements

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

(32)

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!”);

} }

(33)

33

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

기본예제

ocjp 패키지에 소속,

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

출력 결과

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

Hello SCJP!

(34)

34

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

기본예제

첫째 줄의 패키지 선언이 생략되면 소속 패키지가 없는 클래 스가 되며, java.lang패키지는 자바가상기계가 자동으로

import 하기 때문에 생략한 것과 코딩한 것에 아무런 차이가 없습니다. public 제한자를 생략하면 이 클래스에 대한 접근 권한이 축소되는데 제한자 문제는 “교재 3.2 메소드와 변수 접근 제어" 부분을 참고하시기 바랍니다.

class Hello {

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

} }

(35)

35

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

기본예제

[note]

패키지 선언문 존재시

생성된 클래스가 패키지이름과 같은 이름의 디렉토리 안에 있지 않 때 -> 컴파일 가능하나 예외 발생.

컴파일시 -d 옵션 부여시

패키지 선언이 있을 때 디렉토리 자동 생성,

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

(36)

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]

(37)

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("고객이름“);

} };

(38)

38

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

예제 1-1-2

소스 파일에 두 개의 클래스를 선언하는 것을 보이기 위한 예제

파일이름인 Bank 와 같은 이름의 클래스가 public 으로 선언됨.

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

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

계좌정보 고객이름

(39)

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

(40)

40

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

예제 1-1-2

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

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

default 여도 되지만 다른 클래스가 public 이면 안됨 java.lang.NoSuchMethodError: main

Exception in thread "main" Normal Termination

(41)

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;

(42)

42

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

문법설명

선언

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

패키지

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

클래스를 패키지화 하려면

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

package 패키지이름;

(43)

43

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

문법설명

또한 패키지의 구조는 계층적

여러개의 패키지를 모으면 디렉토리 구조상에 많은 클래스 파일들 각 패키지에 해당하는 서브디렉토리 안에 존재함

많은 수의 클래스 파일을 비슷한 기능을 하는 것들끼리 모아 관리 같은 패키지에 있는 것과 그렇지 않은 것들 사이의 접근 권한에 차 별을

접근 권한에 대한 자세한 설명은 교재 “3장. declaration and access specifiers“을 참조하세요.

(44)

44

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

문법설명

import 키워드 뒤에는 패키지이름.클래스이름을 주어 해당 하는 클래스를 사용할 것을 명시적으로 선언

클래스이름에는 *을 사용할 수 있는데, 이렇게 될 경우 해당 패키지 안에 있는 모든 클래스를 사용 가능하도록 선언

패키지의 이름이 계층 구조를 가지므로 실제 선언할 때에는

import java.util.Vector;

(45)

45

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

문법설명

클래스

멤버변수와 메소드로 구성되고,

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

// 클래스 선언

[ 제 한 자 ] class 클 래 스 이 름 [extends 클 래 스 이 름 ] [implements 인터페이스이름, ...] {

// 멤버 변수 선언

[제한자] [변수형] 멤버변수이름 [=초기값];

// 메소드 선언

[제한자] [리턴형] 메소드이름 (파라미터선언) [throws 예외, ...] { // 지역변수 선언

[변수형] 지역변수이름 [=초기값];

// 메소드의 내용 }

}

(46)

46

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

문법설명

class선언에서 제한자는 public이 오거나 아무것도 오지 않 할 수 있습니다.

public으로 선언한 클래스는 다른 모든 클래스들이 액세스 수 있습니다.

아무것도 쓰지 않는 경우는 default(혹은 friendly)라고 하, 같은 패키지 내의 클래스에서만 액세스할 수 있음

특별한 제한자로 abstract와 final같은 제한자들이 있는데, 자세한 것은 교재 3장에서 설명합니다.

(47)

47

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

문법설명

Extends

해당 클래스를 상속하게 하는 키워드

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

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

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

import java.util.Vector;

public class Vector2 extends Vector { // 클래스의 내용 부분

}

(48)

48

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

문법설명

Implements

인터페이스를 구현하도록 하는 키워드인데,

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

멤버변수와 메소드

필요한 만큼 얼마든지 선언할 수 있음,

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

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

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

(49)

49

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

문법설명

멤버변수

클래스보다 더욱 다양한 제한자를 사용가능 교재 3장에서 설명함

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

클래스나 메소드

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

제한자와 리턴형의 순서는 반드시 지켜야 함

제한자를 먼저 쓰고 리턴형을 마지막에 써야 합니다.

(50)

50

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

문법설명

지역변수는 메소드가 수행되는 동안 임시 기억장소로 이용되 변수

객체가 활동하는 시간동안 상태가 유지되는 멤버변수와는 달리, 지 역변수는 메소드가 수행되는 동안만 잠시 활성화되었다가 메소드가 끝나는 즉시 제거됨

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

, 지역변수는 제한자가 없습니다.

인터페이스는

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

(51)

51

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

문법설명

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

[제한자] interface 인터페이스이름 [extends 인터페이스이름] { [제한자] [변수형] 멤버변수이름[=초기값];

[제한자] [리턴형] 메소드이름 (파라미터선언) [throws 예외, ...];

//메소드의 내용을 구현하지 않음 }

(52)

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);

}

(53)

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();

} }

(54)

54

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

예제 1-2-1

메소드와 멤버 변수를 선언하는 방법에 주의하도록 하며 제한자는 모두 생략된 default 상태임

제한자에 대해서는 교재 "3장. declaration and access specifier"에서 자세히 설명되어 있습니다.

홍길동 123456

참조

관련 문서

자바에서 처리하는 예외는 모두 Exception 클래스에서 파 Exception 클래스는 Throwable 클래스의 하위 클래스임 결국 모든 예외 클래스가 Throwable의 하위

 미니 언어를 사용해서 문제를 해결하는 Interpreter 패턴..  Facade 패턴을 이용해서, 인터프리터를

– 현재의 상태를 나타내는 ConcreteState 역할을 가지고 있음 – State 패턴 이용자가 필요로 하는 인터페이스를 결정함. – 예제에서는

 다만, 관찰대상이 NumberGenerator의 하위 클래스의 인스턴스 이고 getNumber 메소드를 가지고 있다는 것만 알고 있다.. – Observer는 입력인자로

Network Computers Network computer 제조업체 독립된 Java 소프트웨어 Network computer 판매 VS Java 응용기반 Network Network Computers Network computer

Network Computers Network computer 제조업체 (Oracle, IBM, Sun). 독립된

Naimipour, Foundations of Algorithms using Java... 알고리즘 설계의 전체 목차 알고리즘

This book contains hundreds of complete, working examples illustrating many common Java programming tasks using the core, enterprise, and foun- dation classes APIs.. Java Examples