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

Size: px
Start display at page:

Download "Microsoft PowerPoint - java1-lecture8.ppt [호환 모드]"

Transcription

1 컬렉션 (collection) 의개념 Collections, Generic 년봄학기 5/1/2018 박경신 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절 요소의삽입, 삭제에따른요소의위치자동이동 고정크기의배열을다루는어려움해소 다양한객체들의삽입, 삭제, 검색등의관리용이 컬렉션을위한인터페이스와클래스 Collection<E> Map<K, V> Set<E> List<E> Queue<E> 인터페이스 클래스 HashSet<E> ArrayList<E> Vector<E> LinkedList<E> HashMap<K, V> Stack<E> 컬렉션과제네릭 컬렉션은제네릭 (generics) 기법으로구현됨 컬렉션의요소는객체만가능 기본적으로 int, char, double 등의기본타입사용불가 JDK 1.5 부터자동박싱 / 언박싱기능으로기본타입사용가능 제네릭 특정타입만다루지않고, 여러종류의타입으로변신할수있도록클래스나메소드를일반화시키는기법 <E>, <K>, <V> : 타입매개변수 요소타입을일반화한타입 제네릭클래스사례 제네릭벡터 : Vector<E> E 에특정타입으로구체화 정수만다루는벡터 Vector<Integer> 문자열만다루는벡터 Vector<String>

2 제네릭의기본개념 제네릭 Stack<E> 클래스의 JDK 매뉴얼 JDK 1.5 에서도입 (2004 년기점 ) 모든종류의데이터타입을다룰수있도록일반화된타입매개변수로클래스나메소드를작성하는기법 C++ 의템플릿 (template) 과동일 정수스택 정수만저장 class Stack<E> {... void push(e element) {... E pop() { 제네릭스택 특정타입으로구체화... void push(integer element) {... Integer pop() { void push(string element) {... String pop() { 문자열스택 Good C# C++ Java 문자열만저장 Vector<E> Vector<E> 의특성 java.util.vector <E> 에서 E 대신요소로사용할특정타입으로구체화 여러객체들을삽입, 삭제, 검색하는컨테이너클래스 배열의길이제한극복 원소의개수가넘쳐나면자동으로길이조절 Vector에삽입가능한것 객체, null 기본타입은박싱 / 언박싱으로 Wrapper 객체로만들어저장 Vector에객체삽입 벡터의맨뒤에객체추가 벡터중간에객체삽입 Vector에서객체삭제 임의의위치에있는객체삭제가능 : 객체삭제후자동자리이동 Vector<Integer> 컬렉션내부구성 add() 를이용하여요소를삽입하고 get() 을이용하여요소를검색합니다 Vector<Integer> v = new Vector<Integer>();

3 타입매개변수사용하지않는경우경고발생 Vector<E> 클래스의주요메소드 Vector 로만사용하면경고발생 Vector<Integer> 나 Vector<String> 등타입매개변수를사용하여야함 11

4 컬렉션과자동박싱 / 언박싱 JDK 1.5 이전 기본타입데이터를 Wrapper 클래스를이용하여객체로만들어사용 Vector<Integer> v = new Vector<Integer>(); v.add(new Integer(4)); 컬렉션으로부터요소를얻어올때, Wrapper 클래스로캐스팅필요 Integer n = (Integer)v.get(0); int k = n.intvalue(); // k = 4 JDK 1.5부터 자동박싱 / 언박싱이작동하여기본타입값사용가능 Vector<Integer> v = new Vector<Integer> (); v.add(4); // 4 new Integer(4) 로자동박싱 int k = v.get(0); // Integer 타입이 int 타입으로자동언박싱, k = 4 제네릭의타입매개변수를기본타입으로구체화할수는없음 Vector<int> v = new Vector<int> (); // 오류 예제 : 정수값만다루는 Vector<Integer> 정수값만다루는제네릭벡터를생성하고활용하는사례를보인다. 다음코드에대한결과는무엇인가? import java.util.vector; public class VectorEx { // 정수값만다루는제네릭벡터생성 Vector<Integer> v = new Vector<Integer>(); v.add(5); // 5 삽입 v.add(4); // 4 삽입 v.add(-1); // -1 삽입 // 벡터중간에삽입하기 v.add(2, 100); // 4 와 -1 사이에정수 100 삽입 System.out.println(" 벡터내의요소객체수 : " + v.size()); System.out.println(" 벡터의현재용량 : " + v.capacity()); 예제 : Point 클래스의객체들만저장하는벡터만들기 // 모든요소정수출력하기 for(int i=0; i<v.size(); i++) { int n = v.get(i); System.out.println(n); 벡터에있는정수합 : 108 // 벡터속의모든정수더하기 int sum = 0; for(int i=0; i<v.size(); i++) { int n = v.elementat(i); sum += n; System.out.println(" 벡터에있는정수합 : + sum); (x, y) 한점을추상화한 Point 클래스를만들고 Point 클래스의객체만저장하는벡터를작성하라. import java.util.vector; class Point { private int x, y; public Point(int x, int y) { this.x = x; this.y = y; public String tostring() { return "(" + x + "," + y + ")";

5 예제 : Point 클래스의객체들만저장하는벡터만들기 public class PointVectorEx { // Point 객체를요소로만가지는벡터생성 Vector<Point> v = new Vector<Point>(); // 3 개의 Point 객체삽입 v.add(new Point(2, 3)); v.add(new Point(-5, 20)); v.add(new Point(30, -8)); (2,3) (-5,20) (30,-8) // 벡터에있는 Point 객체모두검색하여출력 for(int i=0; i<v.size(); i++) { Point p = v.get(i); // 벡터에서 i 번째 Point 객체얻어내기 System.out.println(p); // p.tostring() 을이용하여객체 p 출력 ArrayList<E> ArrayList<E> 의특성 java.util.arraylist, 가변크기배열을구현한클래스 <E> 에서 E 대신요소로사용할특정타입으로구체화 ArrayList에삽입가능한것 객체, null 기본타입은박싱 / 언박싱으로 Wrapper 객체로만들어저장 ArrayList에객체삽입 / 삭제 리스트의맨뒤에객체추가 리스트의중간에객체삽입 임의의위치에있는객체삭제가능 벡터와달리스레드동기화기능없음 다수스레드가동시에 ArrayList에접근할때동기화되지않음 개발자가스레드동기화코드작성 ArrayList<String> 컬렉션의내부구성 ArrayList<E> 클래스의주요메소드 ArrayList<String> = new ArrayList<String>(); add() 를이용하여요소를삽입하고 get() 을이용하여요소를검색합니다

6 21 예제 : ArrayList 에문자열을달기 키보드로문자열을입력받아 ArrayList 에삽입하고가장긴이름을출력하라. import java.util.*; public class ArrayListEx { // 문자열만삽입가능한 ArrayList 컬렉션생성 ArrayList<String> a = new ArrayList<String>(); // 키보드로부터 4 개의이름입력받아 ArrayList 에삽입 Scanner scanner = new Scanner(System.in); for(int i=0; i<4; i++) { System.out.print(" 이름을입력하세요 >>"); String s = scanner.next(); // 키보드로부터이름입력 a.add(s); // ArrayList 컬렉션에삽입 예제 : ArrayList 에문자열을달기 // ArrayList에들어있는모든이름출력 for(int i=0; i<a.size(); i++) { 이름을입력하세요 >>Mike // ArrayList의 i 번째문자열얻어오기이름을입력하세요 >>Jane String name = a.get(i); 이름을입력하세요 >>Ashley 이름을입력하세요 >>Helen System.out.print(name + " "); Mike Jane Ashley Helen 가장긴이름은 : Ashley // 가장긴이름출력 int longestindex = 0; for(int i=1; i<a.size(); i++) { if(a.get(longestindex).length() < a.get(i).length()) longestindex = i; System.out.println("\n가장긴이름은 : " + a.get(longestindex));

7 컬렉션의순차검색을위한 Iterator Iterator<E> 인터페이스 Vector<E>, ArrayList<E>, LinkedList<E> 가상속받는인터페이스 리스트구조의컬렉션에서요소의순차검색을위한메소드포함 Iterator<E> 인터페이스메소드 컬렉션의순차검색을위한 Iterator Vector<Integer> v = new Vector<Integer>(); Iterator<Integer> it = v.iterator(); while(it.hasnext()) { // 모든요소방문 int n = it.next(); // 다음요소리턴... 또는 iterator() 메소드 iterator() 를호출하면 Iterator 객체반환 Iterator 객체를이용하여인덱스없이순차적검색가능 for (int n : v) { 예제 : Iterator 를이용하여 Vector 의모든요소출력하고합구하기 Vector<Integer> 로부터 Iterator를얻어내고벡터의모든정수를출력하고합을구하라. import java.util.*; public class IteratorEx { // 정수값만다루는제네릭벡터생성 Vector<Integer> v = new Vector<Integer>(); v.add(5); // 5 삽입 v.add(4); // 4 삽입 v.add(-1); // -1 삽입 v.add(2, 100); // 4와 -1 사이에정수 100 삽입 // Iterator를이용한모든정수출력하기 Iterator<Integer> it = v.iterator(); // Iterator 객체얻기 while(it.hasnext()) { int n = it.next(); System.out.println(n); for (int n : v) { System.out.println(n); 예제 : Iterator 를이용하여 Vector 의모든요소출력하고합구하기 // Iterator를이용하여모든정수더하기 int sum = 0; it = v.iterator(); // Iterator 객체얻기 for (int n : v) { while(it.hasnext()) { sum += n; int n = it.next(); sum += n; System.out.println(" 벡터에있는정수합 : " + sum); 벡터에있는정수합 : 108

8 Remove Objects from Collection while Iterating ArrayList 는 remove(int index) 또는 remove(object obj) 메소드를제공함. 단 remove() 메소드는 ArrayList 를 iterating 하지않은경우에만사용함. ArrayList 에서 iterating 하면서 remove() 해야할경우, Iterator 를사용함. ArrayList<String> list = new ArrayList<String>(Arrays.asList( a, b, c, d )); for (int I = 0; i < list.size(); i++) { list.remove(i); // 원소가삭제될때 list 사이즈가줄면서다른원소들의 index 도바뀜 for (String s : list) { list.remove(s); // ConcurrentModificationException 발생 Iterator<String> it = list.iterator(); while (it.hasnext()) { String s = it.next(); // Iterator 의 next() 가 remove() 보다먼저호출되어야함 it.remove(); HashMap<K,V> HashMap<K,V> 키 (key) 와값 (value) 의쌍으로구성되는요소를다루는컬렉션 java.util.hashmap K는키로사용할요소의타입, V는값으로사용할요소의타입지정 키와값이한쌍으로삽입 키는해시맵에삽입되는위치결정에사용 ( 키는중복이허용안됨 중복시마지막키로대체됨 ) 값을검색하기위해서는반드시키이용 ( 값은중복이허용됨 ) 삽입및검색이빠른특징 요소삽입 : put() 메소드 요소검색 : get() 메소드 예 ) HashMap<String, String> 생성, 요소삽입, 요소검색 HashMap<String, String> h = new HashMap<String, String>(); h.put("apple", " 사과 "); // "apple" 키와 " 사과 " 값의쌍을해시맵에삽입 String kor = h.get("apple"); // "apple" 키로값검색. kor 는 " 사과 HashMap<String, String> 의내부구성과 put(), get() 메소드 HashMap<K,V> 의주요메소드 HashMap<String, String> map = new HashMap<String, String>();

9 예제 : HashMap 을이용하여영어단어와한글단어를쌍으로저장하고검색하는사례 영어단어와한글단어를쌍으로 HashMap에저장하고영어단어로한글단어를검색하는프로그램을작성하라. import java.util.*; public class HashMapDicEx { // 영어단어와한글단어의쌍을저장하는 HashMap 컬렉션생성 HashMap<String, String> dic = new HashMap<String, String>(); // 3 개의 (key, value) 쌍을 dic 에저장 dic.put("baby", " 아기 "); // "baby" 는 key, " 아기 " 은 value dic.put("love", " 사랑 "); dic.put("apple", " 사과 "); 예제 : HashMap 을이용하여영어단어와한글단어를쌍으로저장하고검색하는사례 // dic 컬렉션에들어있는모든 (key, value) 쌍출력 Set<String> keys = dic.keyset(); // key 문자열을가진 Set 리턴 Iterator<String> it = keys.iterator(); while(it.hasnext()) { String key = it.next(); String value = dic.get(key); System.out.println("(" + key + "," + value + ")"); // 영어단어를입력받고한글단어검색 Scanner scanner = new Scanner(System.in); for(int i=0; i<3; i++) { System.out.print(" 찾고싶은단어는?"); String eng = scanner.next(); System.out.println(dic.get(eng)); 예제 : HashMap 을이용하여영어단어와한글단어를쌍으로저장하고검색하는사례 (love, 사랑 ) (apple, 사과 ) (baby, 아기 ) 찾고싶은단어는?apple 사과찾고싶은단어는?babo null 찾고싶은단어는?love 사랑 babo 를해시맵에서찾을수없기때문에 null 리턴

10 예제 : HashMap 을이용하여자바과목의점수를기록관리하는코드작성 HashMap 을이용하여학생의이름과자바점수를기록관리해보자. import java.util.*; public class HashMapScoreEx { // 사용자이름과점수를기록하는 HashMap 컬렉션생성 HashMap<String, Integer> javascore = new HashMap<String, Integer>(); // 5 개의점수저장 javascore.put(" 한홍진 ", 97); javascore.put(" 황기태 ", 34); javascore.put(" 이영희 ", 98); javascore.put(" 정원석 ", 70); javascore.put(" 한원선 ", 99); System.out.println("HashMap 의요소개수 :" + javascore.size()); 예제 : HashMap 을이용하여자바과목의점수를기록관리하는코드작성 // 모든사람의점수출력. // javascore 에들어있는모든 (key, value) 쌍출력 // key 문자열을가진집합 Set 컬렉션리턴 Set<String> keys = javascore.keyset(); // key 문자열을순서대로접근할수있는 Iterator 리턴 Iterator<String> it = keys.iterator(); while(it.hasnext()) { String name = it.next(); int score = javascore.get(name); System.out.println(name + " : " + score); HashMap 의요소개수 :5 한원선 : 99 한홍진 : 97 황기태 : 34 이영희 : 98 정원석 : 70 예제 : HashMap 을이용한학생정보저장 id 와전화번호로구성되는 Student 클래스를만들고, 이름을 키 로하고 Student 객체를 값 으로하는해시맵을작성하라. import java.util.*; class Student { // 학생을표현하는클래스 int id; String tel; public Student(int id, String tel) { this.id = id; this.tel = tel; 예제 : HashMap 을이용한학생정보저장 public class HashMapStudentEx { // 학생이름과 Student 객체를쌍으로저장하는 HashMap 컬렉션생성 HashMap<String, Student> map = new HashMap<String, Student>(); // 3 명의학생저장 map.put(" 황기태 ", new Student(1, " ")); map.put(" 한원선 ", new Student(2, " ")); map.put(" 이영희 ", new Student(3, " ")); System.out.println("HashMap 의요소개수 :" + map.size());

11 예제 : HashMap 을이용한학생정보저장 // 모든학생출력. map 에들어있는모든 (key, value) 쌍출력 // key 문자열을가진집합 Set 컬렉션리턴 Set<String> names = map.keyset(); // key 문자열을순서대로접근할수있는 Iterator 리턴 Iterator<String> it = names.iterator(); while(it.hasnext()) { String name = it.next(); // 다음키. 학생이름 Student student = map.get(name); System.out.println(name + " : " + student.id + " " + student.tel); HashMap의요소개수 :3 한원선 : 황기태 : 이영희 : // 모든학생출력. map 에들어있는모든 (key, value) 쌍출력 // key 문자열을가진집합 Set 컬렉션리턴 Set<String> names = map.keyset(); // key 문자열을순서대로접근할수있는 Iterator 리턴 for (String name : names) { Student student = map.get(name); System.out.println(name + " : " + student.id + " " + student.tel); HashMap 의요소개수 :3 한원선 : 황기태 : 이영희 : 출력된결과는삽입된결과와다르다는점을기억하기바람 LinkedList<E> LinkedList<E> 의특성 java.util.linkedlist E에요소로사용할타입지정하여구체와 List 인터페이스를구현한컬렉션클래스 Vector, ArrayList 클래스와매우유사하게작동 요소객체들은양방향으로연결되어관리됨 요소객체는맨앞, 맨뒤에추가가능 요소객체는인덱스를이용하여중간에삽입가능 맨앞이나맨뒤에요소를추가하거나삭제할수있어스택이나큐로사용가능 LinkedList<String> 의내부구성과 put(), get() 메소드 LinkedList<String> l = new LinkedList<String>();

12 Collections 클래스활용 Collections 클래스 java.util 패키지에포함 컬렉션에대해연산을수행하고결과로컬렉션리턴 모든메소드는 static 타입 주요메소드 컬렉션에포함된요소들을소팅하는 sort() 메소드 요소의순서를반대로하는 reverse() 메소드 요소들의최대, 최소값을찾아내는 max(), min() 메소드 특정값을검색하는 binarysearch() 메소드 예제 : Collections 클래스의활용 Collections 클래스를활용하여문자열정렬, 반대로정렬, 이진검색등을실행하는사례를살펴보자. import java.util.*; public class CollectionsEx { static void printlist(linkedlist<string> l) { Iterator<String> iterator = l.iterator(); while (iterator.hasnext()) { String e = iterator.next(); String separator; if (iterator.hasnext()) separator = "->"; else separator = "\n"; System.out.print(e+separator); 예제 : Collections 클래스의활용 예제 : Collections 클래스의활용 LinkedList<String> mylist = new LinkedList<String>(); mylist.add(" 트랜스포머 "); mylist.add(" 스타워즈 "); mylist.add(" 매트릭스 "); mylist.add(0," 터미네이터 "); mylist.add(2," 아바타 "); Collections.sort(myList); // 요소정렬 printlist(mylist); // 정렬된요소출력 static 메소드이므로클래스이름으로바로호출 Collections.reverse(myList); // 요소의순서를반대로 printlist(mylist); // 요소출력 소팅된순서대로출력 거꾸로출력 매트릭스 -> 스타워즈 -> 아바타 -> 터미네이터 -> 트랜스포머트랜스포머 -> 터미네이터 -> 아바타 -> 스타워즈 -> 매트릭스아바타는 3 번째요소입니다. int index = Collections.binarySearch(myList, " 아바타 ") + 1; System.out.println(" 아바타는 " + index + " 번째요소입니다.");

13 Custom 클래스에대한 sort 함수사용 개인적으로만든클래스에대해서컬렉션에추가하고, Collections.sort 기능을이용해서정렬하고싶다면 java.lang.comparable 인터페이스를구현해주어야함 public interface Comparable<T> { int compareto(t o); CompareTo(T o) 메소드는현객체를인자로주어진 o 와비교해서순서를정한후에정수 (int) 값을반환함 만약현객체가주어진인자보다작다면음수를반환 만약현객체가주어진인자와동일하다면 0 을반환 만약현객체가주어진인자보다크다면양수를반환 Custom 클래스에대한 sort 함수사용 import java.util.arraylist; import java.util.collections; class A implements java.lang.comparable<a> { int num; String s; public A(String s, int n) { this.s = s; num = n; Custom 클래스에대한 sort 함수사용 public int compareto(a a) { if (s.compareto(a.s) == 0) { if (num > a.num) return 1; else if (num < a.num) return -1; else return 0; else { return s.compareto(a.s); public String tostring() { return "String: " + s + "\t num = " + num; Custom 클래스에대한 Collections.sort 함수사용 public class Main { ArrayList<A> list = new ArrayList<A>(); list.add(new A("Kim", 30)); list.add(new A("Cho", 20)); list.add(new A("Cho", 30)); list.add(new A("Lee", 20)); for (A b : list) { System.out.println(b); System.out.println("After sorting"); Collections.sort(list); for (A b : list) { System.out.println(b);

14 == & equals & hashcode equals 는두객체의내용이같은지동등성 (equality) 을비교하는연산자 Person p1 = new Person( Jason, 10); Person p2 = new Person( Jason, 10); Person p3 = p1; // == if (p1 == p2) System.out.println( p1 == p2 ); else System.out.println( p1!= p2 ); // 동일한 ref 아니므로 p1!= p2 if (p1 == p3) System.out.println( p1 == p3 ); // 동일한 ref 므로 p1 == p3 else System.out.println( p1!= p3 ); // equals // equals override 되어있으면 true, 안되어있으면 false if (p1.equals(p2)) System.out.println( p1 equals p2 ); else System.out.println( p1 is not equal to p2 ); == & equals & hashcode hashcode 는두객체가같은객체인지동일성 (identity) 을비교하는연산자 Map<Person, Integer> pmap = new HashMap<Person, Integer>(); pmap.put(p1, 1); // equals&hashcode override 있다면, p1 과 p2 는동일 pmap.put(p2, 2); // equals override&no hashcode 라면, p1 과 p2 는다름 for (Map.Entry<Person, Integer> entry : pmap.entryset()) { System.out.println("P : "+entry.getkey()+" Index : " +entry.getvalue()); System.out.println("pMap=" + pmap.size()); // pmap=1 pmap.remove(p1); // p1 과 p2 가같은 hashcode, p1 으로 p2 를같이지움 for (Map.Entry<Person, Integer> entry : pmap.entryset()) { System.out.println("P: "+entry.getkey()+" Index : " +entry.getvalue()); System.out.println("after remove pmap=" + pmap.size()); // pmap=0 val 의타입은 T 제네릭만들기 제네릭클래스와인터페이스 클래스나인터페이스선언부에일반화된타입추가 public class MyClass<T> { T val; void set(t a) { val = a; T get() { return val; 제네릭클래스레퍼런스변수선언 MyClass<String> s; List<Integer> li; Vector<String> vs; 제네릭클래스 MyClass 선언, 타입매개변수 T T 타입의값 a 를 val 에지정 T 타입의값 val 리턴 제네릭객체생성 구체화 (specialization) 구체화 제네릭타입의클래스에구체적인타입을대입하여객체생성 컴파일러에의해이루어짐 // 제네릭타입 T 에 String 지정 MyClass<String> s = new MyClass<String>(); s.set("hello"); System.out.println(s.get()); // "hello" 출력 // 제네릭타입 T 에 Integer 지정 MyClass<Integer> n = new MyClass<Integer>(); n.set(5); System.out.println(n.get()); // 숫자 5 출력 구체화된 MyClass<String> 의소스코드

15 제네릭객체생성 구체화 (specialization) public class MyClass<T> { T val; void set(t a) { val = a; T get() { return val; T 가 String 으로구체화 구체화오류 타입매개변수에기본타입은사용할수없음 Vector<int> vi = new Vector<int>(); // 컴파일오류. int 사용불가수정 Vector<Integer> vi = new Vector<Integer>(); // 정상코드 public class MyClass<String> { String val; // 변수 val 의타입은 String void set(string a) { val= a; // String 타입의값 a 를 val 에지정 String get() { return val; // String 타입의값 val 을리턴 타입매개변수 타입매개변수 < 과 > 사이에하나의대문자를타입매개변수로사용 많이사용하는타입매개변수문자 E : Element를의미하며컬렉션에서요소를표시할때많이사용한다. T : Type을의미한다. V : Value를의미한다. K : Key를의미 타입매개변수가나타내는타입의객체생성불가 //T a = new T(); // 오류!! 타입매개변수는나중에실제타입으로구체화 어떤문자도매개변수로사용가능 예제 : 제네릭스택만들기 스택을제네릭클래스로작성하고, String 과 Integer 형스택을사용하는예를보여라. class GStack<T> { int tos; Object [] stck; public GStack() { tos = 0; stck = new Object [10]; public void push(t item) { if(tos == 10) return; stck[tos] = item; tos++; public T pop() { if(tos == 0) return null; tos--; return (T)stck[tos];

16 예제 : 제네릭스택만들기 public class MyStack { GStack<String> stringstack = new GStack<String>(); stringstack.push("seoul"); stringstack.push("busan"); stringstack.push("la"); for(int n=0; n<3; n++) System.out.println(stringStack.pop()); GStack<Integer> intstack = new GStack<Integer>(); intstack.push(1); intstack.push(3); intstack.push(5); for(int n=0; n<3; n++) System.out.println(intStack.pop()); LA busan seoul 제네릭과배열 제네릭에서배열의제한 제네릭클래스또는인터페이스의배열을허용하지않음 //GStack<Integer>[] gs = new GStack<Integer>[10]; // 오류!! 제네릭타입의배열도허용되지않음 //T[] a = new T[10]; // 오류!! 앞예제에서는 Object 타입으로배열생성후실제사용할때타입캐스팅 return (T)stck[tos]; // 타입매개변수 T 타입으로캐스팅 타입매개변수의배열에레퍼런스는허용 public void myarray(t[] a) { 제네릭메소드 제네릭메소드선언가능 class GenericMethodEx { static <T> void tostack(t[] a, GStack<T> gs) { for (int i = 0; i < a.length; i++) { gs.push(a[i]); 제네릭메소드를호출할때는컴파일러가메소드의인자를통해이미타입을알고있으므로타입을명시하지않아도됨 String[] sa = new String[100]; GStack<String> gss = new GStack<String>(); GenericMethodEx.toStack(sa, gss); sa 는 String[], gss 는 GStack<String> 타입이므로 T 를 String 으로유추 예제 : 스택의내용을반대로만드는제네릭메소드만들기 GStack 을이용하여주어진스택의내용을반대로만드는제네릭메소드 reverse() 를작성하라. public class GenericMethodExample { // T 가타입매개변수인제네릭메소드 public static <T> GStack<T> reverse(gstack<t> a){ GStack<T> s = new GStack<T>(); while (true) { T tmp; tmp = a.pop(); // 원래스택에서요소하나를꺼냄 if (tmp==null) // 스택이비었음 break; else s.push(tmp); // 새스택에요소를삽입 return s; // 새스택을반환 // Double 타입의 GStack 생성 GStack<Double> gs = new GStack<Double>(); // 5개의요소를스택에 push for (int i=0; i<5; i++) { gs.push(new Double(i)); gs = reverse(gs); for (int i=0; i<5; i++) { System.out.println(gs.pop());

17 제네릭의장점 컬렉션과같은컨테이너클래스에유연성을해치지않으며 type-awareness를첨가 메소드에 type-awareness 첨가 컴파일시에타입이결정되어보다안전한프로그래밍가능 개발시다운캐스팅 ( 타입캐스팅 ) 절차불필요 런타임타입충돌문제방지 ClassCastException 방지

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

(Microsoft PowerPoint - java1-lecture9.ppt [\310\243\310\257 \270\360\265\345]) 컬렉션 (collection) 의개념 Collections, Generic 514760-1 2016 년가을학기 11/24/2016 박경신 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절 요소의삽입, 삭제에따른요소의위치자동이동 고정크기의배열을다루는어려움해소 다양한객체들의삽입, 삭제, 검색등의관리용이

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 제네릭 배효철 th1g@nate.com 1 목차 제네릭 컬렉션 백터 ArrayList HashMap LinkedList Collections 클래스 제네릭만들기 컬렉션과자동박싱 / 언박싱 제네릭의장점 2 제네릭 특정타입만다루지않고, 여러종류의타입으로변신할수있도록클래스나메소드를일반화시키는기법 , , : 타입매개변수 요소타입을일반화한타입 제네릭클래스사례

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 명품 JAVA Essential 1 2 학습목표 1. 컬렉션과제네릭개념 2. Vector 활용 3. ArrayList 활용 4. HashMap 활용 5. Iterator 활용 6. 사용자제네릭클래스만들기 컬렉션 (collection) 의개념 3 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절

More information

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

Microsoft PowerPoint - java1-lecture8.ppt [호환 모드] 컬렉션 (collection) 의개념 Collections, Generic 514760-1 2019 년봄학기 4/30/2019 박경신 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절 요소의삽입, 삭제에따른요소의위치자동이동 고정크기의배열을다루는어려움해소 다양한객체들의삽입, 삭제, 검색등의관리용이

More information

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

Microsoft PowerPoint - java1-lecture8.ppt [호환 모드] 컬렉션 (collection) 의개념 Collections, Generic 514760-1 2017 년가을학기 11/6/2017 박경신 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절 요소의삽입, 삭제에따른요소의위치자동이동 고정크기의배열을다루는어려움해소 다양한객체들의삽입, 삭제, 검색등의관리용이

More information

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

Microsoft PowerPoint - java2-lecture3.ppt [호환 모드] 컬렉션 (collection) 의개념 Collections, Generic 514770 2018 년가을학기 10/1/2018 박경신 컬렉션 요소 (element) 라고불리는가변개수의객체들의저장소 객체들의컨테이너라고도불림 요소의개수에따라크기자동조절 요소의삽입, 삭제에따른요소의위치자동이동 고정크기의배열을다루는어려움해소 다양한객체들의삽입, 삭제, 검색등의관리용이

More information

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

Microsoft PowerPoint - java2-lecture4.ppt [호환 모드] 인터페이스의필요성 Interface, Collections, Lambda 514770-1 2017 년가을학기 3/29/2017 박경신 인터페이스를이용하여다중상속구현 자바에서클래스다중상속불가 인터페이스는명세서와같음 인터페이스만선언하고구현을분리하여, 작업자마다다양한구현을할수있음 사용자는구현의내용은모르지만, 인터페이스에선언된메소드가구현되어있기때문에호출하여사용하기만하면됨

More information

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

gnu-lee-oop-kor-lec11-1-chap15 어서와 Java 는처음이지! 제 15 장컬렉션 컬렉션 (collection) 은자바에서자료구조를구현한클래스 자료구조로는리스트 (list), 스택 (stack), 큐 (queue), 집합 (set), 해쉬테이블 (hash table) 등이있다. 자바는컬렉션인터페이스와컬렉션클래스로나누어서제공한다. 자바에서는컬렉션인터페이스를구현한클래스도함께제공하므로이것을간단하게사용할수도있고아니면각자필요에맞추어인터페이스를자신의클래스로구현할수도있다.

More information

12-file.key

12-file.key 11 2 ,, (Generic) (Collection) : : : :? (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer

More information

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

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

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

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345]) Class Class, Collections 514770-1 2017 년봄학기 3/22/2017 박경신 클래스 (Class) 객체의속성과행위선언 객체의설계도혹은틀 객체 (Object) 클래스의틀로찍어낸실체 메모리공간을갖는구체적인실체 클래스를구체화한객체를인스턴스 (instance) 라고부름 객체와인스턴스는같은뜻으로사용 클래스구조 클래스접근권한, public 다른클래스들에서이클래스를사용하거나접근할수있음을선언

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 22 장제네릭과컬렉션 이번장에서학습할내용 제네릭클래스 제네릭메소드 컬렉션 ArrayList LinkedList Set Queue Map Collections 클래스 일반적인하나의코드로다양한자료형을처리하는기법을살펴봅시다. 제네릭이란? 제네릭프로그래밍 (generic programming) 다양한타입의객체를동일한코드로처리하는기법 제네릭은컬렉션라이브러리에많이사용

More information

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

항상쌍 ( 키, 값 ) 으로만데이터를저장하는클래스 의최고조상 : Map - Map을조상으로하는클래스, HashTable, HashMap, LinkedHashMap, TreeMap 등은데이터를저장할때반드시 키 와 값 의쌍으로저장한다. - Map에저장되는 키 는중복되면안되 무엇이든다받아주는클래스 2 컬렉션프레임워크에저장된데이터를순차적으로처리하는방법 : Iterator 객체사용 - get() 메서드를사용하면 Iterator 를사용하지않아도원하는위치의데이터를찾을수있다. - get() 메서드는원하는데이터를찾는작업을항상처음데이터부터시작한다. - Iterator 는주소를사용해서현재탐색한위치부터새로운탐색을시작하므로, 위의 get() 메서드보다훨씬처리시

More information

슬라이드 1

슬라이드 1 컬렉션프레임워크 (Collection Framework) 의정의 - 다수의데이터를쉽게처리할수있는표준화된방법을제공하는클래스들 - 데이터의집합을다루고표현하기위한단일화된구조 (architecture) - JDK 1.2 이전까지는 Vector, Hashtable, Properties와같은컬렉션클래스로서로다른각자의방식으로처리 - 컬렉션프레임워크는다수의데이터를다루는데필요한다양하고풍부한클래스들을제공하므로프로그래머의부담을상당부분덜어준다.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

A Tour of Java V

A Tour of Java V A Tour of Java V Sungjoo Ha April 3rd, 2015 Sungjoo Ha 1 / 28 Review First principle 문제가생기면침착하게영어로구글에서찾아본다. 타입은가능한값의집합과연산의집합을정의한다. 기본형이아니라면이름표가메모리에달라붙는다. 클래스로사용자정의타입을만든다. 프로그래밍은복잡도관리가중요하다. OOP 는객체가서로메시지를주고받는방식으로프로그램을구성해서복잡도관리를꾀한다.

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

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

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

Microsoft PowerPoint - Lect07.pptx

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

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 메소드의구조자주반복하여사용하는내용에대해특정이름으로정의한묶음 반환형메소드이름 ( 매개변수 ) { 실행문장 1; : 실행문장 N; } 메소드의종류 Call By Name : 메서드의이름에의해호출되는메서드로특정매개변수없이실행 Call By Value : 메서드를이름으로호출할때특정매개변수를전달하여그값을기초로실행하는메서드 Call By Reference : 메서드호출시매개변수로사용되는값이특정위치를참조하는

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

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

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 클래스와메소드심층연구 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 접근제어 class A { private int a; int b; public int c; // 전용 // 디폴트 // 공용 public class Test { public static void main(string args[]) { A obj = new

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

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

Microsoft Word - java18-1-final-answer.doc 기말고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를사용할것임. 1. 다음 sub1 과 sub2

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

5장.key

5장.key JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

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

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

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

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

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

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형 바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 2015 학년도 2 학기 public class Person{ public String name; public int age; public Person(){ public Person(String s, int a){ name = s; age = a; public String getname(){ return name; @ 객체의선언 public static void

More information

Microsoft PowerPoint - lec12 [호환 모드]

Microsoft PowerPoint - lec12 [호환 모드] 제네릭 제네릭클래스 제네릭인터페이스 제네릭메소드 형매개변수의제한 어노테이션 어노테이션형태시스템정의어노테이션사용자정의어노테이션 kkman@sangji.ac.kr 2 제네릭 (generic) 클래스나메소드에자료형을매개변수형식으로사용할수있는기능 자료형과무관하게알고리즘을기술 예전에작성한알고리즘을쉽게재사용가능 어노테이션 (annotation) 프로그램요소에다양한종류의속성정보를추가하기위해서사용

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스와메소드심층연구 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 접근제어 class A { private int a; int b; public int c; // 전용 // 디폴트 // 공용 public class Test { public static void main(string args[]) { A obj = new

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

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

java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 2 java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 kkman@sangji.ac.kr 2 서로연관된클래스나인터페이스를하나의단위로묶는방법 자주사용되는클래스나인터페이스를위해패키지를제공 기본패키지 java.lang, java.util, java.io, java.net, java.awt, java.applet,... 사용자정의패키지 패키지이름은소문자로...

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

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

Microsoft Word - java19-1-final-answer.doc 기말고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를 사용할것임. 1. 다음코드의실행결과를적어라

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

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

예제 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 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

선형대수학 Linear Algebra

선형대수학  Linear Algebra 배열, 컬렉션, 인덱서 array, collection, indexer 소프트웨어학과 HCI 프로그래밍강좌 배열 배열 (array) 동일한자료형을다수선언 선언형식 데이터형식 [ ] 배열이름 = new 데이터형식 [ 개수 ]; int[ ] array = new int[5]; 인덱스 (index) 는 0 에서시작 scores[0] = 80; scores[1] =

More information

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx) 내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

More information

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

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

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

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

A Tour of Java IV

A Tour of Java IV A Tour of Java IV Sungjoo Ha March 25th, 2016 Sungjoo Ha 1 / 35 Review First principle 문제가생기면침착하게영어로구글에서찾아본다. 타입은가능한값의집합과연산의집합을정의한다. 기본형이아니라면이름표가메모리에달라붙는다. 클래스로사용자정의타입을만든다. 프로그래밍은복잡도관리가중요하다. OOP 는객체가서로메시지를주고받는방식으로프로그램을구성해서복잡도관리를꾀한다.

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 2 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

슬라이드 1

슬라이드 1 UNIT 12 상속과오버라이딩 로봇 SW 교육원 2 기 최상훈 학습목표 2 클래스를상속핛수있다. 메소드오버라이딩을사용핛수있다. 패키지선언과 import 문을사용핛수있다. 상속 (inheritance) 3 상속이란 기존의클래스를기반으로새로운클래스를작성 두클래스를부모와자식으로관계를맺어주는것 자식은부모의모든멤버를상속받음 연관된일렦의클래스에대핚공통적인규약을정의 class

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 손시운 ssw5176@kangwon.ac.kr 실제세계는객체로이루어진다. 2 객체와메시지 3 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 4 객체 5 객체란? 객체 (Object) 는상태와동작을가지고있다. 객체의상태 (state) 는객체의특징값 ( 속성 ) 이다. 객체의동작 (behavior) 또는행동은객체가취할수있는동작

More information

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint 장강의노트.ppt 클래스와객체 클래스와객체 객체 : 우리주변의어떤대상의모델 - 예 : 사람, 차, TV, 개 객체 = 상태 (state) + 행동 (behavior) - 예 : 개의상태 - 종자, 이름, 색개의행동 - 짖다, 가져오다 상태는변수로행동은메소드로나타냄 객체는클래스에의해정의된다. 클래스는객체가생성되는틀혹은청사진이다. 2 예 : 클래스와객체 질문 : 클래스와객체의다른예는?

More information

A Tour of Java III

A Tour of Java III A Tour of Java III Sungjoo Ha March 18th, 2016 Sungjoo Ha 1 / 30 Review First principle 문제가생기면침착하게영어로구글에서찾아본다. 타입은가능한값의집합과연산의집합을정의한다. 기본형이아니라면이름표가메모리에달라붙는다. 클래스로사용자정의타입을만든다. 프로그래밍은복잡도관리가중요하다. OOP 는객체가서로메시지를주고받는방식으로프로그램을구성해서복잡도관리를꾀한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - Lect04.pptx OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Class 와 object Class 와객체 클래스의일생 메소드 필드 String Object Class 와객체 3 클래스 클래스의구성 클래스 (l (class): 객체를만드는설계도 클래스로부터만들어지는각각의객체를특별히그클래스의인스턴스

More information

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

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

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

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

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

Microsoft Word - java19-1-midterm-answer.doc 중간고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를 사용할것임. 1. 다음질문에답을하라. (55

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Microsoft PowerPoint - Introduction to Google Guava.pptx

Microsoft PowerPoint - Introduction to Google Guava.pptx 2012 년자바카페 OPEN 세미나 주제 : Introduction to Google Guava 2012. 6. 16 김흥래 hrkim3468@gmail.com Java Developer s Forum JavaCafe community 구아바???? Java Developer s Forum JavaCafe Community 소개 Google Core Library

More information