<4D F736F F F696E74202D205B4A415641C7C1B7CEB1D7B7A1B9D65D36C0E5C6D0C5B0C1F6>

Similar documents
6장.key

Microsoft PowerPoint - java1-lecture7.ppt [호환 모드]

Microsoft PowerPoint - java2-lecture5.ppt [호환 모드]

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - java1-lecture6.ppt [호환 모드]

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

07 자바의 다양한 클래스.key

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

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

02 C h a p t e r Java

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Presentation

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

5장.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - lec7_package [호환 모드]

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

PowerPoint Presentation

Design Issues

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Java7.pptx

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

Microsoft PowerPoint - java1-lecture5.ppt [호환 모드]

Microsoft PowerPoint - 2강

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

PowerPoint Presentation

Java ...

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 05. 객체의 활용

슬라이드 1

12-file.key

쉽게 풀어쓴 C 프로그래밍

쉽게

제11장 프로세스와 쓰레드

TEST BANK & SOLUTION

PowerPoint 프레젠테이션

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

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

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

PowerPoint Presentation

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

4장.문장

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

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

Microsoft PowerPoint - 04-UDP Programming.ppt

17장 클래스와 메소드

비긴쿡-자바 00앞부속

Network Programming

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

05-class.key

C++ Programming

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

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

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밊

PowerPoint 프레젠테이션

슬라이드 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

Microsoft Word - java18-1-final-answer.doc

슬라이드 1

Microsoft Word - EEL2 Lab4.docx

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

09-interface.key

PowerPoint 프레젠테이션

03-JAVA Syntax(2).PDF

Java

JUNIT 실습및발표

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - lec3.ppt

슬라이드 1

Microsoft PowerPoint - lec2.ppt

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µå

Microsoft PowerPoint - java1-lecture5.ppt [호환 모드]

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Transcription:

명품 JAVA Programming 1 제 6 장패키지개념과자바기본패키지

패키지개념과필요성 2 3명이분담하여자바응용프로그램을개발하는경우, 동일한이름의클래스가존재할가능성있음 -> 합칠때오류발생

디렉터리로각개발자의코드관리 ( 패키지 ) 3 Project FileIO Graphic WebFile.class FileCopy.class FileRW.class Tools.class DObject.class Line.class Rect.classclass Circle.class 이름은같지만경로명이달라서도다른파일로취급 Project/FileIO/Tools.classclass Project/UI/Tools.class UI Main.class GUI.class EventHandler.class Tools.class

자바의패키지 (package) 4 패키지란 서로관련된클래스와인터페이스의컴파일된클래스파일들을하나의디렉터리에묶어놓은것 하나의응용프로그램은여러개의패키지로작성가능 하나의패키지로만들고모든클래스파일을넣어둘수도있음 패키지는 jar 파일로압축할수있음 예 ) JDK 에서제공하는표준패키지는 rt.jar 에압축

JDK 에서제공되는패키지 5 클래스의이름 ( 경로명 ) java.awt.color 패키지명 패키지명 : java.awt java.awt 패키지에속한클래스

패키지사용하기, import 문 6 다른패키지에작성된클래스사용 bli l I te l { import를이용하지않는경우 소스내에서패키지이름과클래스이름의전체경로명을써주어야함 public class ImportExample { public static void main(string[] args) { java.util.scanner scanner = new java.util.scanner(system.in); import 키워드이용하는경우 소스의시작부분에사용하려는패키지명시 소스에는클래스명만명시하면됨 특정클래스의경로명만포함하는경우 import java.util.scanner; 패키지내의모든클래스를포함시키는경우 import java.util.*; * 는현재패키지내의클래스만을의미하며하위패키지의클래스까지포함하지않는다. import java.util.scanner; public class ImportExample { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); import java.util.*; public class ImportExample { public static void main(string[] args) { Scanner scanner = new Scanner(System.in);

클래스경로 7 클래스의위치 ( 경로 ) 지정 클래스탐색경로를지정하는방법 2 가지 클래스경로의환경변수 : 시스템환경변수 CLASSPATH java 의옵션 classpath 실행시클래스파일이존재하는패키지디렉터리정보를 -classpath 옵션에지정

8 CLASSPATH 지정방법 Jdk1.7.0_07은독자가설치할 JDK 버전에따라서디렉터리이름이달라질수있다.

이클립스에서쉽게패키지만들기 9 예제로사용할샘플소스 (5 장의예제 5-6) abstract class Calculator { public abstract int add(int a, int b);// 두정수의합을구하여리턴 public abstract int subtract(int a, int b);// 두정수의차를구하여리턴 public abstract double average(int[] a);// 배열에저장된정수의평균을구해실수로리던 class GoodCalc extends Calculator { public int add(int a, int b) { return a+b; public int subtract(int a, int b) { return a - b; public double average(int[] a) { double sum = 0; for (int i = 0; i < a.length; i++) sum += a[i]; return sum/a.length; public static void main(string [] args) { Calculator c = new GoodCalc(); System.out.println(c.add(2,3)); System.out.println(c.subtract(2,3)); System.out.println(c.average(new int [] {2,3,4 ));

10 프로젝트작성 ( 프로젝트이름 : PackageEx)

11 패키지 lib 작성

12 패키지 app 작성

패키지작성이완료된결과 패키지탐색창에 app 패키지와 lib 패키지가보인다. 13

클래스 Calculator 만들기 Calculator 클래스를 public abstract 속성으로생성한다. 14

Calculator 소스수정 다른패키지, 즉 app 패키지의클래스에서접근할수있도록하기위해클래스의접근지정자 public을반드시삽입. 15

GoodCalc.java 작성후소스수정 import 문삽입. Calculator l 클래스를사용하기위해서는패키지를포함하는정확한경로명을컴파일러에게알려줘야함. 16

푸시다운버튼을누르면아래메뉴가보인다. 실행을위한 Run Configurations 작성 main() 메소드를가진클래스를지정한다. 17

18 프로젝트 PackageEx 실행

패키지의특징 19 패키지의특징 패키지계층구조 클래스나인터페이스가너무많아지면관리의어려움 관련된클래스파일을하나의패키지로계층화하여관리용이 패키지별접근제한 default 로선언된클래스나멤버는동일패키지내의클래스들이자유롭게접근하도록허용 동일한이름의클래스와인터페이스의사용가능 서로다른패키지에이름이같은클래스와인터페이스존재가능 높은소프트웨어재사용성 오라클에서제공하는자바 API 는패키지로구성되어있음 java.lang, java.io 등의패키지들덕분에일일이코딩하지않고입출력프로그램을간단히작성할수있음

자바 JDK 의패키지구조 20 JDK 패키지 자바에서는관련된클래스들을표준패키지로묶어사용자에게제공자바에서제공하는패키지는 C언어의표준라이브러리와유사 JDK의표준패키지는 rt.jar에담겨있음 C:\Program Files\Java\jdk1.6.0_16\jre\lib\rt.jar rt jar 의 java awt 패키지에컴 rt.jar 의 java.awt 패키지에컴파일된클래스들이들어있다.

자바패키지구조 java 패키지이름 : 소문자로시작 클래스이름 : 대문자로시작 applet awt beans io lang math net nio rmi security sql text util beancontext spi color datatransfer dnd event font geom im image print channels charset spi renderable spi spi annotation instrument management ref reflect activation dgc registry server acl cert spec interfaces concurren t jar logging prefs regex spi zip 21 atomic locks

주요패키지 22 java.lang 자바 language 패키지 스트링, 수학함수, 입출력등자바프로그래밍에필요한기본적인클래스와인터페이스 ( 예 ) System.out.println() t tl 자동으로 import 됨 - import 문필요없음 java.util 자바유틸리티패키지 java.io 날짜, 시간, 벡터, 해시맵등과같은다양한유틸리티클래스와인터페이스제공 키보드, 모니터, 프린터, 디스크등에입출력을할수있는클래스와인터페이스제공 java.awt 자바 GUI 프로그래밍을위한클래스와인터페이스제공 javax.swing 자바 GUI 프로그래밍을위한스윙패키지

자바 API 참조 23 자바 API 의상세정보 Oracle Technology Network(http://docs.oracle.com/javase/8/docs/api/) 에서온라인제공

Object 클래스 24 특징 java.lang 패키지에포함 자바클래스계층구조의최상위에위치 모든클래스의수퍼클래스 주요메소드

객체속성 25 class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; public class ObjectProperty { public static void main(string [] args) { Point p = new Point(2,3); System.out.println(p.getClass().getName()); System.out.println(p.hashCode()); System.out.println(p.toString()); System.out.println(p); Point 12677476 Point@c17164 Point@c17164

객체를문자열로변환 26 String tostring() 객체를문자열로반환 Object 클래스에구현된 tostring() 이반환하는문자열 클래스이름 @ 객체의 hash code 각클래스는 tostring() 을오버라이딩하여자신만의문자열리턴가능 컴파일러에의한자동변환 객체 + 문자열 -> 객체.toString() + 문자열 로자동변환 Point a = new Point(2,3); String s = a + " 점 "; System.out.println(s); 변환 Point a = new Point(2,3); String s = a.tostring()+ " 점 "; System.out.println(s.toString()); Point@c17164 점

새로운 tostring() 만들기 27 class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; public String tostring() { return "Point(" + x + "," + y+ ")"; public class ObjectProperty ty { public static void main(string [] args) { Point a = new Point(2,3); System.out.println(a.toString()); System.out.println(a); 라고해도동일 Point(2,3)

객체비교 (== 과 equals()) 28 객체레퍼런스의동일성비교 : == 연산자이용객체내용비교 서로다른두객체가같은내용물인지비교 boolean equals(object obj) 이용 class Point { Point a = new Point(2,3); c int x, y; Point b = new Point(2,3); public Point(int x, int y) { Point c = a; this.x = x; this.y = y; if(a == b) // false a System.out.println("a==b"); if(a == c) // true System.out.println("a==c"); b a==c x=2 y=3 x=2 y=3 Point Point class Point { int x, y; public Point(int x, int y) { this.x =x;this this.y =y; public boolean equals(point p) { if(x == p.x && y == p.y) return true; else return false; Point a = new Point(2,3); Point b = new Point(2,3); Point c = new Point(3,4); if(a == b) // false System.out.println("a==b"); if(a.equals(b)) // true System.out.println("a is equal to b"); if(a.equals(c)) // false System.out.println("a t tl is equal to c"); a is equal to b a b c x=2 y=3 x=2 y=3 x=3 y=4 Point Point Point

예제 6-1 : Rect 클래스만들고 equals() 만들기 29 int 타입의 width, height의필드를가지는 Rect 클래스를작성하고, 두 Rect 객체의 width, dh height h 필드에의해구성되는면적이같으면두객체가같은것으로판별하도록 equals() 를작성하라. Rect 생성자에서 width, height 필드를인자로받아초기화한다. class Rect { int width; int height; public Rect(int width, int height) { this.width = width; this.height = height; public boolean equals(rect p) { if (width*height == p.width*p.height) return true; else return false; public class EqualsEx { public static void main(string[] args) { Rect a = new Rect(2,3); Rect b = new Rect(3,2); Rect c = new Rect(3,4); if(a.equals(b)) System.out.println("a is equal to b"); if(a.equals(c)) System.out.println("a is equal to c"); if(b.equals(c)) System.out.println("b is equal to c"); a is equal to b

Wrapper 클래스 30 자바의기본타입을클래스화한 8 개클래스 용도 int, double 등자바기본데이터타입은클래스가아님 ( 예 )3 3, a, 35 3.5 등은객체가아님 기본타입의값을사용할수없고객체만사용하는클래스등에기본타입의값을 Wrapper 클래스객체로만들어사용 Wrapper라는클래스는존재하지않음. 8개의기본데이터를객체형식으로다루기위해통칭으로사용함.

Wrapper 객체생성 31 기본타입의값을인자로 Wrapper 클래스생성자호출 Integer i = new Integer(10); Character c = new Character( c ); Float f = new Float(3.14); Boolean b = new Boolean(true); 데이터값을나타내는문자열을생성자인자로사용 Boolean b = new Boolean( false ); Integer I = new Integer( 10 ); Double d = new Double( 3.14 ); Float는 double 타입의값을생성자의인자로사용 Float f = new Float((double) 3.14);

주요메소드 32 가장많이사용하는 Integer 클래스의주요메소드

Wrapper 활용 33 Wrapper 객체로부터기본데이터타입알아내기 Integer i = new Integer(10); int ii = i.intvalue(); // ii = 10 Character c = new Character('c' '); char cc = c.charvalue(); // cc = c Float f = new Float(3.14); float ff = f.floatvalue(); // ff = 3.14 Boolean b = new Boolean(true); boolean bb = b.booleanvalue(); // bb = true 문자열을기본데이터타입으로변환 int i = Integer.parseInt("123"); // i = 123 boolean b = Boolean.parseBoolean("true"); // b = true float f = Float.parseFloat("3.141592" t("3 ); // f = 3.141592 기본데이터타입을문자열로변환 String s1 = Integer.toString(123); // 정수 123을문자열 "123" 으로변환 String s2 = Integer.toHexString(123); // 정수 123을 16진수의문자열 "7b" 로변환 String s3 = Float.toString(3.141592f); // 실수 3.141592를문자열 "3.141592" 로변환 String s4 = Charater.toString('a'); // 문자 a 를문자열 "a" 로변환 String s5 = Boolean.toString(true); // 불린값 true를문자열 "true" 로변환

예제 6-2 : Wrapper 클래스활용 34 다음은 Wrapper 클래스를활용하는예이다. 다음프로그램의결과는무엇인가? public class WrapperClassEx { public static void main(string[] args) ){ Integer i = new Integer(10); char c = '4'; Double d = new Double(3.1234566); System.out.println(Character.toLowerCase('A')); ( if (Character.isDigit(c)) System.out.println(Character.getNumericValue(c)); System.out.println(Integer.parseInt("-123")); System.out.println(Integer.toBinaryString(28)); y g( System.out.println(Integer.toHexString(28)); System.out.println(i.doubleValue()); System.out.println(d.toString()); System.out.println(Double.parseDouble("44.13e-6")); p ( a 4-123 16 11100 3 1c 10.00 3.1234566 4.413E-5

박싱과언박싱 35 박싱 (boxing) 기본타입의값을 Wrapper 객체로변환하는것 언박싱 (unboxing) Wrapper 객체에들어있는기본타입의값을빼내는것

자동박싱 / 자동언박싱 36 JDK 1.5 부터지원 자동박싱 (Auto boxing) 기본타입의값을자동으로 Wrapper 객체로변환 자동언박싱 (Auto unboxing) Wrapper 객체를자동으로기본타입값으로변환 Integer ten = 10; // 자동박싱. 10 -> new Integer(10) 으로자동박싱 int i = ten; // 자동언박싱. ten -> ten.getintvalue(); 로자동언박싱

예제 6-3 : 박싱언박싱의예 37 다음코드에대한결과는무엇인가? public class AutoBoxingUnBoxing { public static void main(string[] args) { int i = 10; Integer intobject = i; // auto boxing System.out.println("intObject = " + intobject); i = intobject t + 10; // auto unboxing System.out.println("i = " + i); intobject = 10 i = 20

String 의생성과특징 38 String - java.lang.string g String 클래스는하나의스트링만표현 // 스트링리터럴로스트링객체생성 String str1 = "abcd"; // String 클래스의생성자를이용하여스트링생성 char data[] = {'a', 'b', 'c', 'd'; String str2 = new String(data); String str3 = new String("abcd"); // str2와 str3은모두 "abcd" 스트링 String 생성자

스트링리터럴과 new String() 39 스트링생성 단순리터럴로생성, String s = "Hello"; JVM 이리터럴관리, 응용프로그램내에서공유됨 String 객체로생성, String t = new String("Hello"); ") 힙에 String 객체생성

스트링객체의주요특징 40 스트링객체는수정불가능 == 과 equals() 두스트링을비교할때반드시 equals() 를사용하여야함 equals() 는내용을비교하기때문

41 주요메소드

문자열비교 42 int compareto(string anotherstring) 문자열이같으면 0 리턴 이문자열이 anotherstring 보다사전에먼저나오면음수리턴 이문자열이 anotherstring 보다사전에나중에나오면양수리턴 String a = "java"; String b = "jasa"; int res = acompareto(b); a.compareto(b); if(res == 0) System.out.println("the same"); else if(res < 0) System.out.println(a +"<"+b); else System.out.println(a +">"+b); java>jasa "java" 가 "jasa" 보다사전에나중에나오기때문에양수리턴 비교연산자 == 는문자열비교에는사용할수없음

문자열연결 43 + 연산자로문자열연결 + 연산의피연산자에문자열이있는경우 + 연산에객체가포함되어있는경우 객체.toString() 을호출하여객체를문자열로변환한후문자열연결 기본타입값은문자열로변환된후에연결 System.out.print("abcd" + 1 + true + 3.13e-2 + 'E'+ "fgh" ); // abcd1true0.0313efgh 출력 String concat(string str) 를이용한문자열연결 "abcd".concat("efgh"); // abcdefg 리턴 기존 String 객체에연결되지않고새로운스트링객체생성리턴 다음슬라이드에서설명

concat() 은새로운문자열을생성 44 String s1 = "abcd"; String s2 = "efgh"; s1 = s1.concat(s2); s1 abcd s1 abcdefgh s2 efgh abcd s2 efgh

문자열내의공백제거, 문자열의각문자접근 45 공백제거 String trim() 문자열앞뒤공백문자 (tab, enter, space) 제거한문자열리턴 String a = " abcd def "; String b = "\txyz\t"; String c = a.trim(); // c = "abcd def" String d = b.trim(); // d = "xyz" 문자열의문자 char charat(int index) 문자열내의문자접근 String a = "class"; char c = a.charat(2); // c = 'a' // "class" 에포함된 s 의개수를세는코드 int count = 0; String a = "class"; for(int i=0; i<a.length(); i++) { // a.length() 는 5 if(a.charat(i) == 's') count++; System.out.println(count); // 2 출력

예제 6-4 : String 클래스메소드활용 46 String 클래스의다양한메소드를활용하는예를보여라. public class StringEx { public static void main(string[] args) { String a = new String(" abcd"); String b = new String(",efg efg"); // 문자열연결 a = a.concat(b); System.out.println(a); // 공백제거 a = a.trim(); System.out.println(a); // 문자열대치 a = a.replace("ab","12"); System.out.println(a); // 문자열분리 String s[] = a.split(","); for (int i=0; i<s.length; i++) System.out.println(" 분리된 " + i + " 번문자열 : " + s[i]); // 서브스트링 a = a.substring(3); System.out.println(a); // 문자열의문자 char c = a.charat(2); System.out.println(c); abcd,efg abcd,efg 12cd,efg 분리된 0번문자열 : 12cd 분리된 1 번문자열 : efg d,efg e

47 예제실행과정

StringBuffer 클래스 48 java.lang.stringbuffer g 스트링과달리객체생성후스트링값변경가능 append와 insert 메소드를통해스트링조작 StringBuffer 객체의크기는스트링길이에따라가변적 생성자 StringBuffer sb = new StringBuffer("java");

49 주요메소드

50 StringBuffer 의메소드활용예

예제 6-5 : StringBuffer 클래스메소드활용 51 StringBuffer 클래스의메소드를이용하여문자열을조작하는예를보이자. 다음코드의실행결과는? public class StringBufferEx { public static void main(string[] args) ){ StringBuffer sb = new StringBuffer("This"); System.out.println(sb.hashCode()); sb.append(" is pencil"); // 문자열덧붙이기 System.out.println(sb); sb.insert(7, " my"); // 문자열삽입 System.out.println(sb); sb.replace(8, 10, "your"); // 문자열대치 System.out.println(sb); sb.setlength(5); // 스트링버퍼내문자열길이설정 14576877 System.out.println(sb); System.out.println(sb.hashCode()); This is pencil This is my pencil This is your pencil This 14576877

StringTokenizer 클래스 52 java.util.stringtokenizer 구분문자를기준으로문자열분리 문자열을구분할때사용되는문자를구분문자 (delimiter) 라고함 String query = "name=kitae&addr=seoul&age=21"; StringTokenizer st = new StringTokenizer(query, "&"); 위의예에서 & 가구분문자 토큰 (token) 구분문자로분리된문자열 String 클래스의 split() 메소드를이용하여동일한구현가능

생성자와주요메소드 53 생성자 주요메소드

54 StringTokenizer 객체생성과문자열분리

예제 6-6 : StringTokenizer 클래스메소드활용 55 홍길동 / 장화 / 홍련 / 콩쥐 / 팥쥐 문자열을 / 를구분문자로하여토큰을분리하여각토큰을출력하라. import java.util.stringtokenizer; public class StringTokenizerEx { public static void main(string[] args) { StringTokenizer st = new StringTokenizer(" 홍길동 / 장화 / 홍련 / 콩쥐 / 팥쥐 ", "/"); while (st.hasmoretokens()) System.out.println(st.nextToken()); 홍길동장화홍련콩쥐팥쥐

Math 클래스 56 기본적인산술연산을수행하는메소드제공 java.lang.math 모든메소드는 static으로선언 클래스이름으로바로호출가능 a e

Math 클래스를활용한난수발생 57 난수발생 static double random() 0.0 이상 1.0 미만의임의의 double 값을반환 0에서 100사이의정수난수 10개시키는샘플코드 for(int x=0; x<10; x++) { double d = Math.random()*100; // [0.0 ~ 99.9999] 실수발생 int n = (int)(math.round(d)); // d를반올림하고정수로변환. [0~100] 사이의정수 System.out.println(n); 위의코드에서 round() 메소드는 Math. round(55.3) 은 55.0 을리턴하며, Math. round(55.9) 는 56.0을리턴 java.util.random 클래스를이용하면좀더다양한형태로난수발생가능

예제 6-7 : Math 클래스메소드활용 58 Math 클래스의다양한메소드활용예를보여라. public class MathEx { public static void main(string[] args) { double a = -2.78987434; // 절대값구하기 System.out.println(Math.abs(a)); System.out.println(Math.ceil(a)); // ceil System.out.println(Math.floor(a)); // floor System.out.println(Math.sqrt(9.0)); sqrt(9 // 제곱근 System.out.println(Math.exp(1.5)); // exp System.out.println(Math.rint(3.141592)); // rint // [1,45] 사이의난수발생 System.out.print(" 이번주행운의번호는 "); for (int i=0; i<5; i++) System.out.print(Math.round(1 + Math.random() * 44) + " "); System.out.println( println(" 입니다."); 2.78987434-2.0-3.0 3.0 4.4816890703380645 3.0 이번주행운의번호는 35 42 18 31 33

Calendar 클래스 59 Calendar 클래스의특징 java.util 패키지 시간과날짜정보관리 년, 월, 일, 요일, 시간, 분, 초, 밀리초, 오전오후등 Calendar 클래스의각시간요소를설정하기나알아내기위한필드들

Calendar 객체생성및날짜와시간 60 Calendar 객체생성 Calendar now = Calendar.getInstance(); 이용 now 객체는현재날짜와시간정보를가지고생성 Calendar 는추상클래스이므로 new Calendar() 하지않음 현재날짜와시간 int year = now.get(calendar.year); // 현재년도 int month = now.get(calendar.month) + 1; // 현재달 날짜와시간설정하기 내가관리할날짜와시간을 Calendar 객체를이용하여저장 Calendar 객체에날짜와시간을설정한다고해서컴퓨터의날짜와시간을바꾸는것은아님 -> 컴퓨터의시간과날짜를바꾸는다른방법이용 // 이성친구와처음으로데이트한날짜와시간저장 Calendar firstdate = Calendar.getInstance(); firstdate.clear(); // 현재날짜와시간정보를모두지운다. firstdate.set(2012, 11, 25); // 2012 년 12 월 25 일. 12 월은 11 로설정 firstdate.set(calendar.hour_of_day, 20); // 저녁 8 시로설정 firstdate.set(calendar.minute, 30); // 30 분으로설정

61 예제 6-7 Calendar를이용하여현재날짜와시간출력및설정하기 import java.util.calendar; public class CalendarEx { public static void printcalendar(string msg, Calendar cal) { int year = cal.get(calendar.year); // get() 은 0~30까지의정수리턴. int month = cal.get(calendar.month) + 1; int day = cal.get(calendar.day_of_month); l int dayofweek = cal.get(calendar.day_of_week); int hour = cal.get(calendar.hour); int hourofday = cal.get(calendar.hour_of_day); int ampm = cal.get(calendar.am_pm); int minute = cal.get(calendar.minute); int second = cal.get(calendar.second); int millisecond = cal.get(calendar.millisecond); public static void main(string[] args) { Calendar now = Calendar.getInstance(); printcalendar(" 현재 ", now); Calendar firstdate = Calendar.getInstance(); firstdate.clear(); t // 2012년 12월 25일. 12월을표현하기위해 month에 11로설정 firstdate.set(2012, 11, 25); firstdate.set(calendar.hour_of_day, 20); // 저녁 8시 firstdate.set(calendar.minute, 30); // 30분 printcalendar(" 처음데이트한날은 ", firstdate); System.out.print(msg + year + "/" + month + "/" + day + "/"); switch(dayofweek) { case Calendar.SUNDAY : System.out.print( print(" 일요일 "); break; case Calendar.MONDAY : System.out.print(" 월요일 "); break; case Calendar.TUESDAY : System.out.print(" 화요일 "); break; case Calendar.WEDNESDAY : System.out.print(" 수요일 "); break; case Calendar.THURSDAY : System.out.print(" 목요일 "); break; case Calendar.FRIDAY: System.out.print(" 금요일 "); break; case Calendar.SATURDAY : System.out.print(" 토요일 "); break; System.out.print("(" + hourofday + " 시 )"); if(ampm == Calendar.AM) System.out.print(" 오전 "); else System.out.print(" 오후 "); System.out.println(hour +" 시 "+minute +" 분 "+second +" 초 + millisecond +" 밀리초 "); 현재 2012/12/27/ 목요일 (20 시 ) 오후 8 시 22 분 28 초 889 밀리초처음데이트한날은 2012/12/25/ 화요일 (20 시 ) 오후 8 시 30 분 0 초 0 밀리초