Microsoft PowerPoint - Lect07.pptx

Similar documents
쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

gnu-lee-oop-kor-lec11-1-chap15

PowerPoint Presentation

슬라이드 1

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

PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

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

PowerPoint Presentation

Microsoft PowerPoint - Introduction to Google Guava.pptx

JVM 메모리구조

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

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

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

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

설계란 무엇인가?

제11장 프로세스와 쓰레드

chap 5: Trees

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

ThisJava ..

Network Programming

Microsoft PowerPoint - lec7_package [호환 모드]

Chapter 4. LISTS

PowerPoint Presentation

PowerPoint 프레젠테이션

쉽게

java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 2

17장 클래스와 메소드

JAVA PROGRAMMING 실습 09. 예외처리

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

PowerPoint Presentation

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - 08-chap06-Queue.ppt

Spring Boot/JDBC JdbcTemplate/CRUD 예제

1

Microsoft PowerPoint - C++ 5 .pptx

항상쌍 ( 키, 값 ) 으로만데이터를저장하는클래스 의최고조상 : Map - Map을조상으로하는클래스, HashTable, HashMap, LinkedHashMap, TreeMap 등은데이터를저장할때반드시 키 와 값 의쌍으로저장한다. - Map에저장되는 키 는중복되면안되

A Tour of Java V

Chap 6: Graphs

Microsoft PowerPoint - lec12 [호환 모드]

PowerPoint 프레젠테이션

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

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

쉽게 풀어쓴 C 프로그래밍

C# Programming Guide - Types

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

03_queue

Microsoft PowerPoint - 2강

선형대수학 Linear Algebra

PowerPoint 프레젠테이션

11장 포인터

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - 08-Queue.ppt

JUNIT 실습및발표

Design Issues

PowerPoint Presentation

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

쉽게 풀어쓴 C 프로그래밍

Chapter 4. LISTS

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밊

PowerPoint 프레젠테이션

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

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

PowerPoint Template

chap x: G입력

Microsoft PowerPoint - Java7.pptx

슬라이드 1

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

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

02 C h a p t e r Java

슬라이드 1

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint 장강의노트.ppt

교육자료

Microsoft PowerPoint - logo_3.ppt [호환 모드]

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

예제 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

Spring Boot

Microsoft PowerPoint - CSharp-2-기초문법

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

PowerPoint 프레젠테이션

C++ Programming

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 제4장-스택과큐.pptx

Slide 1

adfasdfasfdasfasfadf

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

JAVA PROGRAMMING 실습 02. 표준 입출력

06장.리스트

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

Transcription:

이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Package 개념 Package 묶는방법사용하기기본 Package Utility Package Generic Class Generic Method Collection ArrayList LinkedList Set Queue Map Collection Class 3

패키지 (package) : 클래스들을묶은것자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 1 관련된클래스들을쉽게파악 2 원하는클래스들을쉽게찾을수있다. 3 패키지마다이름공간을따로갖기때문에같은클래스이름을여러패키지가사용 4 패키지별로접근에제약을가할수있다. 5 6 package business;// 패키지선언 public class Order {... } 인터넷도메인이름을역순으로사용한다. 예를들면 com.company.test 라는패키지이름은도메인이름 company.com에서의 test라는프로젝트를의미한다. Order 라는클래스는 business 패키지에속한다. Q: 만약패키지문을사용하지않은경우에는어떻게되는가? A: 디폴트패키지 (default package) 에속하게된다. 7 8

Q: 만약패키지문이있는경우에소스파일과클래스파일의위치는? A: 패키지이름이디렉토리가되고그아래에저장된다. Q: 우리가실행시키고싶은클래스파일이다른디렉토리에있는경우에도실행시킬수있을까? A: 실행이가능하다. 다만클래스경로를설정하여야한다. 자바가상기계가클래스파일을찾는경로를클래스경로 (class path) 라고한다. package business; public class Order { }... 탐색순서 9 10 1. 클래스에패키지이름을붙여서참조한다. 2. 개별클래스를 import 한다. 3. 전체패키지를 import 한다. 1. business.order myorder = new business.order(); Q: java.awt. awt * 문장은 java.awt.font awt 패키지를포함하는가? A: java.awt.font 패키지는 java.awt 패키지안에포함되지않는다. 만약 java.awt.font 의멤버와 java.awt 의멤버를동시에사용하려면다음과같이따로따로포함하여야한다. import java.awt.*; import java.awt.font.*; 2. import business.order; // business 패키지안의 Order 클래스포함 3. import business.*; // 패키지전체포함 Visual & Biomedical Computing Lab (VisBiC), PNU CSE http://visbic.cse.pnu.edu/ 11 Visual & Biomedical Computing Lab (VisBiC), PNU CSE http://visbic.cse.pnu.edu/ 12

Import 문을사용할필요가없이기본적으로포함된다. Object 클래스 : 기초적인메소드를제공하는모든클래스의조상클래스 Math 클래스 : 각종수학함수들을포함하는클래스 Wrapper 클래스 : Integer 와같이기초자료형을감싸서제공하는랩퍼클래스들 String 클래스, StringBuffer 클래스 : 문자열을다루는클래스 System 클래스 : 시스템정보를제공하거나입출력을제공하는클래스 Thread 클래스 : 스레드기능을제공하는클래스 Class 클래스 : 클래스에대한정보를얻기위한클래스 13 14 15 16

Class 객체는실행중인클래스를나타낸다. Class 객체는자바가상기계에의하여자동적으로생성된다. Class 객체를이용하면객체의클래스이름을출력할수있다. 17 18 System 클래스는실행시스템과관련된속성과메소드를제공 19 20

기초자료형을객체로포장시켜주는클래스 ( 예 ) Integer obj = new Integer(10); 랩퍼클래스는기초자료형을객체로포장한것입니다. 10 21 22 Wrapper 객체와기초자료형사이의변환을자동으로수행한다. Integer box = new Integer(10); System.out.println(box + 1); // box 는자동으로 int 형으로변환 23 24

String 클래스는주로상수문자열, 즉변경이불가능한문자열을나타낸다. StringBuffer 와 StringBuilder 클래스는변경가능한문자열을나타낸다. StringBuffer sb = new StringBuffer(); // 기본적으로 16 바이트의공간이할당된다. sb.append("hello"); // 6 바이트가사용된다. 25 26 여러가지유틸리티클래스들을제공한다. 27 28

29 30 31 32

33 34 문자열을분석하여서토큰으로분리시켜주는기능을제공 35 36

제네릭프로그래밍 (generic programming) 일반적인코드를작성하고이코드를다양한타입의객체에대하여재사용하는프로그래밍기법 제네릭은컬렉션라이브러리에많이사용 Java 5.0 버전이후사용. JDK 1.5 이상 38 일반적인객체를처리하려면 Object 참조변수를사용 Object 참조변수는어떤객체이던지참조할수있다. 예제로하나의데이터를저장하는 Store 클래스를살펴보자. 문제점발생!! 39 40

문자열을저장하려면다음과같이선언 Store<String> store = new Store<String>(); 정수를저장하려면다음과같이선언 Store<Integer> store = new Store<Integer>(); 41 42 메소드에서도타입매개변수를사용하여서제네릭메소드를정의할수있다. 타입매개변수의범위가메소드내부로제한된다. String[] language= { "C++", "C#", "JAVA" }; String last = Array.<String>getLast(language);// last는 JAVA" 또는 String last = Array.getLast(language); // last 는 JAVA" 생략가능 : 컴파일러가 String 인지알고있기때문에 배열의마지막원소를반환하는메소드 43 44

컬렉션 (collection) 은자바에서자료구조를구현한클래스 자료구조로는리스트 (list), 스택 (stack), 큐 (queue), 집합 (set), 해쉬테이블 (hash table) 등이있다. 46 컬렉션인터페이스 컬렉션 컬렉션클래스 - java.uitil package 에포함 - collection lib. 모두 generic 기능지원 47 48

초기버전 : Vector, Stack, HashTable, Bitset, Enumeration 이그것이다. 버전 1.2 부터는풍부한컬렉션라이브러리가제공 인터페이스와구현을분리 ( 예 ) List 인터페이스를 ArrayList와 LinkedList 클래스가구현 49 50 51 52

ArrayList 를배열 (Array) 의향상된버전또는가변크기의배열이라고생각하면된다. ArrayList의생성 ArrayList<String> list = new ArrayList<String>(); 원소추가 list.add( "MILK" ); list.add( "BREAD" ); list.add( "BUTTER" ); 53 54 반복자 (iterator) : 반복자는컬렉션의원소들을하나씩처리하는데사용메소드 hasnext() : 아직방문하지않은원소가있으면 truee next() : 다음원소를반환 remove() : 최근에반환된원소를삭제 사용 각 collection 객체에서 iterator() 메소드를호출하여반복자객체를얻음 Iterator e = list.iterator(); //list 는 ArrayList 객체 55 56

빈번하게삽입과삭제가일어나는경우에사용 57 58 List<String> list = Arrays.asList(new String[size]); 일반적인배열을리스트로변환한다. 59 60

집합 (Set) 은원소의중복을허용하지않는다. HashSet HashSet은해쉬테이블에원소를저장하기때문에성능면에서가장우수하다. 하지만원소들의순서가일정하지않은단점이있다. TreeSet 레드- 블랙트리 (red-black tree) 에원소를저장한다. 따라서값에따라서순서가결정되며하지만 HashSet보다는느리다. LinkedHashSet 해쉬테이블과연결리스트를결합한것으로원소들의순서는삽입되었던순서와같다. 61 62 중복원소추가하지않음 63 64

65 66 큐는먼저들어온데이터가먼저나가는자료구조 FIFO(First-In First-Out) 큐의처음원소삭제않고가져옴. 큐원소가없으면 NoSuchElementException(element) null(peek) 큐의처음원소지우고가져옴. 큐원소가없으면 NoSuchElementException(remove) null(poll) ll) 67 68

우선순위큐 (priority queue): 우선순위를가진항목들을저장하는큐 FIFO 순서가아니라우선순위가높은데이터가먼저나가게된다. 가장일반적인큐 : 스택이나 FIFO 큐를우선순위큐로구현할수있다. 69 70 사전과같은자료구조. 키 (key) 에값 (value) 이매핑된다. Map Interface HashMap TreeMap LinkedHashMap 71 72

Map 자료방문시 Map.Entry 인터페이스사용 73 74 유용한알고리즘-메소드로제공 Sorting : Collections.sort(); Shuffling : Collections.shuffle(); shuffle(); Searching : index=collections.binarysearch(collec, element); Min/max : Collections.min(); Collections.max(); Reverse : Collections.reverse(); Fill ( 지정된값으로채우기 ) : Collections.fill(); copy(); // 복사 swap(); // 지정된위치를서로바꾸기 addall(); // 지정된모든원소들을추가 frequency(); // 지정된컬렉션에서지정된원소가얼마나나오는지 disjoint(); // 두개의컬렉션이겹치지않는지검사 예 Collection.sort(list); //list 안의문자열정렬 Collection.sort(list, Collections.reverseOrder()); // 역순정렬 Collections.shuffle(list); // 섞기 int pos=collections.binarysearch(list, key); 75 76