Cluster management software

Similar documents
PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Cluster management software

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - lec2.ppt

02 C h a p t e r Java

K&R2 Reference Manual 번역본

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - ch07 - 포인터 pm0415

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint Presentation

슬라이드 1

슬라이드 1

JAVA PROGRAMMING 실습 09. 예외처리

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

금오공대 컴퓨터공학전공 강의자료

03-JAVA Syntax(2).PDF

Microsoft PowerPoint - 04-UDP Programming.ppt

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

PowerPoint 프레젠테이션

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

gnu-lee-oop-kor-lec06-3-chap7

1

Microsoft PowerPoint - 2강

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - Lect04.pptx

교육자료

Microsoft PowerPoint - chap06-2pointer.ppt

4장.문장

PowerPoint 프레젠테이션

Network Programming

JUNIT 실습및발표

PowerPoint Presentation

슬라이드 1

Cluster management software

JAVA PROGRAMMING 실습 02. 표준 입출력

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

PowerPoint 프레젠테이션

05-class.key

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 05. 객체의 활용

Design Issues

JVM 메모리구조

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - C++ 5 .pptx

12-file.key

rmi_박준용_final.PDF

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

자바 프로그래밍

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

11장 포인터

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

OCW_C언어 기초

Semantic Consistency in Information Exchange

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - lec12 [호환 모드]

JAVA PROGRAMMING 실습 02. 표준 입출력

Java ...

슬라이드 1

쉽게

비긴쿡-자바 00앞부속

PowerPoint Presentation

Microsoft PowerPoint - Chapter 6.ppt

Microsoft Word - java19-1-midterm-answer.doc

쉽게 풀어쓴 C 프로그래밊

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Cluster management software

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

TEST BANK & SOLUTION

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

슬라이드 1

Microsoft PowerPoint - Java7.pptx

09-interface.key

제11장 프로세스와 쓰레드

Cluster management software

5장.key

Spring Data JPA Many To Many 양방향 관계 예제

금오공대 컴퓨터공학전공 강의자료

01-OOPConcepts(2).PDF

Transcription:

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

교재소개 http://www.forsamsung.co.kr 국제공인자바프로그래머 OCJP 실전가이드 2

예제 1-2-2 프로그램에서메인에서인수전달. public class BankAccount2 { String name; int accountnumber; void setinfo(string clientname, int clientaccount) { name = clientname; accountnumber = clientaccount; void printinfo() { System.out.println(name); System.out.println(accountNumber); 3

예제 1-2-2 public class BankAccount2 { public static void main(string[] args) { BankAccount2 client = new BankAccount2(); client.setinfo(" 홍길동 ", 123456); client.printinfo(); setinfo() 메소드는멤버변수 name 과 accountnumber 를메인에서넘겨준값으로설정 메인에서메소드로인수를넘길때는메소드를정의할때지정한파라미터들과일치하는순서와데이터형으로보냄 홍길동 123456 4

예제 1-2-3 간단한 interface 객체 interface MyInterface { void mymethod(); public class MyClass implements MyInterface { //MyClass 의내용 public void mymethod() { System.out.println("myMethod is implemented"); public static void main(string[] args) { MyClass mc = new MyClass(); // point x mc. mymethod(); 5

예제 1-2-3 결과 mymethod is implemented MyInterface 로인스턴스를만들려고하면 MyInterface mi = new MyInterface(); MyClass.java:12: MyInterface is abstract; cannot be instantiated MyInterface mi = new MyInterface(); ^ 1 error 6

메인메소드 메인메소드 public static void main(string[] args) public 제한자로선언하는것은자바가상기계가이메소드를패키지밖에서접근하기위함 static 으로선언된필드 (field) 는인스턴스를생성하지않고도접근할수있도록함. 7

메인메소드 메인메소드의파라미터 String 배열타입 명령행 (Command line) 에서실행클래스다음에적는값들이 String 배열의인덱스 0 부터저장됨 java 클래스이름인자 0 인자 1 인자 2...; 이때메인메소드의파라미터인 String 배열 args 에전달되어 args[0] 부터인자 0 의값이할당됩니다. 8

예제 1-3-1 메인메소드가잘못선언된경우 public class Hello2 { public static int main(string[] args) { System.out.println("Hello SCJP!"); return 0; 컴파일은되지만실행시에아래와같은예외발생. java.lang.nosuchmethoderror: main Exception in thread "main" Normal Termination 9

예제 1-3-1 public static void main(string[] args) 메인메소드선언규칙에서 void 가잘못되면 - 메인메소드를찾지못했다는에러발생 C 언어에서는 main 을 int 형으로선언하고 int 형을 return 하는것이문제없지만, 자바에서는메인메소드선언규칙은반드시지켜야함 main 을 int 형으로선언하고 return; 으로 int 값을되돌리지않도록해서컴파일하면? public class Hello2 { public static int main(string[] args) { System.out.println("Hello SCJP!"); return ; 10

예제 1-3-1 리턴형으로 int 를지정 하지만, return 0 등으로 int 형을반환하지않는것은잘못된문법이기때문에컴파일에러발생 Hello2.java:4: missing return value return ; ^ 1 error 11

예제 1-3-2 명령행에서메인메소드에넘기는인자의배열인덱싱 class MainArgs { public static void main(string[] args) { System.out.println("args[0] = " + args[0]); System.out.println( args[1] = " + args[1]); 메인메소드로전달하는파라미터는명령줄에서입력합니다. java MainArgs blue green red 12

예제 1-3-2 출력결과 args[0] = blue args[1] = green 만약, 인자 (argument) 는 3 개넘기고 args[3] 에접근하면 -> 예외발생 java.lang.arrayindexoutofboundsexception 13

문제 public class Foo{ public static int main(string[] args){ System.out.println("Hello World"); return; What is result? a) An exception b) The code not compile c) An exception is thrown 14

문제 public static void main(string args[]){ String foo = args[1]; String bar = args[2]; String baz = args[3]; System.out.println("baz = " + baz); If the result is baz = 2. then what command line invocation will produce the output? a) java Test 4 2 4 2 b) java Test 4 3 2 1 c) java Test 2222 15

자바프로그래밍언어의키워드와식별자 키워드 (keyword) 와예약어 (reserved word) 코드안에서문법적으로특수한의미를가져서사용자가임의로사용하는것이금지되어있는단어 자바에서는둘의차이를구분할필요가없으며, 정해진문법외로사용하면안되는단어로기억하고, SCJP 시험문제에서는두단어를구분없이풀이함 기능별로구분한자바키워드 특히 const 와 goto 는자바에서문법적으로특별한기능을하는것은아니지만, 혼돈을막기위해서식별자로는사용할수없음 16

식별자 (Identifiers) 식별자 (Identifier) 프로그래머가프로그램작성시필요에의해선택하는이름 자바프로그래밍에서변수혹은프로그램을위한이름 ( 패키지나클래스이름, 메소드, 변수이름등 ) 을붙여야할경우사용되는규칙 대소문자를구별 식별자의길이는무관 식별자는문자또는언더스코어 (underscore : _ ) 로시작식별자의첫문자는숫자여서는안됨. 식별자는문자 ( 대문자혹은소문자 ) 를포함문자와숫자, 특수문자 (_ 과 $) 의조합으로구성 키워드를사용하면안됩니다 17

식별자 (Identifiers) abstract do import public transient boolean double instanceof return try break else int short void extends interface static volatile byte case final long super while catch finally native switch char float new synchronized class for package this continue if private throw default implements protected throws 18

식별자 (Identifiers) 식별자관례 유니코드를사용하므로, 식별자를선언시한글사용가능 식별자관례를지키지않아도컴파일에러는 X 식별자를관례를따르면가독성 (readability) 이향상 식별자관례 의미있는단어를사용해서만듭니다. 클래스와인터페이스이름은첫문자를대문자로합니다. 메소드와변수이름은첫문자를소문자로합니다. 식별자가단어의결합으로되어있을때다음단어의첫번째글자를대문자로하거나 _ 로연결합니다. $ 문자는 ( 사용할수있으나 ) 사용하지않는것이좋습니다 19

실전문제 Which are keywords in java? (choose two) a) sizeof b) goto c) NULL d) this e) BOOLEAN 20

실전문제 Which one valid identifier? a) %fred b) *fred c) this d) 2fred e) fred 21

변수와배열 초기화 변수는멤버변수와지역변수두가지 멤버변수는클래스안에서선언 ( 클래스의인스턴스를통해접근 ) 지역변수는메소드안에서선언 멤버변수는 명시적인초기화구문이없더라도인스턴스를생성할때자동으로초기값을할당받음 데이터형에따라서초기값이다르므로주의필요함. 지역변수는 명시적인초기화구문이없으면컴파일에러발생가능 22

초기화 데이터형 초기값 boolean false byte '\u00000' char 0 short 0 int 0 long 0 float 0.0f double 0.0 object null 23

배열초기화 배열의선언, 생성, 초기화 배열도하나의변수이므로초기화할때에는변수를초기화하는원칙을따름 자바에서배열은객체로취급하므로, 선언하는방법이일반적인변수와조금다름 배열이멤버변수인지지역변수냐에따라명시적인초기화가필요할수도있고필요없을수도있음 여기서, 초기화라고설명하는것은명시적인초기화의경우임 24

배열초기화 일차원배열과이차원배열의변수선언 1 차원배열 : 데이터형 [] 배열이름 ; // more general 데이터형배열이름 []; 2 차원배열 : 데이터형 [][] 배열이름 ; // more general 데이터형배열이름 [][]; 데이터형 [] 배열이름 []; 25

배열초기화 변수의선언만으로객체의인스턴스가생성되지않듯 객체와유사하게배열도 new 키워드를통해서생성 데이터형 [] 배열이름 = new 데이터형 [ 배열크기 ]; 데이터형배열이름 [] = new 데이터형 [ 배열크기 ]; 이차원배열 = new 데이터형 [ 배열크기 ][ 배열크기 ]; 이차원배열 = new 데이터형 [ 배열크기 1][]; 배열이름 [0] = new 데이터형 [ 배열크기 ];... 배열이름 [ 배열크기 1] = new 데이터형 [ 배열크기 ]; 먼저 1 차원배열의크기를정하고, 그 1 차원배열에속하는크기가서로다른배열들을각각따로선언가능 2 차원배열을정의할때 1 차원배열의크기만우선정한뒤, 거기에들어갈배열들을각각따로선언하여할당해주는모습 26

배열초기화 집합표현양식을통해객체생성과초기화동시해결가능 배열이름 = { 값 1, 값 2, 값 3,... ; 배열이름 [] = { 값 1, 값 2, 값 4,... ; 배열이름 [][] = { { 값 1, 값 2, { 값 1, 값 2, 값 3, {...,...; 27

예제 1-4-1 멤버변수를명시적으로초기화하지않았을때어떤값으로초기화되는지알아봅니다 public class DefaultValue { boolean booleanvar; byte bytevar; char charvar; short shortvar; int intvar; long longvar; float floatvar; double doublevar; String stringvar; public static void main(string[] args) { DefaultValue dv = new DefaultValue(); System.out.println(dv.booleanVar); System.out.println(dv.byteVar); System.out.println(dv.charVar); System.out.println(dv.shortVar); System.out.println(dv.intVar); System.out.println(dv.longVar); System.out.println(dv.floatVar); System.out.println(dv.doubleVar); System.out.println(dv.stringVar); 28

예제설명 DefaultValue 클래스의인스턴스 dv 를생성 초기화하지않은멤버변수들을출력 인스턴스를생성하는시점에서생성된멤버변수들이자동으로지정된초기값을할당받은결과를확인 출력결과 false 0 0 0 0 0.0 0.0 null 29

예제 1-4-2 지역변수를명시적으로초기화하지않았을때결과 public class DefaultValue2 { public static void main(string[] args) { boolean booleanvar; System.out.println(booleanVar); main 메소드에속한 booleanvar 변수클래스멤버변수가아니고메소드에소속된지역변수임 컴파일하면변수가초기화되지않았다는컴파일에러를확인가능! DefaultValue2.java:4: variable booleanvar might not have been initialized System.out.println(booleanVar); ^ 1 error 30

실전문제 - 지역변수의초기화 What is result? public class Foo { public static void main(string[] args) { String s; System.out.println("s = " + s); a) Code does not compile because String s is not initialized b) Code compiles and "s = " is printed c) Code compiles and "s = null" is printed d) Code compiles, bud a NullpointException 31

실전문제 - 핸들변수선언 Which of the following one appropriate to declare an array of 50 String object? a) String a[50]; b) Object ob[50]; c) String s[]; d) String []s; 32

실전문제 byte[] array1, array2[]; byte array3[][]; byte[][] array4; if each array has been initialized which statement will error? a) array2 = array1; b) array2 = array3; c) array2 = array4; d) both a and b e) both a and c f) both b and c 33

primitive type 과 object type 프로그래밍언어에서는 사용하는데이터가어떤형태인지를분명히알아야만데이터를제대로다룰수있음 데이터의형태를명시하는 type 을사용 자바에서는 primitive type( 원시형 ) 과 object type( 객체형 ) primitive type 다른프로그래밍언어에서도볼수있는일반적인데이터형일반자료형 byte, short, int, long, float, double, char, boolean 속성에따라크게 4가지로분류 34

primitive type 과 object type 구분테이터형크기유효데이터 정수형 부동소수형 byte 1 바이트 -2 7 ~ 2 7-1 범위의정수 short 2 바이트 -2 15 ~ 2 15-1 범위의정수 int 4 바이트 -2 31 ~ 2 31-1 범위의정수 long 8 바이트 -2 63 ~ 2 63-1 범위의정수 float double 4 바이트 8 바이트 IEEE 754 에기반하는 4 바이트실수 double 과구분하기위해숫자뒤에 F 를사용 IEEE 754 에기반하는 8 바이트실수숫자뒤에는아무것도붙이지않거나 D 를붙임 문자형 char 2 바이트작은따옴표로묶인 1 개의문자 논리형 boolean - true 또는 false 35

primitive type 과 object type object type 은 non-primitive type 객체의틀이라고할수있는클래스의형태가바로 object type 을결정합니다. object type 은 new 키워드로생성 자신의멤버변수와메소드등을이용할수있다는것이특징 참조자료형 (reference type) 이라고도함 object type 의정보를가지고있는변수가객체자체가아니고, 메모리상에존재하는객체의위치를참조하는포인터 (pointer) 이기때문 object type 의선언및생성과정 핸들변수를생성되고객체를인스턴스화한다음 해당인스턴스가멤버변수와메소드를참조하는형태 36