90 Java의정석定石 3판 - 연습문제풀이 Chapter 컬렉션프레임웍 Collections Framework

Size: px
Start display at page:

Download "90 Java의정석定石 3판 - 연습문제풀이 Chapter 컬렉션프레임웍 Collections Framework"

Transcription

1 90 Chapter 컬렉션프레임웍 Collections Framework

2 91 [ 연습문제 ] [11-1] 다음은정수집합 1,2,3,4와 3,4,5,6 의교집합, 차집합, 합집합을구하는코드이 다. 코드를완성하여실행결과와같은결과를출력하시오. [Hint] ArrayList클래스의 addall(), removeall(), retainall() 을사용하라. [ 연습문제]/ch11/Exercise11_1.java import java.util.*; class Exercise11_1 { public static void main(string[] args) { ArrayList list1 = new ArrayList(); ArrayList list2 = new ArrayList(); ArrayList kyo = new ArrayList(); // 교집합 ArrayList cha = new ArrayList(); // 차집합 ArrayList hap = new ArrayList(); // 합집합 list1.add(1); list1.add(2); list1.add(3); list1.add(4); list2.add(3); list2.add(4); list2.add(5); list2.add(6); /* */ (1) 알맞은코드를넣어완성하시오. System.out.println("list1="+list1); System.out.println("list2="+list2); System.out.println("kyo="+kyo); System.out.println("cha="+cha); System.out.println("hap="+hap); 실행결과 [ ] list1=[1, 2, 3, 4] list2=[3, 4, 5, 6] kyo=[3, 4] cha=[1, 2] hap=[1, 2, 3, 4, 5, 6]

3 92 [11-2] 다음코드의실행결과를적으시오. [ 연습문제]/ch11/Exercise11_2.java import java.util.*; class Exercise11_2 { public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(3); list.add(6); list.add(2); list.add(2); list.add(2); list.add(7); HashSet set = new HashSet(list); TreeSet tset = new TreeSet(set); Stack stack = new Stack(); stack.addall(tset); while(!stack.empty()) System.out.println(stack.pop()); [11-3] 다음중 ArrayList 에서제일비용이많이드는작업은? 단, 작업도중에 ArrayList 의크기변경이발생하지않는다고가정한다. a. b. c. d. 첫번째요소삭제 마지막요소삭제 마지막에새로운요소추가 중간에새로운요소추가 [11-4] LinkedList 클래스는이름과달리실제로는이중원형연결리스트(doubly circular linked list) 로구현되어있다. LinkedList인스턴스를생성하고 11개의요소를 추가했을때, 이 11 개의요소중접근시간(access time) 이가장오래걸리는요소는몇 번째요소인가?

4 93 [11-5] 다음에제시된 Student클래스가 Comparable인터페이스를구현하도록변경해서 이름(name) 이기본정렬기준이되도록하시오. [ 연습문제]/ch11/Exercise11_5.java import java.util.*; class Student { String name; int ban; int no; int kor, eng, math; Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; int gettotal() { return kor+eng+math; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math +","+gettotal() +","+getaverage(); class Exercise11_5 { public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(new Student(" 홍길동",1,1,100,100,100)); list.add(new Student(" 남궁성",1,2,90,70,80)); list.add(new Student(" 김자바",1,3,80,80,90)); list.add(new Student(" 이자바",1,4,70,90,70)); list.add(new Student(" 안자바",1,5,60,100,80)); Collections.sort(list); Iterator it = list.iterator(); while(it.hasnext()) System.out.println(it.next()); [ 실행결과] 김자바,1,3,80,80,90,250,83.3 남궁성,1,2,90,70,80,240,80.0 안자바,1,5,60,100,80,240,80.0 이자바,1,4,70,90,70,230,76.7 홍길동,1,1,100,100,100,300,100.0

5 94 [11-6] 다음의코드는성적평균의범위별로학생수를세기위한것이다. TreeSet이학 생들의평균을기준으로정렬하도록 주면해당범위에속한학생의수를반환하는 [Hint] TreeSet의 subset(object from, Object to) 를사용하라. compare(object o1, Object o2) 와평균점수의범위를 getgroupcount() 를완성하라. [ 연습문제]/ch11/Exercise11_6.java import java.util.*; class Student implements Comparable { String name; int ban; int no; int kor; int eng; int math; Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; int gettotal() { return kor+eng+math; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math +","+gettotal() +","+getaverage() ; public int compareto(object o) { if(o instanceof Student) { Student tmp = (Student)o; return name.compareto(tmp.name); else { return -1; // class Student

6 95 class Exercise11_6 { static int getgroupcount(treeset tset, int from, int to) { /* (1) 알맞은코드를넣어완성하시오. */ public static void main(string[] args) { TreeSet set = new TreeSet(new Comparator() { public int compare(object o1, Object o2) { /* (2) 알맞은코드를넣어완성하시오. */ ); set.add(new Student(" 홍길동",1,1,100,100,100)); set.add(new Student(" 남궁성",1,2,90,70,80)); set.add(new Student(" 김자바",1,3,80,80,90)); set.add(new Student(" 이자바",1,4,70,90,70)); set.add(new Student(" 안자바",1,5,60,100,80)); Iterator it = set.iterator(); while(it.hasnext()) System.out.println(it.next()); System.out.println("[60~69] :"+getgroupcount(set,60,70)); System.out.println("[70~79] :"+getgroupcount(set,70,80)); System.out.println("[80~89] :"+getgroupcount(set,80,90)); System.out.println("[90~100] :"+getgroupcount(set,90,101)); [ 실행결과] 이자바,1,4,70,90,70,230,76.7 남궁성,1,2,90,70,80,240,80.0 김자바,1,3,80,80,90,250,83.3 홍길동,1,1,100,100,100,300,100.0 [60~69] :0 [70~79] :1 [80~89] :2 [90~100] :1

7 96 [11-7] 다음에제시된 BanNoAscending 클래스를완성하여, ArrayList에담긴 Student인 스턴스들이반(ban) 과번호(no) 로오름차순정렬되게하시오.( 반이같은경우번호를비 교해서정렬한다.) [ 연습문제]/ch11/Exercise11_7.java import java.util.*; class Student { String name; int ban; int no; int kor; int eng; int math; Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; int gettotal() { return kor+eng+math; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math +","+gettotal() +","+getaverage() ; // class Student class BanNoAscending implements Comparator { public int compare(object o1, Object o2) { /* (1) 알맞은코드를넣어완성하시오. */ class Exercise11_7 { public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(new Student(" 이자바",2,1,70,90,70));

8 97 list.add(new Student(" 안자바",2,2,60,100,80)); list.add(new Student(" 홍길동",1,3,100,100,100)); list.add(new Student(" 남궁성",1,1,90,70,80)); list.add(new Student(" 김자바",1,2,80,80,90)); Collections.sort(list, new BanNoAscending()); Iterator it = list.iterator(); while(it.hasnext()) System.out.println(it.next()); [ 실행결과] 남궁성,1,1,90,70,80,240,80.0 김자바,1,2,80,80,90,250,83.3 홍길동,1,3,100,100,100,300,100.0 이자바,2,1,70,90,70,230,76.7 안자바,2,2,60,100,80,240,80.0

9 98 [11-8] 문제11-7의 Student 클래스에총점(total) 과전교등수(schoolRank) 를저장하기 위한인스턴스변수를추가하였다. Student 클래스의기본정렬을이름(name) 이아닌총점 (total) 을기준으로한내림차순으로변경한다음, 총점을기준으로각학생의전교등수 를계산하고전교등수를기준으로오름차순정렬하여출력하시오. [ 연습문제]/ch11/Exercise11_8.java import java.util.*; class Student implements Comparable { String name; int ban; int no; int kor; int eng; int math; int total; // 총점 int schoolrank; // 전교등수 Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; total = kor+eng+math; int gettotal() { return total; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public int compareto(object o) { /* (1) 알맞은코드를넣어완성하시오. */ public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math +","+gettotal() +","+getaverage() +","+schoolrank // 새로추가

10 99 ; // class Student class Exercise11_8 { public static void calculateschoolrank(list list) { Collections.sort(list); // 먼저 list 를총점기준내림차순으로정렬한다. int prevrank = -1; // 이전전교등수 int prevtotal = -1; // 이전총점 int length = list.size(); /* (2) 아래의로직에맞게코드를작성하시오. 1. 반복문을이용해서 list에저장된 Student 객체를하나씩읽는다. 1.1 총점(total) 이이전총점(prevTotal) 과같으면이전등수(prevRank) 를등수(schoolRank) 로한다. 1.2 총점이서로다르면, 등수(schoolRank) 의값을알맞게계산해서저장한다. 이전에동점자였다면, 그다음등수는동점자의수를고려해야한다. ( 실행결과참고) 1.3 현재총점과등수를이전총점(prevTotal) 과이전등수(prevRank) 에저장한다. */ public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(new Student(" 이자바",2,1,70,90,70)); list.add(new Student(" 안자바",2,2,60,100,80)); list.add(new Student(" 홍길동",1,3,100,100,100)); list.add(new Student(" 남궁성",1,1,90,70,80)); list.add(new Student(" 김자바",1,2,80,80,90)); calculateschoolrank(list); Iterator it = list.iterator(); while(it.hasnext()) System.out.println(it.next()); [ 실행결과] 홍길동,1,3,100,100,100,300,100.0,1 김자바,1,2,80,80,90,250,83.3,2 안자바,2,2,60,100,80,240,80.0,3 남궁성,1,1,90,70,80,240,80.0,3 이자바,2,1,70,90,70,230,76.7,5

11 100 [11-9] 문제11-8의 Student 클래스에반등수(classRank) 를저장하기위한인스턴스변수 를추가하였다. 반등수를계산하고반과반등수로오름차순정렬하여결과를출력하시오. (1)~(2) 에알맞은코드를넣어완성하시오. [ 연습문제]/ch11/Exercise11_9.java import java.util.*; class Student implements Comparable { String name; int ban; int no; int kor; int eng; int math; int total; int schoolrank; // 전교등수 int classrank; // 반등수 Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; total = kor+eng+math; int gettotal() { return total; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public int compareto(object o) { if(o instanceof Student) { Student tmp = (Student)o; return tmp.total - this.total; else { return -1; public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math

12 101 +","+gettotal() +","+getaverage() +","+schoolrank +","+classrank // ; // class Student 새로추가 class ClassTotalComparator implements Comparator { public int compare(object o1, Object o2) { /* (1) 알맞은코드를넣어완성하시오. */ class Exercise11_9 { public static void calculateclassrank(list list) { // 먼저반별총점기준내림차순으로정렬한다. Collections.sort(list, new ClassTotalComparator()); int prevban = -1; int prevrank = -1; int prevtotal = -1; int length = list.size(); /* (2) 아래의로직에맞게코드를작성하시오. 1. 반복문을이용해서 list에저장된 Student 객체를하나씩읽는다. 1.1 반이달라지면,(ban과 prevban 이다르면) 이전등수(prevRank) 와이전총점(prevTotal) 을초기화한다. 1.2 총점(total) 이이전총점(prevTotal) 과같으면이전등수(prevRank) 를등수(classRank) 로한다. 1.3 총점이서로다르면, 등수(classRank) 의값을알맞게계산해서저장한다. 이전에동점자였다면, 그다음등수는동점자의수를고려해야한다. ( 실행결과참고) 1.4 현재반과총점과등수를이전반(prevBan), 이전총점(prevTotal), 이전등수(prevRank) 에저장한다. */ // public static void calculateclassrank(list list) { public static void calculateschoolrank(list list) { /* 내용생략 */ public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(new Student(" 이자바",2,1,70,90,70)); list.add(new Student(" 안자바",2,2,60,100,80)); list.add(new Student(" 홍길동",1,3,100,100,100)); list.add(new Student(" 남궁성",1,1,90,70,80)); list.add(new Student(" 김자바",1,2,80,80,90));

13 102 calculateschoolrank(list); calculateclassrank(list); Iterator it = list.iterator(); while(it.hasnext()) System.out.println(it.next()); [ 실행결과] 홍길동,1,3,100,100,100,300,100.0,1,1 김자바,1,2,80,80,90,250,83.3,2,2 남궁성,1,1,90,70,80,240,80.0,3,3 안자바,2,2,60,100,80,240,80.0,3,1 이자바,2,1,70,90,70,230,76.7,5,2 [11-10] 다음예제의빙고판은 1~30 사이의숫자들로만든것인데, 숫자들의위치가잘 섞이지않는다는문제가있다. 이러한문제가발생하는이유와이문제를개선하기위한 방법을설명하고, 이를개선한새로운코드를작성하시오. [ 연습문제]/ch11/Exercise11_10.java import java.util.*; class Exercise11_10 { public static void main(string[] args) { Set set = new HashSet(); int[][] board = new int[5][5]; for(int i=0; set.size() < 25; i++) { set.add((int)(math.random()*30)+1+""); Iterator it = set.iterator(); for(int i=0; i < board.length; i++) { for(int j=0; j < board[i].length; j++) { board[i][j] = Integer.parseInt((String)it.next()); System.out.print((board[i][j] < 10? " " : " ") + board[i][j]); System.out.println(); // main

14 103 [11-11] 다음은 SutdaCard클래스를 HashSet 에저장하고출력하는예제이다. HashSet에 중복된카드가저장되지않도록 SutdaCard의 hashcode() 를알맞게오버라이딩하시오. [Hint] String클래스의 hashcode() 를사용하라. [ 연습문제]/ch11/Exercise11_11.java import java.util.*; class SutdaCard { int num; boolean iskwang; SutdaCard() { this(1, true); SutdaCard(int num, boolean iskwang) { this.num = num; this.iskwang = iskwang; public boolean equals(object obj) { if(obj instanceof SutdaCard) { SutdaCard c = (SutdaCard)obj; return num==c.num && iskwang==c.iskwang; else { return false; public String tostring() { return num + ( iskwang? "K":""); class Exercise11_11 { public static void main(string[] args) { SutdaCard c1 = new SutdaCard(3,true); SutdaCard c2 = new SutdaCard(3,true); SutdaCard c3 = new SutdaCard(1,true); HashSet set = new HashSet(); set.add(c1); set.add(c2); set.add(c3); System.out.println(set); 실행결과 [ ] [3K, 1K]

15 104 [11-12] 다음은섯다게임에서카드의순위를결정하는등급목록( 족보) 이다. HashMap에 등급과점수를저장하는 registerjokbo() 와게임참가자의점수를계산해서반환하는 getpoint() 를완성하시오. [ 참고] 섯다게임은두장의카드의숫자를더한값을 10 으로나눈나머지가높은쪽이이기는게임이다. 그외에 도특정숫자로구성된카드로이루어진등급( 족보) 이있어서높은등급의카드가이긴다. 카드1 카드2 점수 K K 카드1 카드2 점수 [ 연습문제]/ch11/Exercise11_12.java import java.util.*; class Exercise11_12 { public static void main(string args[]) throws Exception { SutdaDeck deck = new SutdaDeck(); deck.shuffle(); Player p1 = new Player(" 타짜", deck.pick(), deck.pick()); Player p2 = new Player(" 고수", deck.pick(), deck.pick()); System.out.println(p1+" "+deck.getpoint(p1)); System.out.println(p2+" "+deck.getpoint(p2)); class SutdaDeck { final int CARD_NUM = 20; SutdaCard[] cards = new SutdaCard[CARD_NUM]; int pos = 0; // 다음에가져올카드의위치 HashMap jokbo = new HashMap(); // 족보를저장할 HashMap SutdaDeck() { for(int i=0;i < cards.length;i++) { int num = i%10+1; boolean iskwang = i < 10 && (num==1 num==3 num==8); cards[i] = new SutdaCard(num,isKwang);

16 105 registerjokbo(); // 족보를등록한다. void registerjokbo() { /* (1) 아래의로직에맞게코드를작성하시오. 1. jokbo(hashmap) 에족보를저장한다. 두카드의값을문자열로붙여서 key 로, 점수를 value 로저장한다. */ int getpoint(player p) { if(p==null) return 0; SutdaCard c1 = p.c1; SutdaCard c2 = p.c2; Integer result = 0; /* */ (2) 아래의로직에맞게코드를작성하시오. 1. 카드두장이모두광이면, jokbo 에서키를 "KK" 로해서점수를조회한다. 2. 두카드의숫자(num) 로 jokbo 에서등급을조회한다. 3. 해당하는등급이없으면, 아래의공식으로점수를계산한다. (c1.num + c2.num) % Player 의점수(point) 에계산한값을저장한다. return result.intvalue(); SutdaCard pick() throws Exception { SutdaCard c = null; if(0 <= pos && pos < CARD_NUM) { c = cards[pos]; cards[pos++] = null; else { throw new Exception(" 남아있는카드가없습니다."); return c; void shuffle() { for(int x=0; x < CARD_NUM * 2; x++) { int i = (int)(math.random() * CARD_NUM); int j = (int)(math.random() * CARD_NUM); SutdaCard tmp = cards[i]; cards[i] = cards[j]; cards[j] = tmp; // SutdaDeck

17 106 class Player { String name; SutdaCard c1; SutdaCard c2; int point; // 카드의등급에따른점수 - 새로추가 Player(String name, SutdaCard c1, SutdaCard c2) { this.name = name ; this.c1 = c1 ; this.c2 = c2 ; public String tostring() { return "["+name+"]"+ c1.tostring() +","+ c2.tostring(); // class Player class SutdaCard { int num; boolean iskwang; SutdaCard() { this(1, true); SutdaCard(int num, boolean iskwang) { this.num = num; this.iskwang = iskwang; public String tostring() { return num + ( iskwang? "K":""); [ 실행결과] [ 타짜]5, [ 고수]1,1K 3010

18 107 [11-13] 다음코드는문제11-12를발전시킨것으로각 Player 들의점수를계산하고, 점 수가제일높은사람을출력하는코드이다. TreeMap의정렬기준을점수가제일높은사람 부터내림차순이되도록아래의코드를완성하시오. 단, 동점자처리는하지않는다. [ 연습문제]/ch11/Exercise11_13.java import java.util.*; class Exercise11_13 { public static void main(string args[]) throws Exception { SutdaDeck deck = new SutdaDeck(); deck.shuffle(); Player[] parr = { new Player(" 타짜", deck.pick(), deck.pick()), new Player(" 고수", deck.pick(), deck.pick()), new Player(" 물주", deck.pick(), deck.pick()), new Player(" 중수", deck.pick(), deck.pick()), new Player(" 하수", deck.pick(), deck.pick()) ; TreeMap rank = new TreeMap(new Comparator(){ public int compare(object o1, Object o2) { /* (1) 알맞은코드를넣어완성하시오. */ ); for(int i=0; i < parr.length;i++) { Player p = parr[i]; rank.put(p, deck.getpoint(p)); System.out.println(p+" "+deck.getpoint(p)); System.out.println(); System.out.println("1 위는 "+rank.firstkey()+" 입니다."); class SutdaDeck { final int CARD_NUM = 20; SutdaCard[] cards = new SutdaCard[CARD_NUM]; int pos = 0; // 다음에가져올카드의위치 HashMap jokbo = new HashMap(); // 족보를저장할 HashMap SutdaDeck() { for(int i=0;i < cards.length;i++) { int num = i%10+1; boolean iskwang = i < 10 && (num==1 num==3 num==8); cards[i] = new SutdaCard(num,isKwang);

19 108 registerjokbo(); // 족보를등록한다. void registerjokbo() { jokbo.put("kk", 4000); jokbo.put("1010",3100); jokbo.put("12", 2060); jokbo.put("99", 3090); jokbo.put("21", 2060); jokbo.put("88", 3080); jokbo.put("14", 2050); jokbo.put("77", 3070); jokbo.put("41", 2050); jokbo.put("66", 3060); jokbo.put("19", 2040); jokbo.put("55", 3050); jokbo.put("91", 2040); jokbo.put("44", 3040); jokbo.put("110", 2030); jokbo.put("33", 3030); jokbo.put("101", 2030); jokbo.put("22", 3020); jokbo.put("104", 2020); jokbo.put("11", 3010); jokbo.put("410", 2020); jokbo.put("46", 2010); jokbo.put("64", 2010); int getpoint(player p) { if(p==null) return 0; SutdaCard c1 = p.c1; SutdaCard c2 = p.c2; Integer result = 0; if(c1.iskwang && c2.iskwang) { result = (Integer)jokbo.get("KK"); else { result = (Integer)jokbo.get(""+c1.num+c2.num); if(result==null) { result = new Integer((c1.num + c2.num) % ); p.point = result.intvalue(); return result.intvalue(); SutdaCard pick() throws Exception { SutdaCard c = null; if(0 <= pos && pos < CARD_NUM) { c = cards[pos]; cards[pos++] = null; else { throw new Exception(" 남아있는카드가없습니다."); return c;

20 109 void shuffle() { for(int x=0; x < CARD_NUM * 2; x++) { int i = (int)(math.random() * CARD_NUM); int j = (int)(math.random() * CARD_NUM); SutdaCard tmp = cards[i]; cards[i] = cards[j]; cards[j] = tmp; // SutdaDeck class Player { String name; SutdaCard c1; SutdaCard c2; int point; Player(String name, SutdaCard c1, SutdaCard c2) { this.name = name ; this.c1 = c1 ; this.c2 = c2 ; public String tostring() { return "["+name+"]"+ c1.tostring() +","+ c2.tostring(); // class Player class SutdaCard { int num; boolean iskwang; SutdaCard() { this(1, true); SutdaCard(int num, boolean iskwang) { this.num = num; this.iskwang = iskwang; public String tostring() { return num + ( iskwang? "K":""); [ 실행결과] [ 타짜]7, [ 고수]2, [ 물주]1, [ 중수]10, [ 하수]9, 위는 [ 중수]10,4 입니다.

21 110 [11-14] 다음은성적처리프로그램의일부이다. Scanner클래스를이용해서화면으로부 터데이터를입력하고보여주는기능을완성하시오. [ 연습문제]/ch11/Exercise11_14.java import java.io.*; import java.util.*; class Exercise11_14 { static ArrayList record = new ArrayList(); // 성적데이터를저장할공간 static Scanner s = new Scanner(System.in); public static void main(string args[]) { while(true) { switch(displaymenu()) { case 1 : inputrecord(); break; case 2 : displayrecord(); break; case 3 : System.out.println(" 프로그램을종료합니다."); System.exit(0); // while(true) // menu를보여주는메서드 static int displaymenu(){ System.out.println("**************************************************"); System.out.println("* 성적관리프로그램 *"); System.out.println("**************************************************"); System.out.println(); System.out.println(" 1. 학생성적입력하기 "); System.out.println(); System.out.println(" 2. 학생성적보기"); System.out.println(); System.out.println(" 3. 프로그램종료 "); System.out.println(); System.out.print(" 원하는메뉴를선택하세요.(1~3) : "); int menu = 0; /* */ (1) 아래의로직에맞게코드를작성하시오. 1. 화면으로부터메뉴를입력받는다. 메뉴의값은 1~3 사이의값이어야한다. 2. 1~3 사이의값을입력받지않으면, 메뉴의선택이잘못되었음을알려주고다시입력받는다.( 유효한값을입력받을때까지반복해서입력받는다.) return menu; // public static int displaymenu(){ // 데이터를입력받는메서드

22 111 static void inputrecord() { System.out.println("1. 학생성적입력하기"); System.out.println(" 이름, 반, 번호, 국어성적, 영어성적, 수학성적' 의순서로공백없이입력하세요."); System.out.println(" 입력을마치려면 q 를입력하세요. 메인화면으로돌아갑니다."); while(true) { System.out.print(">>"); /* (2) 아래의로직에맞게코드를작성하시오. 1. Scanner 를이용해서화면으로부터데이터를입력받는다.(',' 를구분자로) 2. 입력받은값이 q 또는 Q 이면메서드를종료하고, 그렇지않으면입력받은값으로 Student인스턴스를생성하고 record 에추가한다. 3. 입력받은데이터에서예외가발생하면, " 입력오류입니다." 를보여주고다시입력받는다. 4. q 또는 Q가입력될때까지 2~3 의작업을반복한다. */ // end of while // public static void inputrecord() { // 데이터목록을보여주는메서드 static void displayrecord() { int koreantotal = 0; int englishtotal = 0; int mathtotal = 0; int total = 0; int length = record.size(); if(length > 0) { System.out.println(); System.out.println(" 이름반번호국어영어수학총점평균전교등수반등수"); System.out.println("===================================================="); for (int i = 0; i < length ; i++) { Student student = (Student)record.get(i); System.out.println(student); koreantotal += student.kor; mathtotal += student.math; englishtotal += student.eng; total += student.total; System.out.println("===================================================="); System.out.println(" 총점: "+koreantotal+" "+englishtotal +" "+mathtotal+" "+total); System.out.println(); else { System.out.println("===================================================="); System.out.println(" 데이터가없습니다."); System.out.println("===================================================="); // static void displayrecord() {

23 112 class Student implements Comparable { String name; int ban; int no; int kor; int eng; int math; int total; int schoolrank; int classrank; // 반등수 Student(String name, int ban, int no, int kor, int eng, int math) { this.name = name; this.ban = ban; this.no = no; this.kor = kor; this.eng = eng; this.math = math; total = kor+eng+math; int gettotal() { return total; float getaverage() { return (int)((gettotal()/ 3f)*10+0.5)/10f; public int compareto(object o) { if(o instanceof Student) { Student tmp = (Student)o; return tmp.total - this.total; else { return -1; public String tostring() { return name +","+ban +","+no +","+kor +","+eng +","+math +","+gettotal() +","+getaverage() +","+schoolrank +","+classrank ; // class Student

24 113 [ 실행결과] ************************************************** * 성적관리프로그램 * ************************************************** 1. 학생성적입력하기 2. 학생성적보기 3. 프로그램종료 원하는메뉴를선택하세요.(1~3) : 5 메뉴를잘못선택하셨습니다. 다시입력해주세요. 원하는메뉴를선택하세요.(1~3) : 2 ==================================================== 데이터가없습니다. ==================================================== ************************************************** * 성적관리프로그램 * ************************************************** 1. 학생성적입력하기 2. 학생성적보기 3. 프로그램종료 원하는메뉴를선택하세요.(1~3) : 1 1. 학생성적입력하기이름, 반, 번호, 국어성적, 영어성적, 수학성적' 의순서로공백없이입력하세요. 입력을마치려면 q 를입력하세요. 메인화면으로돌아갑니다. >> 입력오류입니다. 이름, 반, 번호, 국어성적, 영어성적, 수학성적' 의순서로입력하세요. >> 자바짱,1,1,100,100,100 잘입력되었습니다. 입력을마치려면 q 를입력하세요. >> 김자바,1,2,80,80,80 잘입력되었습니다. 입력을마치려면 q 를입력하세요. >>q ************************************************** * 성적관리프로그램 * ************************************************** 1. 학생성적입력하기 2. 학생성적보기 3. 프로그램종료 원하는메뉴를선택하세요.(1~3) : 2 이름반번호국어영어수학총점평균전교등수반등수 ==================================================== 자바짱,1,1,100,100,100,300,100.0,0,0 김자바,1,2,80,80,80,240,80.0,0,0 ====================================================

25 114 총점 : ************************************************** * 성적관리프로그램 * ************************************************** 1. 학생성적입력하기 2. 학생성적보기 3. 프로그램종료 원하는메뉴를선택하세요.(1~3) : 3 프로그램을종료합니다.

26 115 Chapter 지네릭스, 열거형, 애너테이션 Generics, Enumeration, Annotation

27 116 [ 연습문제 ] [12-1] 클래스 Box 가다음과같이정의되어있을때, 다음중오류가발생하는문장은? 경고가발생하는문장은? class Box<T> { // 지네릭타입 T를선언 T item; void setitem(t item) { this.item = item; T getitem() { return item; a. Box<Object> b = new Box<String>(); b. Box<Object> b = (Object)new Box<String>(); c. new Box<String>().setItem(new Object()); d. new Box<String>().setItem("ABC"); [12-2] 지네릭메서드 makejuice() 가아래와같이정의되어있을때, 이메서드를올바 르게호출한문장을모두고르시오. (Apple과 Grape는 Fruit 의자손이라고가정하자.) class Juicer { static <T extends Fruit> String makejuice(fruitbox<t> box) { String tmp = ""; for(fruit f : box.getlist()) tmp += f + " "; return tmp; a. Juicer.<Apple>makeJuice(new FruitBox<Fruit>()); b. Juicer.<Fruit>makeJuice(new FruitBox<Grape>()); c. Juicer.<Fruit>makeJuice(new FruitBox<Fruit>()); d. Juicer.makeJuice(new FruitBox<Apple>()); e. Juicer.makeJuice(new FruitBox<Object>()); [12-3] 다음중올바르지않은문장을모두고르시오. class Box<T extends Fruit> { // 지네릭타입 T를선언 T item; void setitem(t item) { this.item = item; T getitem() { return item; a. Box<?> b = new Box(); b. Box<?> b = new Box<>(); c. Box<?> b = new Box<Object>(); d. Box<Object> b = new Box<Fruit>(); e. Box b = new Box<Fruit>(); f. Box<? extends Fruit> b = new Box<Apple>(); g. Box<? extends Object> b = new Box<? extends Fruit>();

28 117 [12-4] 아래의메서드는두개의 ArrayList 를매개변수로받아서, 하나의새로운 ArrayList 로병합하는메서드이다. 이를지네릭메서드로변경하시오. public static ArrayList<? extends Product> merge( ArrayList<? extends Product> list, ArrayList<? extends Product> list2) { ArrayList<? extends Product> newlist = new ArrayList<>(list); newlist.addall(list2); return newlist; [12-5] 아래는예제7-3에열거형 Kind와 Number 를새로정의하여적용한것이다. (1) 에 알맞은코드를넣어예제를완성하시오. (Math.random() 을사용했으므로실행결과가달라 질수있다.) [ 연습문제]/ch12/Exercise12_5.java class DeckTest { public static void main(string args[]) { Deck d = new Deck(); // 카드한벌(Deck) 을만든다. Card c = d.pick(0); // 섞기전에제일위의카드를뽑는다. System.out.println(c); // System.out.println(c.toString()); 과같다. d.shuffle(); // 카드를섞는다. c = d.pick(0); // 섞은후에제일위의카드를뽑는다. System.out.println(c); class Deck { final int CARD_NUM = Card.Kind.values().length * Card.Number.values().length; // 카드의개수 Card cardarr[] = new Card[CARD_NUM]; // Card객체배열을포함 Deck () { /* (1) 알맞은코드를넣어서완성하시오. Deck 의카드를초기화한다. */ Card pick(int index) { // 지정된위치(index) 에있는카드하나를꺼내서반환 return cardarr[index]; Card pick() { // Deck 에서카드하나를선택한다. int index = (int)(math.random() * CARD_NUM); return pick(index); 카드의순서를섞는다 void shuffle() { //. for(int i=0; i < cardarr.length; i++) { int r = (int)(math.random() * CARD_NUM);

29 118 Card temp = cardarr[i]; cardarr[i] = cardarr[r]; cardarr[r] = temp; // Deck클래스의끝 // Card 클래스 class Card { enum Kind { CLOVER, HEART, DIAMOND, SPADE enum Number { ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING Kind kind; Number num; Card() { this(kind.spade, Number.ACE); Card(Kind kind, Number num) { this.kind = kind; this.num = num; public String tostring() { return "[" + kind.name() + "," + num.name() + "]"; // tostring() 의끝 // Card 클래스의끝 실행결과 [ ] [CLOVER,ACE] [HEART,TEN] [12-6] 다음중메타애너테이션이아닌것을모두고르시오. a. Documented b. Target c. Native d. Inherited

30 119 [12-7] 애너테이션 TestInfo 가다음과같이정의되어있을대, 이애너테이션이올바르 TestInfo { int count() default 1; String[] value() default "aaa"; class Exercise12_7 { class Exercise12_7 { class Exercise12_7 { class Exercise12_7 {

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

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

PowerPoint 프레젠테이션

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

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

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

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

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

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

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

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

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

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

슬라이드 1

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

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

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

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

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

제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

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

12-file.key

12-file.key 11 (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 String s = "910359,,

More information

JAVA PROGRAMMING 실습 09. 예외처리

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

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

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

TEST BANK & SOLUTION

TEST BANK & SOLUTION TEST BANK & SOLUTION 어서와자바는처음이지!" 를강의교재로채택해주셔서감사드립니다. 본문제집을만드는데나름대로노력을기울였으나제가가진지식의한계로말미암아잘못된부분이있을것으로사료됩니다. 잘못된부분을발견하시면 chunik@sch.ac.kr로연락주시면더좋은책을만드는데소중하게사용하겠습니다. 다시한번감사드립니다. 1. 자바언어에서지원되는 8 가지의기초자료형은무엇인가?

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

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

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

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

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

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공 메신저의새로운혁신 채팅로봇 챗봇 (Chatbot) 입문하기 소 이 메 속 : 시엠아이코리아 름 : 임채문 일 : soulgx@naver.com 1 목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

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

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

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

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

쉽게 풀어쓴 C 프로그래밍

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

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

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

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

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

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

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

Microsoft PowerPoint - 2강

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

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

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

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

java_jungsuk3_슰ì−µë¬¸ì€œì€—ì²´_ hwp

java_jungsuk3_슰ì−µë¬¸ì€œì€—ì²´_ hwp Web Programming 실습 JAVA 연습문제 01 변수 / 연산자 / 조건문 / 반복문 / 배열 1 4 JAVA 연습문제 01 Chapter 변수 Variable 5 [ 연습문제 ] [2-1] 다음표의빈칸에 8 개의기본형 (primitive type) 을알맞은자리에넣으시오. 종류 논리형 크기 1 byte 2 byte 4 byte 8 byte 문자형 정수형

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

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

Java

Java Java http://cafedaumnet/pway Chapter 1 1 public static String format4(int targetnum){ String strnum = new String(IntegertoString(targetNum)); StringBuffer resultstr = new StringBuffer(); for(int i = strnumlength();

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

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

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

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

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

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

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

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

PowerPoint 프레젠테이션

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

More information

슬라이드 1

슬라이드 1 UNIT 08 조건문과반복문 로봇 SW 교육원 2 기 학습목표 2 조건문을사용핛수있다. 반복문을사용핛수있다. 조건문 3 조건식의연산결과에따라프로그램의실행흐름을변경 조건문의구성 조건식 실행될문장 조건문의종류 if switch? : ( 삼항연산자 ) if 조건문 4 if 문의구성 조건식 true 또는 false(boolean 형 ) 의결과값을갖는수식 실행될문장

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

PowerPoint 프레젠테이션

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

More information

ch09

ch09 9 Chapter CHAPTER GOALS B I G J A V A 436 CHAPTER CONTENTS 9.1 436 Syntax 9.1 441 Syntax 9.2 442 Common Error 9.1 442 9.2 443 Syntax 9.3 445 Advanced Topic 9.1 445 9.3 446 9.4 448 Syntax 9.4 454 Advanced

More information

자바 프로그래밍

자바 프로그래밍 5 (kkman@mail.sangji.ac.kr) (Class), (template) (Object) public, final, abstract [modifier] class ClassName { // // (, ) Class Circle { int radius, color ; int x, y ; float getarea() { return 3.14159

More information

32 Java 의정석定石 2 판 - 연습문제풀이 Chapter 6 객체지향프로그래밍 I Object-oriented Programming I

32 Java 의정석定石 2 판 - 연습문제풀이 Chapter 6 객체지향프로그래밍 I Object-oriented Programming I 32 Chapter 6 객체지향프로그래밍 I Object-oriented Programming I 33 [ 연습문제 ] [6-1] 다음과같은멤버변수를갖는 SutdaCard클래스를정의하시오. 타입 변수명 설명 int num 카드의숫자.(1~10사이의정수 ) boolean iskwang 광 ( 光 ) 이면 true, 아니면 false [6-2] 문제 6-1 에서정의한

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 - CSharp-2-기초문법

Microsoft PowerPoint - CSharp-2-기초문법 2 장. C# 기초문법 자료형 제어문 배열 연산자 순천향대학교컴퓨터학부이상정 1 자료형 순천향대학교컴퓨터학부이상정 2 CTS CTS(Common Type System) 닷넷기반의여러언어에서공통으로사용되는자료형 언어별로서로다른자료형을사용할때발생할수있는호환성문제를해결 값 (Value) 형과참조 (Reference) 형을지원 CTS가제공하는모든자료형은 System.Object를상속받아구현

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

4장.문장

4장.문장 문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전 [ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : 2013. 3 ~ 2014. 2 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전남과학고 1학년 ) 박수형 ( 전남과학고 1학년 ) 서범수 ( 전남과학고 1학년 ) 김효정

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

Chapter 객체지향프로그래밍 I Object-oriented Programming I

Chapter 객체지향프로그래밍 I Object-oriented Programming I Chapter 객체지향프로그래밍 I Object-oriented Programming I [ 연습문제 ] [6-1] 다음과같은멤버변수를갖는 SutdaCard 클래스를정의하시오. 타입 변수명 설명 int num 카드의숫자.(1~10 사이의 정수 ) boolean iskwang 광 ( 光 ) 이면 true, 아니면 false [6-2] 문제 6-1 에서정의한 SutdaCard

More information

Microsoft PowerPoint - lec12 [호환 모드]

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

More information

PowerPoint 프레젠테이션

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

More information

슬라이드 1

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

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

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

스레드의우선순위 우선순위설정메소드 : void setpriority(int newpriority) newpriority 에설정할수있는등급 : 1( 가장낮은우선순위 ) 부터 10( 가장높은우선순위 ) 가장높은우선순위 : MAX_PRIORITY, 보통우선순위 : NORM_

스레드의우선순위 우선순위설정메소드 : void setpriority(int newpriority) newpriority 에설정할수있는등급 : 1( 가장낮은우선순위 ) 부터 10( 가장높은우선순위 ) 가장높은우선순위 : MAX_PRIORITY, 보통우선순위 : NORM_ 10 초동안사용자가입력하지않으면종료하는예제 ) import javax.swing.joptionpane; class AutoTermination { static boolean inputcheck = false; public static void main(string[] args) throws Exception { FirstThread th1 = new FirstThread();

More information

설계란 무엇인가?

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

More information

자바-11장N'1-502

자바-11장N'1-502 C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

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

(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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 9 장생성자와접근제어 이번장에서학습할내용 생성자 정적변수 정적메소드 접근제어 this 클래스간의관계 객체가생성될때초기화를담당하는생성자에대하여살펴봅니다. 생성자 생성자 (contructor): 객체가생성될때에필드에게초기값을제공하고필요한초기화절차를실행하는메소드 생성자의예 class Car { private String color; // 색상

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

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

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

PowerPoint 프레젠테이션

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

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Java ~ Java program: main() class class» public static void main(string args[])» First.java (main class ) /* The first simple program */ public class

Java ~ Java program: main() class class» public static void main(string args[])» First.java (main class ) /* The first simple program */ public class Linux JAVA 1. http://java.sun.com/j2se/1.4.2/download.html J2SE 1.4.2 SDK 2. Linux RPM ( 9 ) 3. sh j2sdk-1_4_2_07-linux-i586-rpm.bin 4. rpm Uvh j2sdk-1_4_2_07-linux-i586-rpm 5. PATH JAVA 1. vi.bash_profile

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

쉽게

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

More information

int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언

int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언 과목명총문항수 O/X 문제형 4 지선다형 5 지선다형단답형서술형 JAVA( 필기테스트 ) 20 문항 0 문항 10 문항 0 문항 10 문항 0 문항 대구분 : Java API 소구분 : Object class/string class/stringbuffer/wrapper ( 단답형 ) [Q1] 다음프로그램은간단한회원정보를포함하고있는클래스를작성한것이다. 실행결과를적으시오.

More information

PowerPoint 프레젠테이션

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

More information