제4장. 객체지향 프로그래밍 II

Size: px
Start display at page:

Download "제4장. 객체지향 프로그래밍 II"

Transcription

1 프로그래머를위한 Java 2, 4 판 제4장객체지향프로그래밍 II

2 4.1.1 상속 상속 기존에있는클래스를바탕으로다른특성을추가해새로운클래스를생성 서브클래스 (subclass), 파생클래스 (derived class), 자식클래스 (child class) 슈퍼클래스 (superclass), 베이스클래스 (baseclass), 부모클래스 (parent class) is - a 관계 "Human is an animal." 에서 human과 animal과의관계 human은 animal에속하면서 animal의모든속성을상속받음 is - a가성립하는경우에상속이가능하다. 서브클래스는슈퍼클래스의서브타입 (subtype) 자바에서는상속을위해서 extends 라는키워드를사용 자바는단일상속 (single inheritance) 만지원 하나의슈퍼클래스로부터상속받음 cf) 다중상속 C++ Class for OOP 2

3 4.1.1 상속 사원과관리자의예 Employee 클래스 멤버필드 : 이름, 사번, 직책, 월급 메소드 : 일하다 Manager 클래스 멤버필드 : 이름, 사번, 직책, 월급, 부서 메소드 : 일하다 Class for OOP 3

4 4.1.1 상속 Employee 와 Manager 의관계 is-a 관계 A manager is an employee. 상속관계 Employee : 슈퍼클래스, 부모클래스 Manager : 서브클래스, 자식클래스 자바에서상속 extends 키워드사용 Class for OOP 4

5 4.1.1 상속 예제 : Employee.java 1 class Employee { 2 protected String name; 3 protected String idnum; 7 public Employee(String name, String idnum) { 8 this.name = name; 9 this.idnum = idnum; 20 public void work() { 21 System.out.println(" temployee ""+name + " " does his best."); 22 } Class for OOP 5

6 4.1.1 상속 예제 : Manager.java 1 class Manager extends Employee { 2 String dept; 4 public Manager(String name, String idnum, String dept) { 5 super(name, idnum); 6 this.dept = dept; 7 } 8 9 public void work() { 10 System.out.println("Manager ""+name + 11 " " works hard with his subordinates in "+dept+ dept."); 12 } Class for OOP 6

7 4.1.1 상속 예제 : Company.java 7 jmchoi = new Manager( Yoon Yong", "F99847", "Finance"); 10 lee = new Employee("lee", "F94732"); 12 employees = new Employee[4]; 13 employees[0] = yiyoon; 14 employees[1] = sblim; 19 public void makemoney() { 20 int n = employees.length; 21 for(int i=0; i < n; i++) { 22 employees[i].work(); 23 } Class for OOP 7

8 4.1.2 super 와 super() super super는슈퍼클래스를지칭하는레퍼런스로사용 상위클래스의멤버필드나메소드를지칭할때사용 super() super.attribute super.method() static으로선언된메소드에서는사용될수없다. super() 는슈퍼클래스의생성자를호출 super() 는생성자의맨처음부분에위치 자식클래스의생성자는슈퍼클래스의생성자를호출해야한다. 슈퍼클래스의생성자를호출하지않는경우에는내부에서자동적으로슈퍼클래스의디폴트생성자가호출 Class for OOP 8

9 4.1.3 오버라이딩 오버라이딩 (overriding) 클래스의상속관계에서발생 슈퍼클래스에있는메소드를서브클래스에서다른작업을하도록서브클래스에서동일한함수이름으로재정의 cf) 오버로딩 (overloading) static 으로선언한클래스메소드에서는오버라이딩되지않는다. 예외상황을발생시킬수있는메소드는오버라이딩할수없다. 예 class Employee { public void work() { System.out.println(" temployee ""+name +."); } } class Manager extends Employee { public void work() { System.out.println("Manager ""+name + "..."); Class for OOP 9

10 예제 : A.java 상속, 오버라이딩, 우버쉐도우 2 int a = 10; 4 void b() { 5 System.out.println("A"); 예제 : AA.java 1 class AA extends A { 2 int a = 20; 3 void b() 4 System.out.println("AA"); 5 6 void c() { 7 System.out.println("C"); Class for OOP 10

11 메모리구조 상속, 오버라이딩, 우버쉐도우 A z b() AA void b() {..("A") } a 10 c() a 20 void b() {..("AA") } void c() {..("C") } Class for OOP 11

12 4.1.4 상속, 오버라이딩, 우버쉐도우 예제 : XYZ.java msg 출력 Class for OOP 12

13 4.1.4 상속, 오버라이딩, 우버쉐도우 예제 : XYZ.java 40 Z z = new Z(); 41 Y y = z; 42 X x = z; 43 z.print(); 44 y.print(); 45 super.print(); 46 play(); 47 super.play(); 48 // y.doz(); 49 // super.super.print(); Class for OOP 13

14 4.1.4 상속, 오버라이딩, 우버쉐도우 예제 : XYZ.java( 계속 ) 51 System.out.println(" ni ="+ i); 52 System.out.println("this.i = "+ this.i); 53 System.out.println("super.i = "+ super.i); 54 System.out.println("y.i = "+ y.i); 55 System.out.println("x.i = "+ x.i); 56 System.out.println("((Y)this).i = "+ ((Y)this).i); 57 System.out.println("((X)this).i = "+ ((X)this).i); 58 // super.super.i = 10; Class for OOP 14

15 4.1.4 상속, 오버라이딩, 우버쉐도우 결과 : XYZ.java C: > java Z I am a Z. I am a Z. I am an Y. Play..I am a Z. Play..I am an X. i =15 this.i = 30 super.i = 20 y.i = 20 x.i = 10 ((Y)this).i = 20 ((X)this).i = 10 Class for OOP 15

16 4.1.4 상속, 오버라이딩, 오버쉐도우 오버라이딩 (overriding) 주의사항 가시성은커지는방향으로 예외 throws 문제 리턴타입이다른경우 오버쉐도우 (overshadow) 동일한이름의멤버필드가슈퍼클래스와서브클래스에있을때 오버쉐도우된멤버필드는 super 레퍼런스를이용하거나, 서브클래스를슈퍼클래스로형변환해서접근할수있다. Class for OOP 16

17 PolyMorphism Poly : 많다는뜻의접두어 Morphism : 형태라는뜻 Polymorphism : 형태가많다는뜻 의미 (Semantics) 는하나지만실제형태는여러가지가될수있음. 예 ) 밥을먹다 : 누가밥을먹는가에다양한형태가존재 객체지향프로그래밍에서 polymorphism 의지원형태 Overloading Overriding Class for OOP 17

18 4.2.1 클래스에서형변환 슈퍼타입과슈퍼클래스 슈퍼타입 슈퍼클래스 같은개념은아니지만, 자바 /C++ 등의언어에서는같다고보아도무방함 예 Class for OOP 18

19 4.2.1 클래스에서형변환 예제 : ReferenceCast.java 9 animal1 = new Animal(); 10 mammal1 = new Mammal(); 11 ape1 = new Ape(); 12 human1 = new Human(); // human2 = ape1; // 컴파일에러 15 // human2 = mammal1; // 컴파일에러 16 // human2 = (Human) mammal1; // 컴파일 OK, 실행시에러 mammal2 = human1; // OK 19 // human2 = mammal2; // 컴파일에러 20 human2 = (Human) mammal2; // OK 21 // ape2 = (Ape) mammal2; // 컴파일 OK, 실행시에러 22 // ape2 = (Ape) animal1; // 컴파일 OK, 실행시에러 Class for OOP 19

20 4.2.2 static 메소드숨김 static 메소드숨김 부모클래스에서정의한 static 메소드를자식클래스에서다시정의하는경우 부모클래스의메소드는숨겨져서보이지않음 자식클래스를부모클래스로타입변경하면, 부모클래스의메소드를사용할수있음 예 : MethodHiding.java 1 class Super { 2 static String greeting() { return "Goodnight"; } 3 String name() { return "Richard"; } 4 } 6 class Sub extends Super { 7 static String greeting() { return "Hello"; } 8 String name() { return "Dick"; } Class for OOP 20

21 4.3 추상클래스 (abstract class) 추상클래스 (abstract class) 특성이구체적으로구현되지않는클래스 new 를이용해서생성할수없다 abstract 키워드사용 추상메소드 메소드의인터페이스만정의되어있는메소드 메소드의리턴타입부분앞에 abstract 라는키워드를기술 메소드의헤더만정의하고, 바디가없는메소드 추상메소드형태 visibilty_type abstract return_type function_name (argumet_list) ; 추상메소드는함수의몸체를가지지않는다. 추상메소드를가지는모든클래스를추상클래스라고한다. 추상클래스는클래스선언시에 abstract 라는키워드를 추상클래스로부터상속받는경우에서브클래스는추상메소드를구현 (implement) 해야한다. Class for OOP 21

22 4.3 추상클래스 (abstract class) 예제 : Shape.java 1 public abstract class Shape { 2 public abstract double area(); 3 public abstract double circumference(); 4 } 예제 : Circle.java 파일 1 class Circle extends Shape{ 2 protected int r; 3 4 public Circle() { 5 r = 0; 6 } public double circumference() { 13 return Math.PI*2*r; 14 } public double area() { 17 return Math.PI*r*r; 18 }. Class for OOP 22

23 4.3 추상클래스 (abstract class) 예제 : ShapeUser.java 1 class ShapeUser { 2 3 public static void main(string arg[]) { 4 Shape shape[] = new Shape[3]; 5 6 shape[0] = new Circle(5); 7 shape[1] = new Circle(7); 8 shape[2] = new Rectangle(9, 5); 9 10 System.out.println("shape[0]'s area = " + shape[0].area()); 11 System.out.println("shape[1]'s area = " + shape[1].area()); 12 System.out.println("shape[2]'s area = " + shape[2].area());... 결과 % java ShapeUser shape[0]'s area = shape[1]'s area = shape[2]'s area = 45.0 Class for OOP 23

24 4.4 인터페이스 인터페이스 자바에서서브타입을지원하기위해서만든개념 모든메소드가헤더만갖고있고, 바디는없음 형태 [ interfacemodifier ] interface name [ extends name ] { [ interfacefieldmodifier ] type name; [ interfacemethodmodifier ] returntype name ( argumentlist ) ; } 인터페이스를구현하는클래스는 implements 키워드사용 Class for OOP 24

25 4.4.1 인터페이스기초 interface 가필요한이유 가정 어떤가계는물건을팔때돈이외경제적가치가있는것을받는다. Shop 클래스의 sell() 메소드는경제적가치가있는것을모두매개변수로받는다. 문제점 : sell() 메소드의매개변수타입 Money 타입인경우 다른경제적가치가있는것은못받는다. Thing 타입인경우 경제적가치가없는것도받을수있다. 해결책 C++ - 다중상속사용 자바 -??? interface라는개념도입 Class for OOP 25

26 4.4.1 인터페이스기초 interface 가필요한이유? Thing Money Watch Trash public class Shop { public void sell(? value, String name) { } }... Class for OOP 26

27 4.4.1 인터페이스기초 예제 : Thing.java 1 public abstract class Thing { 2 public String name; 3 4 public Thing(String name) { 5 this.name = name; 예제 : Valuable.java 1 interface Valuable { 2 public int value(); 3 } Class for OOP 27

28 4.4.1 인터페이스기초 예제 : Watch.java 1 public class Watch extends Thing implements Valuable { 2 3 String brand; 4 5 Watch(String b) { 6 super(" 시계 "); 7 brand = b; 8 } 9 10 public int value() { 11 return 10000; 12 } Class for OOP 28

29 4.4.1 인터페이스기초 예제 : Trash.java 1 public class Trash extends Thing { 2 Trash() { 3 super(" 쓰레기 "); 예제 : Shop.java 8 public void sell(valuable v, String goods) { 9 System.out.print(name +" 에서 "); 10 System.out.print(v.value() + " 원어치 "); myshop.sell(money, " 과자 "); 22 myshop.sell(watch, " 음료수 "); 23 //myshop.sell(trash, " 아이스크림 "); // 컴파일에러 Class for OOP 29

30 4.4.1 인터페이스기초 인터페이스와추상클래스 추상클래스는클래스의메소드와멤버필드의일부분은구현, cf) 인터페이스는전혀구현되어있지않음 추상클래스를이용하는경우에는단일상속만지원 cf) 인터페이스는다중상속 (multiple inheritance) 을할수있음 인테페이스를구현하기위해서 implements 라는키워드를사용 인터페이스를구현하는것도서브타입 (subtype) 을만드는것임 Class for OOP 30

31 4.4.1 인터페이스기초 예 )DrawableCircle Class for OOP 31

32 4.4.1 인터페이스기초 인터페이스사용예 Class for OOP 32

33 4.4.1 인터페이스 (interface) 예제 : Drawable.java 1 import java.awt.graphics; 2 3 interface Drawable { 4 void paint(graphics g); 5 } 예제 : DrawableCircle.java 1 import java.awt.*; 2 3 class DrawableCircle extends Circle implements Drawable { 4 protected int x, y; 16 public void paint(graphics g) { 17 g.drawoval(x-r, y-r, 2*r, 2*r); 18 } 19 } Class for OOP 33

34 4.4.1 인터페이스 (interface) 예제 : DrawApplet.java 1 import java.awt.*; 2 import java.applet.*; 3 4 public class DrawApplet extends Applet { 5 Drawable drawable[]; 6 7 public void init() { 8 drawable = new Drawable[3]; 9 drawable[0] = new DrawableCircle(45, 45, 30); 10 drawable[1] = new DrawableRectangle(25, 25, 40, 65); 11 drawable[2] = new DrawableCircle(90, 70, 60); 12 } public void paint(graphics g) { 15 int n = drawable.length; 16 for(int i=0; i< n; i++) { 17 drawable[i].paint(g); 18 }.. Class for OOP 34

35 4.4.2 인터페이스특성 인터페이스특성 인터페이스의멤버필드는디폴드로 static, final 로선언 따라서인터페이스의멤버필드의값을변경하려는시도는컴파일시에에러를발생 인터페이스구현 서브타입 여러개의인터페이스를구현하는경우 콤마를이용해서기술 인터페이스의임플리멘츠도상속과같은개념 인터페이스를임플리멘츠한서브클래스는인터페이스의멤버필드를상속받아서사용할수있다. 인터페이스의상속 extends 키워드사용 interface ScaledDrawable extends Drawable{..} Class for OOP 35

36 4.5 static 과 final 의의미 final 클래스 그클래스는더이상상속을통해서재사용할수없음 final 클래스를상속받으려는클래스는컴파일시에에러가발생 클래스앞에 final 키워드사용 public final class FinalClass{. } final 메소드 final 이메소드에선언된경우, 오버라이딩이불가능 메소드앞에 final 키워드사용 public final void print(){. } final 멤버필드 값을변경할수없는상수의의미 final 멤버필드는값을초기화만할수있고, 새로이값을할당할수는없음 멤버필드앞에 final 키워드사용 public final int a = 10; Class for OOP 36

37 4.5 static 과 final 의의미 static 멤버필드 객체들간의전역변수처럼사용됨 클래스이름으로접근한다. (ex : Color.red) 멤버필드앞에 static 키워드사용 static int a = 3; static 메소드 혹은클래스메소드라고도함 인스턴스가아닌클래스이름으로메소드호출 ex : Math.abs(-10); 메소드앞에 static 키워드사용 public final static void sayhello(string arg){. } 주의 this, super 를사용할수없음 static 이아닌멤버필드는접근할수없음 Class for OOP 37

38 4.5 static 과 final 의의미 static 초기화 클래스내에서 static 키워드를이용해서초기화루틴을사용할수있음 static 초기화는클래스가초기화될때수행 대표적인 static 초기화의예는네이티브메소드에서라이브러리를로드 static { } System.loadLibrary("hello"); 자바클래스에서멤버필드나메소드의위치는크게중요하지않았음 그러나 static 초기화에서는변수의위치는중요 뒤에선언된변수나함수를앞에서레퍼런스해서사용할수없음 예제 : BadStaticInitial.java 1 class BadStaticInitial { 2 static int i = j + 2; 3 static int j = 4; 4 } Class for OOP 38

39 5.3 내부클래스 (Inner Class) 내부클래스 클래스내부에정의된클래스 외부클래스의멤버필드와메소드에자유롭게접근가능 종류 내재된 (Nested) 톱레벨클래스 / 인터페이스 클래스나인터페이스가 static으로선언된경우 패키지의멤버 다른클래스에서사용될수있음 멤버클래스 클래스의멤버로정의됨 지역클래스 메소드내부에서정의됨 무명클래스 메소드내부에서정의됨 Class for OOP 39

40 5.3.1 내재된톱레벨클래스 / 인터페이스 내재된 (Nested) 톱레벨클래스 / 인테페이스 다른클래스에포함되면서클래스나인테페이스가 static으로선언된경우 다른톱레벨클래스와같이패키지의멤버이다. LinkedList 클래스에내재된인터페이스 Linkable이있다면, Linkable 인터페이스는 LinkedList.Linkable로접근할수있다. 예제 : LinkedList.java 1 public class LinkedList { 2 protected Linkable head; 3 4 public LinkedList() { 5 head = null; 6 } public interface Linkable { 13 public Linkable getnext(); 14 } 15 } Class for OOP 40

41 5.3.1 내재된톱레벨클래스 / 인터페이스 예제 : LinkableNode.java... 3 public class LinkableNode implements LinkedList.Linkable { 4 protected Object value; 5 protected LinkedList.Linkable next; 12 public LinkedList.Linkable next() { 13 return next; 14 } public void next(linkedlist.linkable node) { 17 next = node; 18 } Class for OOP 41

42 5.3.2 멤버클래스 멤버클래스 클래스의멤버로 Inner 클래스가선언된경우이다. static 으로선언되지않는다. 자신을포함하는클래스의멤버필드와메소드들을자유롭게접근 예제 : DrawRecD.java.. 5 public class DrawRecD extends Applet { 6 int startx, starty, w, h;. 21 public class MouseMotionHandler extends MouseMotionAdapter { 22 public void mousedragged(mouseevent e) { 23 w = Math.abs(startX - e.getx()); 24 h = Math.abs(startY - e.gety()); 25 repaint(); 26 } 27 }. Class for OOP 42

43 5.3.2 멤버클래스 멤버클래스 클래스의멤버로내부클래스가선언된경우 예제 : DiscountShop.java 1 public class DiscountShop extends Shop { 6 class Coupon implements Valuable { 7 String label; 8 Coupon() { 9 label = name + " 상품권 "; 10 } public int value() { 13 return 10000; 14 } Class for OOP 43

44 5.3.2 멤버클래스 예제 : ABC.java 1 public class ABC { 2 public String msg = "A"; 3 public void print() { 4 BC bc = new BC(); 5 bc.print(); 6 } 7 8 public class BC { 9 public String msg = "B"; 10 public void print() { 11 C c = new C(); 12 c.print(); Class for OOP 44

45 5.3.2 멤버클래스 예제 : ABC.java( 계속 ) 15 public class C { 16 public String msg = "C"; 17 public void print() { 18 System.out.println(msg); // "C" 19 System.out.println(this.msg); // "C" 20 System.out.println(C.this.msg); // "C" 21 System.out.println(BC.this.msg); // "B" 22 System.out.println(ABC.this.msg); // "A" 23 } Class for OOP 45

46 5.3.3 지역클래스 지역클래스 자바코드의블락 ({ }) 안에서정의된 Inner 클래스 지역변수의특성과유사하다. 멤버클래스는아니지만, 포함하는클래스의멤버필드와메소드를접근 예제 : SomeApplication.java.. 4 public class SomeApplication extends Frame { 5 public static final int EXIT = 0;.. 23 MenuItem createmenuitem(string label, char shortcut, final int command) { 24 MenuItem item = new MenuItem(label, new MenuShortcut(shortcut)); class MenuItemHandler implements ActionListener { 27 public void actionperformed(actionevent e) { 28 docommand(command); 29 } 30 } item.addactionlistener(new MenuItemHandler()); 33 return item; 34 }. Class for OOP 46

47 5.3.3 지역클래스 지역클래스 메소드내부에정의된클래스 예제 : DiscountShop2.java 1 public class DiscountShop2 extends Shop {... 6 public void sales(final int value, String goods) { 7 8 class ValuableThing implements Valuable { 9 public int value() { 10 return value; 11 } 12 } 14 sell(new ValuableThing(), goods); 15 } Class for OOP 47

48 5.3.4 무명클래스 무명클래스 지역클래스의개념을확장 클래스정의와사용의 2 단계를 1 단계로결합 이름을갖지않고한번만사용 예제 : DrawRecD2.java. 8 public void init() { 9 addmouselistener(new MouseAdapter() { 10 public void mousepressed(mouseevent e) { 11 startx = e.getx(); 12 starty = e.gety(); 13 } public void mousereleased(mouseevent e) { 16 w = Math.abs(startX - e.getx()); 17 h = Math.abs(startY - e.gety()); 18 repaint(); 19 } 20 } ); Class for OOP 48

49 5.3.4 무명클래스 무명클래스 메소드내부에서정의됨 예제 : DiscountShop3.java 1 public class DiscountShop3 extends Shop {... 6 public void sales(final int value, String goods) { 7 8 sell(new Valuable() { 9 public int value() { 10 return value; 11 } 12 }, goods); Class for OOP 49

50 5.4 자바에서중요한클래스 Object 클래스 모든자바클래스의슈퍼클래스 extends Object 를쓰지않아도자동적으로상속 Object 클래스들의메소드 protected Object clone() 객체를복사하는데사용된다. public boolean equals(object obj) 두객체의내용이동일한지알아볼때사용되는메소드 public int hashcode() 객체를위한해쉬코드를리턴 해쉬코드는자바시스템에서객체를유일하게식별하는정수값 Class for OOP 50

51 5.4. 자바에서중요한클래스 데이터타입클래스 Class for OOP 51

52 5.4. 자바에서중요한클래스 Boolean 클래스 Boolean 클래스는 boolean 기본타입을표현하기위한클래스 Boolean(boolean value), Boolean(String s) 두형태의생성자를가짐 두번째생성자의아규먼트 s는 "true" 문자열과동일하면 true 값을갖고, 다른경우에는 false 값을갖는다. Boolean 클래스로부터기본타입 boolean 값을얻기위해서는 booleanvalue() 메소드를이용 Class for OOP 52

53 5.4. 자바에서중요한클래스 Byte 클래스 byte 기본자료타입을표현하기위해 JDK 1.1 이후에제공되는클래스 Byte(byte value), Byte(String s) 두형태의생성자를갖는다 두번째생성자의아규먼트는문자열을 10진수의바이트값로변환하면서문자열의포맷이틀린경우에는 NumberFormatException 예외가발생 메소드 public static byte parsebyte(string s) 문자열을 byte 값으로변환하는메소드 public static byte parsebyte(string s, int radix) 문자열을 radix 에따라 10 진수, 2 진수등의 byte 값으로변환하는메소드 public byte bytevalue() 10 진수 byte 값을리턴하는메소드 Class for OOP 53

54 5.4. 자바에서중요한클래스 Character 클래스 Character(char value) 형태의생성자를이용해서 char 기본타입을 나타내기위한클래스로사용 메소드 public char charvalue() public static boolean islowercase(char ch) public static boolean isuppercase(char ch) public static boolean isdigit(char ch) public static boolean isletter(char ch) public static boolean isletterordigit(char ch) public static char tolowercase(char ch) public static char touppercase(char ch) public static boolean iswhitespace(char ch) Class for OOP 54

55 5.4. 자바에서중요한클래스 Double 클래스 Double 클래스는 double 기본자료형을클래스로표현하기위해만들어진클래스로 Double(double value), Double(String s) 두형태의생성자 멤버필드 public static final double MAX_VALUE - double 형이갖을수있는최대값 public static final double MIN_VALUE - double 형이갖을수있는최소값 public static final double NaN - double 형에서숫자가아님을표현하기위해사용되는값 public static final double NEGATIVE_INFINITY - double 형의음의무한대값 public static final double POSITIVE_INFINITY - double 형의양의무한대값 메소드 public static boolean isnan(double v) - double 형이의미있는숫자가아닌지여부를알아보는메소드 public static boolean isinfinite(double v) public boolean isnan() - 의미있는숫자가아닌지여부를알아보는메소드 Class for OOP 55

56 5.4. 자바에서중요한클래스 Double 클래스의값을각기본자료형의값으로변경하는데 사용되는메소드 public byte bytevalue() public short shortvalue() public int public long public float public double intvalue() longvalue() floatvalue() doublevalue() Class for OOP 56

57 5.4. 자바에서중요한클래스 Float 클래스 float 기본자료형을클래스로표현하기위해사용되는클래스 생성자 public Float(float value) public Float(double value) public Float(String s) 멤버필드 public static final float MAX_VALUE public static final float MIN_VALUE public static final float NaN public static final float NEGATIVE_INFINITY public static final float POSITIVE_INFINITY Class for OOP 57

58 5.4. 자바에서중요한클래스 메소드 public static boolean isnan(float v) public static boolean isinfinite(float v) public boolean isnan() Float 클래스의값을각기본자료형의값으로변환하는메소드 public byte bytevalue() public short shortvalue() public int intvalue() public long longvalue() public float floatvalue() public double doublevalue() Class for OOP 58

59 5.4. 자바에서중요한클래스 Integer 클래스 int 기본자료형을표현하기위한클래스 Integer 클래스는 Integer(int value), Integer(String s) 두개의생성자 멤버필드 public static final int MAX_VALUE public static final int MIN_VALUE 메소드 public static int parseint(string s) - 문자열을 10진수의정수로변환 public static int parseint(string s, int radix) - 문자열을 radix로기술한진법의정수로변환 public byte bytevalue() public short shortvalue() public int intvalue() public long longvalue() public float floatvalue() public double doublevalue() Class for OOP 59

60 5.4. 자바에서중요한클래스 Short 클래스 short 기본자료형을표현하기위한클래스 Short 클래스는 Short(short value), Short(String s) 두개의생성자 멤버필드 public static final short MAX_VALUE public static final short MIN_VALUE 메소드 public static int parseshort(string s) public static int parseshort(string s, int radix) public byte bytevalue() public short shortvalue() public int intvalue() public long longvalue() public float floatvalue() public double doublevalue() Class for OOP 60

61 5.4. 자바에서중요한클래스 Math 클래스 수학함수와이에필요한상수들로구성 Math 클래스의모든메소드들은 static으로정의되어있기때문에프로그램내에서 Math 클래스의인스턴스를만들지않고 Math.method_name() 형태로메소드를호출해서사용할수있다. 멤버필드 public static final double E public static final double PI Class for OOP 61

62 5.4. 자바에서중요한클래스 멤버필드 public static type abs(type value) - 아규먼트 value 의절대값을리턴한다. public static type max(type a, type b) - a 와 b 중에서큰값을리턴한다. public static type min(type a, type b) - a 와 b 중에서작은값을리턴한다. public static double log(double a) - 자연로그 lna 값을리턴한다. public static double pow(double a, double b) - ab 값을리턴한다. public static double sin(double a) - sin(a) 값을리턴한다. a는 라디안값이다. public static double sqrt(double a) - a의제곱근값을리턴한다. public static double random() ~ 1.0 사이의임의의값을 리턴한다. Class for OOP 62

63 5.4. 자바에서중요한클래스 예제 : MathDemo.java 1 public class MathDemo { 2 public static void main(string args[]) { 3 int a, b; 4 if(args.length == 0) { 5 a = 2; 6 b = 3; 7 } else { 8 a = Integer.parseInt(args[0]); 9 b = Integer.parseInt(args[1]); 10 } 11 System.out.println("pow("+a + ", "+b+") =>" + Math.pow(a,b)); 12 } 13 } 결과 % java MathDemo 4 5 pow(4, 5) => Class for OOP 63

64 5.4. 자바에서중요한클래스 String 클래스 문자열을나타내기위해사용 생성자 public String() public String(String value) public String(char[] value) public String(char[] value, int offset, int count) public String(bytes[] value) Class for OOP 64

65 5.4. 자바에서중요한클래스 메소드 public char charat(int index) public boolean endswith(string suffix) public int indexof(char ch) public int lastindexof(char ch) public int length(char ch) public String replace(char old, char new) public String substring(int beginindex) public String substring(int beginindex, int endindex) public String tolowercase() public String touppercase() public String trim() Class for OOP 65

66 5.4. 자바에서중요한클래스 예제 : StringDemo.java 1 public class StringDemo { 2 public static void main(string args[]) { 3 String msg = "How are you?"; 4 String greeting = new String(msg); 5 6 if(msg == greeting) { 7 System.out.println("msg == greeting"); 8 }else if(msg.equals(greeting)) { 9 System.out.println("msg equals greeting"); 10 } 11 System.out.println("original msg: " + msg); 12 msg = msg.replace(' ',''); 13 System.out.println("changed msg: " + msg); 14 } 15 } Class for OOP 66

67 5.4. 자바에서중요한클래스 Vector 클래스 Vector 는크기가동적인배열로볼수있다. java.util 패키지에속해있다. 생성자 public Vector() - 빈벡터를생성한다. public Vector(int initialcapacity) - 초기벡터의크기를 initialcapacity로만든다. public Vector(int initialcapacity, int capacityincrement) - 초기벡터의크기를 initialcapacity로만들고, 부족할때마다 capacityincrement 만큼씩벡터크기가증가 Class for OOP 67

68 5.4. 자바에서중요한클래스 메소드 public void add(int index, Object element) - element를 index 위치에추가 public void addelement(object element) - element를맨끝위치에추가 public void remove(int index) - index 위치의 element를삭제 public void removeelement(object element) - 벡터에서처음매칭되는 element를삭제 public Object elementat(int index) - index 번째의 element를리턴 public int size() - 현재벡터에있는 element의개수를리턴 Class for OOP 68

69 5.4. 자바에서중요한클래스 예제 : VectorDemo.java 1 import java.util.*; 2 3 public class VectorDemo { 4 public static void main(string args[]) { 5 Vector vector = new Vector(2,2); 6 String str = "hello"; 7 char c = 'c'; 8 char carray[] = {'h', 'e', 'l', 'l', 'o }; 9 int i = 10; vector.addelement(str); 12 vector.addelement(new Character(c)); 13 vector.addelement(carray); 14 vector.addelement(new Integer(i)); print(vector); 17 }... Class for OOP 69

70 5.4. 자바에서중요한클래스 StringTokenizer 클래스 문자열을개별적인토큰으로분리하는방법을제공 생성자 public StringTokenizer(String str) - 문자열 str을기본적인구별자 ("") 만을이용해서토큰을구별하기위한생성자 public StringTokenizer(String str, String delim) - 문자열 str을구별자 (delim) 를이용해서토큰을구별하기위한생성자 public StringTokenizer(String str, String delim, boolean returntoken) -문자열 str을구별자 (delim) 를이용해서토큰을구별하고, 구별자를토큰과마찬가지고 nexttoken() 메소드에서리턴할것인지 메소드 여부를 returntoken 값으로기술하는생성자 public boolean hasmoretokens() - 토큰이더이상있는지여부를알아본다. public String nexttoken() - 다음토큰을리턴 public String nexttoken(string delim) - 새로운구별자 (delim) 를이용해서다음토큰을리턴 public int counttokens() - 토큰의개수를리턴 Class for OOP 70

71 5.4 자바에서중요한클래스 예제 : StringToken.java 1 import java.util.*; 2 3 public class StringToken { 4 public static void main(string args[]) { 5 String url; 6 if(args.length == 0) 7 url = " 8 else 9 url = args[0]; 10 StringTokenizer st = new StringTokenizer(url, ":/.~", false); 11 while(st.hasmoretokens()) { 12 String token = st.nexttoken(); 13 System.out.println("token => " + token);.. Class for OOP 71

72 6.1 자바의예외처리 실세계의예외처리 이부장 void c( ) { try { 박과장.b( );... 작업중단 } catch (Exception e){... } } 3 박과장 void b( ) throws Exception { 김대리.a( );... 작업중단 } 2 김대리 void a( ) throws Exception { 돌발상황발생 1 } 작업중단 Class for OOP 72

73 6.1 자바의예외처리 예외처리 간단한에러 ( 예외 ) 가발생하였을때, 이오류를바로잡아서계속수행할수있도록오류를처리 예외혹은예외상황 - 심각하지않은에러 C 언어에서예외처리 방법 보통시그날처리루틴이나, 함수의리턴값으로 일반함수나시스템콜은음수값을혹은 0을리턴 필요할경우 errno에값을할당해서에러의타입을알리기도함 Class for OOP 73

74 6.1 자바의예외처리 자바에서예외처리 처리과정 1. 예외 (Exception) 클래스를정의 2. 예외가발생할수있는함수 a() 에서예외가발생할조건을만족하면, Exception 클래스를 throw throw new 예외클래스생성자 () 문장을사용 3. a ( ) 함수를호출하는곳에서는 try-catch 문장을이용해서예외가발생하는경우에문제점을해결 예외클래스종류 자바에서예외 (Exception) 는클래스로표현 모든예외타입 (exception type) 은 Throwable 클래스나이것의서브클래스로부터상속 checked exception 메소드가선언한예외를 throw 하는지를컴파일러가체크 try-catch 문을사용해야한다. unchecked exception RuntimeException 이나 Error 로부터상속받는표준런타임예외와에러 try-catch 문을사용하지않아도컴파일시에에러가발생하지않음 예외타입은클래스이기때문에생성자, 멤버필드, 메소드등을가질수있다. Class for OOP 74

75 6.1 자바의예외처리 throws checked exception 을메소드이름뒤에선언 public int dosomething(int x) throws Exception1, Exception2 { } throw 예외는 throw 문장을이용해서발생시킨다 throw new Exception1(); throws 를혼동하기쉬움 try-catch-finally 예외가발생할수있는문장들을 try문블락에기술한다. 수행도중에예외가발생하면 catch 문으로제어가넘어간다. catch 문은여러개가존재할수있다. finally문은예외발생여부에관계없이항상수행된다. Class for OOP 75

76 6.1 자바의예외처리 1. 예외가발생될가능성이있는 method 을판단한다. 2. 발생될예외를처리할 Class 를정의한다. 예 Class BoE exception Exception { } 3. Try-and-Catch 위의예외가발생할부분에 Try-and-Catch 를선언한다예 try { } catch (BoE) {... } 4. Throws 예외가발생할가능성이있는 method에대하여위에서정의한 Class 에대한예외를선언한다. 예 method_name () throws BoE {... } 5. Throw 예외가발생될메소드내에서예외발생조건을 check하여, 예외가발생되면해당예외 Class를실행한다 throw new BoE(); Class for OOP 76

77 예외처리 JDK 에서제공되는예외 Exception 클래스상속관계 Class for OOP 77

78 6.1 자바의예외처리 예외관련클래스들 Checked Exception Unchecked Exception Class for OOP 78

79 6.1 자바의예외처리 1. 예외클래스만들기 Exception 클래스를상속받아야한다. 1 public class BalanceOutOfBoundsException extends Exception { 2 public BalanceOutOfBoundsException() { 3 super(" 잔액을초과하였습니다."); 4 } 5 } 1 public class MalformedData extends RuntimeException { 2 public MalformedData() { 3 super(" 데이터포맷이잘못되었습니다."); 4 } 5 } Class for OOP 79

80 6.1 자바의예외처리 2. 예외가발생할수있는메소드정의하기 1 public class Account { 2 private long balance; 3 private String name; 4 5 public Account(String name) { 6 this.name = name; 7 } 8 9 public void deposit(int amount) throws MalformedData { 10 if(amount <= 0) { 11 throw new MalformedData(); 12 } 13 balance = balance + amount; 14 } public void withdraw(int amount) 17 throws BalanceOutOfBoundsException, MalformedData { 18 if(amount <= 0) { 19 throw new MalformedData(); 20 } if( balance < amount) { 23 throw new BalanceOutOfBoundsException(); 24 } 25 } Class for OOP 80

81 6.1 자바의예외처리 3. try-catch 로예외잡기 3 Account hong = new Account(" 홍길동 "); 4 hong.deposit(10000); 5 // hong.deposit(-100); // MalformedData 예외발생 6 try { 7 hong.withdraw(5000); 8 // hong.withdraw(-50); // MalformedData 예외발생 9 } catch (BalanceOutOfBoundsException be) { 10 be.printstacktrace(); 11 } catch (MalformedData me) { 12 me.printstacktrace(); 13 } 14 hong.check(); Class for OOP 81

82 예외처리 JDK 에서제공되는예외클래스들의예 ArithmeticException 0으로나누는경우에주로발생하는예외상황 ArithmeticException 은 RuntimeException 으로부터 상속받은 예외클래스 ArrayIndexOutofBoundsException 배열의크기보다큰원소를접근하려고할때발생되는예외 NegativeArraySizeException 배열의크기가음수로된경우에발생하는예외 NullPointerException 생성되지않은객체를이용해서객체의멤버를접근하는경우에발생하는예외 Class for OOP 82

제1장 자바 언어 소개

제1장 자바 언어 소개 프로그래머를위한 Java 2 제3장객체지향프로그래밍 Software Components 2 Programs are easier to construct and modify they are made up of separate components A software component can be thought of any program element that transforms

More information

Microsoft PowerPoint - lec4_1 [호환 모드]

Microsoft PowerPoint - lec4_1 [호환 모드] 객체지향프로그래밍 - 클래스및객체 - 상속성및다형성 - 추상클래스 - 예외처리 클래스 (class) 객체지향개념 자료 (field) + 자료를처리할수있는루틴 (method) 객체생성 캡슐화 (encapsulation) 정보은폐 (Information hiding) 멤버필드와메소드를클래스의외부에서는접근을조정 상속 (Inheritance) 새로운클래스를정의할때,

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

JAVA PROGRAMMING 실습 08.다형성

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

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

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

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

Microsoft PowerPoint - lec7_package [호환 모드]

Microsoft PowerPoint - lec7_package [호환 모드] Lecture 7: Package 패키지의선언 패키지의사용 JAR 파일 자바의언어패키지 2 연관된클래스나인터페이스를하나의단위로묶는방법 장점 여러개의클래스와인터페이스를하나의그룹으로다루는수단을제공 클래스이름사이의충돌문제를해결 패키지의종류 기본패키지 : java.lang, java.util, java.io, java.awt 사용자정의패키지 3 선언형태 package

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

JAVA PROGRAMMING 실습 09. 예외처리

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

More information

Microsoft PowerPoint - 2강

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

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

No Slide Title

No Slide Title 상속 이충기 명지대학교컴퓨터공학과 상속 Q: 건설회사는기존아파트와조금다르거나추가적인특징들을가진새아파트를지을때어떻게하는가? A: 2 상속 상속 (inheritance) 은클래스들을연관시키는자연스럽고계층적인방법이다. 상속은객체지향프로그래밍의가장중요한개념중의하나이다. 상속은 은 이다 라는관계 (is-a relationship) 를나타낸다. 이관계를적용하여클래스들을상하관계로연결하는것이상속이다.

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

슬라이드 1

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

More information

Microsoft PowerPoint - chap11

Microsoft PowerPoint - chap11 10 장객체 - 지향프로그래밍 II 상속 상속 (Inheritance) 상속이란무엇인가? 기존의클래스로부터새로운클래스를유도하는것 자식클래스는부모클래스의메쏘드와데이터를상속 자식클래스에새로운변수나메쏘드를추가할수있다. 기존클래스 부모클래스 (parent class), 수퍼클래스 (superclass), 기반클래스 (base class) 유도클래스 자식클래스 (child

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

Microsoft PowerPoint - java2 [호환 모드]

Microsoft PowerPoint - java2 [호환 모드] 10 장객체- 지향프로그래밍 II 창병모 1 상속 창병모 2 상속 (Inheritance) 상속이란무엇인가? 기존의클래스로부터새로운클래스를유도하는것 자식클래스는부모클래스의메쏘드와데이터를상속 자식클래스에새로운변수나메쏘드를추가할수있다. 기존클래스 부모클래스 (parent class), 수퍼클래스 (superclass), 기반클래스 (base class) 유도클래스

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

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

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

제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

PowerPoint 프레젠테이션

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

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

PowerPoint Presentation

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

More information

PowerPoint 프레젠테이션

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

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

Semantic Consistency in Information Exchange

Semantic Consistency in Information Exchange 제 6 장제어 (Control) 6.1 구조적프로그래밍 (Structured Programming) 6.2 예외 (Exceptions) Reading Chap. 7 숙대창병모 1 6.1 구조적프로그래밍 숙대창병모 2 Fortran 제어구조 10 IF (X.GT. 0.000001) GO TO 20 11 X = -X IF (X.LT. 0.000001) GO TO

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 PowerPoint - CLXBUOPUGXNK.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - CLXBUOPUGXNK.ppt [\310\243\310\257 \270\360\265\345]) 자바패기지 학습목표 자바패키지의개념을이해한다. 패키지의종류, 사용및선언방법을이해한다. 자바패키지압축 기능이비슷한라이브러리클래스나인터페이스들을하나의집단으로묶어놓은것 작성자 자바프로그래밍언어혹은사용자 패키지의예 String 클래스, 입출력에관한클래스및인터페이스, 네트워크에관련된클래스등등 패키지에포함된클래스 기본패키지디렉토리 : C:\jdk1.5.0\jre\lib

More information

JAVA PROGRAMMING 실습 07. 상속

JAVA PROGRAMMING 실습 07. 상속 상속 부모클래스에정의된필드와메소드를자식클래스가물려받는것 슈퍼클래스 (superclass) 특성을물려주는상위클래스 서브클래스 (subclass) 특성을물려받는하위클래스 슈퍼클래스에자신만의특성 ( 필드, 메소드 ) 추가 슈퍼클래스의특성 ( 메소드 ) 을수정 = 오버라이딩구체화 class Phone 전화걸기전화받기 class MobilePhone 전화걸기전화받기무선기지국연결배터리충전하기

More information

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

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

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

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

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå 기초통계프로그래밍 클래스, 객체, 변수, 메소드 hmkang@hallym.ac.kr 금융정보통계학과 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 1 / 26 자바구성파일 소스파일 소스파일 : 사용자가직접에디터에입력하는파일로자바프로그램언어가제공하는형식으로제작 소스파일의확장자는.java 임 컴파일 : javac 명령어를이용하여프로그래머가만든소스파일을컴파일하여실행파일.class

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 Template

PowerPoint Template 10. 예외처리 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 10.1 개요 10.2 C++ 의예외처리 10.3 Java 의예외처리 10.4 Ada 의예외처리 10.1 예외처리의개요 (1) 3 예외 (exception) 오버플로나언더플로, 0 으로나누기, 배열첨자범위이탈오류와같이프로그램실행중에비정상적으로발생하는사건 예외처리 (exception handling)

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

(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

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

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 상속 배효철 th1g@nate.com 1 목차 상속개념 클래스상속 부모생성자호출 메소드재정의 final 클래스와 final 메소드 protected 접근제한자 타입변환과다형성 추상클래스 2 상속개념 상속 (Inheritance) 이란? 현실세계 : 부모가자식에게물려주는행위 부모가자식을선택해서물려줌 객체지향프로그램 : 자식 ( 하위, 파생 ) 클래스가부모 (

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

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

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2 예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 kkman@sangji.ac.kr 2 예외 (exception) 실행시간에발생하는에러 (run-time error) 프로그램의비정상적인종료잘못된실행결과 예외처리 (exception handling) 기대되지않은상황에대해예외를발생야기된예외를적절히처리 (exception handler) kkman@sangji.ac.kr

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

JAVA PROGRAMMING 실습 02. 표준 입출력

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

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

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

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

슬라이드 1

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

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

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

More information

PowerPoint Presentation

PowerPoint Presentation Class : Method Jo, Heeseung 목차 section 1 생성자 (Constructor) section 2 생성자오버로딩 (Overloading) section 3 예약어 this section 4 메소드 4-1 접근한정자 4-2 클래스메소드 4-3 final, abstract, synchronized 메소드 4-4 메소드반환값 (return

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

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

PowerPoint Presentation

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

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 예외처리 (Exception Handling) 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2012-2 nd 프로그래밍입문 (1) 예외상황과예외처리의이해 3 예외상황을처리하지않았을때의결과 예외상황은프로그램실행중에발생하는문제의상황을의미한다. 예외상황의예나이를입력하라고했는데, 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

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

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

9장.예외와 단정

9장.예외와 단정 예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 [2/28] 예외 (exception) 실행시간에발생하는에러 (run-time error) 프로그램의비정상적인종료잘못된실행결과 예외처리 (exception handling) 기대되지않은상황에대해예외를발생 야기된예외를적절히처리 (exception handler) [3/28] 단정 (assertion)

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 상속 손시운 ssw5176@kangwon.ac.kr 상속이란? 상속의개념은현실세계에도존재한다. 2 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성 상속은이미작성된검증된소프트웨어를재사용 신뢰성있는소프트웨어를손쉽게개발, 유지보수 코드의중복을줄일수있다. 3

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

쉽게 풀어쓴 C 프로그래밍

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

More information

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

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

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

Microsoft PowerPoint - lec06_08.ppt [호환 모드] JAVA 프로그래밍 6. 배열과배열리스트 한동일 학습목표 To become familiar with using arrays and array lists To learn about wrapper classes, auto-boxing and the generalized for loop To study common array algorithms To learn how

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 프레젠테이션 자료구조자바세미나 Week1 00 Contents 목차 01 Introduction 02 JAVA? 03 Basic Grammar 04 Array 05 String 06 Class & Method 07 Practice 01 Introduction 자료구조자바세미나기본소개 일시장소 IDE 대상 매주수요일저녁 6 시 (2019.03.20 ~ 2019.04.10)

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

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

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

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

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

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

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

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

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

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

More information

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 26 장애플릿 이번장에서학습할내용 애플릿소개 애플릿작성및소개 애플릿의생명주기 애플릿에서의그래픽컴포넌트의소개 Applet API의이용 웹브라우저상에서실행되는작은프로그램인애플릿에대하여학습합니다. 애플릿이란? 애플릿은웹페이지같은 HTML 문서안에내장되어실행되는자바프로그램이다. 애플릿을실행시키는두가지방법 1. 웹브라우저를이용하는방법 2. Appletviewer를이용하는방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability

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

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

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

Chap12

Chap12 12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)

More information

슬라이드 1

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

More information

Microsoft Word - PJ_scjp_9_0_1-lang.doc

Microsoft Word - PJ_scjp_9_0_1-lang.doc SCJP 강좌 Section 9 java.lang package 문서정보 문서제목 scjp 강좌 : Section 9 java.lang package 파일이름 PJ_scjp_9_0_1.pdf 작성자 신상훈, 김병필 작성일 2002년 1월 10일 버전 0.1 상태 초안 내용정보 예상독자개요 페이지 scjp 취득을원하는 java 초보 java.lang 패키지의

More information

JVM 메모리구조

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

More information

Microsoft PowerPoint - lec12 [호환 모드]

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

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PowerPoint Template

PowerPoint Template 9. 객체지향프로그래밍 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 9.1 개요 9.2 객체지향프로그래밍언어 9.3 추상자료형 9.4 상속 9.5 동적바인딩 9.1 객체지향의개념 (1) 3 객체지향의등장배경 소프트웨어와하드웨어의발전불균형 소프트웨어모듈의재사용과독립성을강조 객체 (object) 란? 우리가다루는모든사물을일컫는말 예 ) 하나의점, 사각형,

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

쉽게

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

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

17장 클래스와 메소드

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

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