Microsoft PowerPoint 자바-출석수업

Size: px
Start display at page:

Download "Microsoft PowerPoint 자바-출석수업"

Transcription

1 Java 프로그램의실행 1 강. Java 와객체지향프로그래밍 Java VM 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡 Java 소스프로그램의확장자는.java 바이트코드 Java 소스를컴파일한결과물 확장자는.class 이며클래스파일이라고도함 Java VM 에서실행가능한코드 write once, run anywhere. 애플리케이션과애플릿 Java 플랫폼 애플리케이션 Java 플랫폼에서바로실행되는프로그램 애플릿 HTML 웹페이지에포함되어웹브라우저를통해실행웹브라우저는 Java VM 을포함함 <APPLET CODE="HelloApplet.class" WIDTH=200 HEIGHT=100> </APPLET> 플랫폼 (platform) 프로그램의실행을위한하드웨어와소프트웨어환경 Java 플랫폼은 Java 프로그램의개발과실행을위한환경 운영체제에맞는 Java 플랫폼을설치해야함 C 프로그램 Java 프로그램 Java 플랫폼 운영체제 (Windows, Unix, LINUX 등 ) 컴퓨터시스템 (Hardware)

2 Java 플랫폼의구성 JDK 의설치 Java VM Java 프로그램의실행환경을제공하는가상기계 Java 프로그램의구동엔진실행에필요한사항을관리메모리정리를자동으로수행 Java API 프로그램의개발에필요한클래스라이브러리패키지 ( 클래스묶음 ) 들이계층구조로분류되어있음 Java 홈페이지에서다운로드받아설치 downloads/index.html Java SE Development Kit(JDK) 8u111 / 8u112 를설치 자신이사용하는운영체제에맞는것을선택환경변수 PATH를수정 C:\Program Files\Java\jdk1.8.0_101\bin 을추가 환경변수 JAVA_HOME 을생성 C:\Program Files\Java\jdk1.8.0_101 를대입 Eclipse 의설치 Eclipse 홈페이지에접속 Eclipse IDE for Java Developers 압축파일을다운받음 eclipse-java-neon-2-win32.zip 적당한곳에압축파일을풀어줌 예 : D:\eclipse 간단한 Java 프로그램 Hello 애플리케이션 대소문자구분 주석, public class, main( ) 메소드, 출력문 /** * The Hello class implements an application that * simply prints Hello, Java Application! to standard output. */ public class Hello { public static void main(string args[ ]) { // main method /* Display the string */ System.out.println("Hello, Java Application!");

3 Java 프로그램살펴보기 (1) Java 프로그램살펴보기 (2) 주석 /* */ 사이의내용을무시함 /** */ javadoc을이용한 API 문서 만들기 클래스의 // 이후정의내용을무시 출력 System.out 실행 표준출력을담당하는객체 print( ) 또는 println( ) 을수행함 public class Hello { main( ) { public class는파일에최대 1개파일이름은 퍼블릭클래스이름.java main( ) 메소드의형식은 public static void main(string[ ] args) 프로그램작성컴파일 실행 Hello.java로저장함 > javac Hello.java 클래스이름.class 가만들어짐 > java Hello main( ) 메소드가실행됨 객체지향프로그램 Java 프로그램 클래스가프로그램구성의기본단위 데이터 ( 필드 ) 와알고리즘 ( 메소드 ) 이클래스에캡슐화되어있음 객체들이만들어지고객체들간의상호작용으로프로그램이동작함 C 프로그램과 Java 프로그램 (1) 성적처리를위한 C 프로그램 int e[2]; int m[2]; // 영어성적을위한변수 // 수학성적을위한변수 void input_grade( ) { // 영어, 수학성적을입력받는함수 e[0] = 90; // 첫번째학생의영어성적 e[1] = 80; // 두번째학생의영어성적 m[0] = 85; // 첫번째학생의수학성적 m[1] = 80; // 두번째학생의수학성적 void output_grade( ) { // 총점출력하는함수 printf("%d, %d", e[0]+m[0], e[1]+m[1]); void main(void) { input_grade( ); output_grade( );

4 C 프로그램과 Java 프로그램 (2) 성적처리를위한 Java 프로그램 class Grade { int e; // 영어성적을위한변수 int m; // 수학성적을위한변수 void output_grade( ) { // 총점을구하는메소드 System.out.println(e+m); public class GradeOutput { public static void main(string args[ ]) { Grade g1, g2; //2 명의성적을표현하는객체 g1 = new Grade( ); g2 = new Grade( ); // 점수입력 g1.e = 90; g1.m = 85; g2.e = 80; g2.m = 80; 2 강. Java 기본문법 (1) g1.output_grade( ); g2.output_grade( ); 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡 Java 프로그램 식별자 (1) 성적처리를위한 Java 프로그램 class Grade { int e; int m; // 영어성적을위한변수 // 수학성적을위한변수 void input_grade(int a, int b) { // 성적입력 e = a; m = b; void output_grade( ) { // 총점출력 System.out.println(e+m); public class GradeOutput { public static void main(string args[ ]) { Grade g1, g2; //2명의성적을표현하는객체 g1 = new Grade( ); // 객체생성 g2 = new Grade( ); g1.input_grade(90, 85); // 성적입력 g2.input_grade(80, 80); g1.output_grade( ); g2.output_grade( ); // 총점출력 클래스, 변수, 메소드, 레이블등의이름 프로그래머가만드는이름 작명규칙 대소문자구분 길이에제한없음 영대소문자, 한글, 숫자, _, $ 를사용 숫자로시작할수없음 키워드, true, false, null은불가 잘못작명된예 2002WorldCup, my#class class, World Cup, public class HelloApplication { static String szmsg = "Hello, Java!"; public static void main(string args[]) { int ntest = 0; System.out.println(szMsg);

5 식별자 (2) 키워드 식별자를만들때의관례 클래스 : 첫자는대문자, 단어의첫글자는대문자, 나머지는소문자 Car, HelloWorld, MyClass, String 메소드, 변수 ( 필드 ) : 위와같으나첫자가소문자 speed, mycar, geararea( ) 상수 : 모든문자를대문자로표기하고, 단어사이에 _ 를넣어구분 static final int NUM_GEARS = 6; 변수의경우자료형을표시하기위한접두어를붙이기도함 int nspeed; String szstr1; 의미가미리정해진단어 프로그램에서정해진의미로만사용해야함 변수와자료형 변수의사용범위 변수를선언할때, 저장되는값의자료형을선언 메소드를선언할때, 반환값의자료형을선언 자료형에따라적용가능한연산이다름변수의종류 지역변수와파라미터 선언된곳부터해당블록이종료될때까지유효함 메소드가실행될때만들어지고끝나면없어짐 지역변수는초기값을지정한후사용해야함 지역변수선언에서접근제어자를사용하지않음 인스턴스변수클래스변수지역변수파라미터 ( 클래스정의에서 static 이아닌필드 ) 객체가소유하는변수 ( 클래스정의에서 static 필드 ) 객체가공유하는변수 메소드내부에서선언된변수 메소드호출시전달하는값을저장하기위한변수 데이터필드 ( 인스턴스변수 or 클래스변수 ) 선언된클래스내부에서사용가능 클래스외부에서의사용여부는접근제어자 (access modifier) 에따라다름 예 : class Circle { protected int radius;

6 Java 의기본자료형 리터럴 (1) 분류 키워드 길이 (byte) 값의범위 문자 char 2 \u0000 ~ \uffff 논리 boolean 1 true 또는 false byte 1-128~127 정수 short ~32767 int ~ long ~ 실수 float 4 (+/-) 약1.4E-45~3.4E38 double 8 (+/-) 약4.9E-324~1.8E308 상수 리터럴 ( 실제데이터값 ) 또는값이변하지않는변수 final int nconst = 3; // 선언시초기값을지정 정수형리터럴 byte, short, int, long l 이나 L 로끝나면 long 형, 나머지는 int byte 와 short 는허용범위안에서 int 와호환됨 26L, 26, 0b11010, 032, 0x1a 리터럴 (2) 참조형 실수형리터럴 소수점이있는숫자 f 나 F 로끝나면 float 형, 나머지는 double 형 123.4f, 123.4, 1.234e2 문자형리터럴 1 개의문자를표현하고 16 비트 UNICODE 로인코딩됨 단일따옴표를사용하고 Unicode 사용가능 \u0000 ~ \uffff (0~65536) 의수와호환됨 (char)65, A, \u0041, 가, \uac00 기본형을제외한모든자료형 참조값 ( 주소 ) 을가지는자료형 배열, 클래스형등 int anarray[ ]; Circle mycircle; String szstr; 10 Java 참조형변수는저장공간에참조값을저장함 실제데이터는별도의공간에저장됨 기본형변수는저장공간에값자체를저장함 10

7 형변환 묵시적자료형의변환 작은타입에서큰타입으로는자동형변환 byte > short > int >long > float > double 개발자 > 직원 > 인간 > 포유류 예 double d = 5; // 대입문 System.out.println( j +10); // 수식 double res = Math.sqrt(2); // 메소드호출 명시적자료형의변환 큰타입에서작은타입으로변환할때는명시적형변환이필요 문법은 ( 자료형 ) 피연산자 예 float f = (float)5.5; 연산자의종류 구분 연산자예 산술연산자 + - * / % 단항연산자 비교연산자 > >= < <= ==!= instanceof 논리연산자 && 단항! 삼항?: & ^ 비트연산자 비트논리 & ^ ~ 비트이동 << >> >>> 대입연산자 = += -= *= /= %= &= ^= = >>= <<= >>>= 형변환연산자 ( 자료형 ) 기타 [ ] ( ). 명령행매개변수 문장의종류 프로그램을실행할때전달하는인자 main( ) 함수에전달되는인자 문자열로전달됨 > java CommandInputTest Kim 123 public class CommandInputTest { public static void main(string args[ ]) { System.out.println(args[0]); int n = Integer.parseInt(args[1]); System.out.println(n); 수식문변수선언문제어문기타 블록문 { 레이블문 레이블 : 문장 예외처리문 try-catch 문 동기화문 synchronized 문

8 제어문 프로그램의실행은기본적으로위에서아래로순차실행됨 제어문은실행흐름을바꿈 제어문의종류 선택문 조건에따른문장의선택 if 문, switch 문 선택문 (1) if문 if (boolean-수식) 문장 if-else문 if (boolean-수식) 문장 else 문장 if와 else의짝짓기 else는자기짝이없는가장가까운if와짝을이룸 반복문 점프문 조건에따른문장의반복 for 문, while 문, do-while 문 분기문 return 문, break 문, continue 문 int a = 2; int b = 2; if (a == 1) if (b == 2) System.out.println("a was 1 and b was 2."); else System.out.println("a wasn't 1."); 선택문 (2) 반복문 switch문 다중선택구조 case 조건은정수 (long형제외 ) 와호환되거나 String 값 default는생략가능하며어떤 case에도해당되는않는경우매칭됨 만족되는 case를실행한후, break문을만날때까지계속실행 switch(n) { case 10: System.out.println("10입니다."); break; case 20: case 30: System.out.println("20이거나 30입니다."); break; default: System.out.println(" 모르겠습니다."); break; for-each문 개선된 for문 배열이나컬렉션의원소들을차례로다룰때편리 형식은 for ( 변수선언 : 배열 ) { 문장 public class ForEachDemo { public static void main(string[] args) { int[ ] arrayofints = {32, 87, 3, 589, 12, 1076, 2000, 8; for (int element : arrayofints) { System.out.print(element + " "); System.out.println();

9 점프문 (1) break 문 break 문을포함하는가장가까운 switch 문, for 문, while 문, do-while 문의실행을끝냄 반복문이나 switch 문을빠져나갈때사용 형식은 break; 레이블을사용하여특정반복문을빠져나갈수있음 중첩 for 문에서바깥 for 문을종료하는경우 이경우형식은 break 레이블 ; 반복문에레이블을지정하려면레이블 : 반복문 점프문 (2) continue 문 반복문안에서사용함 가장가까이있는반복문의다음반복으로즉시제어를이동하기위한것 형식은 continue; 레이블을사용하여특정반복문의다음반복으로이동할수있음 중첩 for문에서바깥 for문의다음반복으로갈때 이경우형식은 continue 레이블 ; 배열 3 강. Java 기본문법 (2) 같은자료형의원소를정해진개수만큼가지고있는객체배열의크기는배열이생성될때정해지고바뀌지않음숫자인덱스 ( 첨자 ) 를사용하여특정원소를다룸 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡 배열의선언 선언할때크기를지정할수없음 형식은자료형 [ ] 변수이름 ; 또는자료형변수이름 [ ]; 예 int[ ] a; int b[ ]; int[ ][ ] c; int d[ ][ ];

10 배열의사용 (1) 배열의선언과초기화 선언과동시에중괄호를이용하여초기값을지정 자동으로메모리공간이확보됨 예 int a[ ] = {2, 3, 5, 7, 11; // 선언과초기화 a a[0] a[1] a[2] a[3] a[4] int b[ ]; b = {4, 5, 6; // 오류 int anarray3[ ][ ] = {{1, 2, 3, {4, 5, 6; 배열의사용 (2) 배열의선언과메모리공간의생성 new 연산자를이용 배열의크기를정하고메모리공간을확보 메모리의주소값을리턴함 원소가숫자인경우 0, 참조형인경우 null 로자동초기화 예 int a[ ] = new int[3]; // 선언과생성 int b[ ]; b = new int[10]; int anarray4[ ][ ] = new int[3][2]; 배열의크기 배열은크기를가지는내장속성 length를가짐 사용법은배열이름.length public class ArrayTest { public static void main(string args[ ]) { int twoarray[ ][ ] = { {0, 1, {10, 11, 12 ; for(int i = 0;i < twoarray.length;i++) for(int j = 0;j < twoarray[i].length;j++) System.out.println( twoarray[i][j]); twoarray[0].length twoarray.length [0][0] [0][1] [1][0] [1][1] [1][2] twoarray[1].length String 클래스 문자열을표현하고처리하기위한참조형 String 형의변수는기본형변수처럼사용할수있음 문자열리터럴 이중따옴표를사용함 예 String s1 = Java ; String s2 = new String( Java ); null 이라는특별한리터럴이있음 참조형변수의값이될수있음 if ( s1!= null ) { false true

11 문자열의 + 연산 두문자열을연결하는것 ( 문자열 + 기본형 ) or ( 문자열 + 다른참조형 ) 도가능 기본형과참조형값은문자열로형변환가능 print( ) 나 println( ) 에서자주사용됨 1 개매개변수를문자열로바꾸어출력함 System.out 은화면출력을위한객체 Scanner 클래스 키보드나파일로부터다양한자료를입력받을때사용 기본적으로공백문자로구분되는단어단위로입력됨 클래스에관한설명을보려면아래 API 설명페이지를참조 키보드에서입력받을때 System.in 은키보드입력을위한객체 System.in 을이용하여 Scanner 객체를만들고사용함 System.out.println("result=" + " " + result); System.out.println('A'+ 0); //65 System.out.println("A" + 0); Scanner sc = new Scanner(System.in); String name = sc.next( ); Scanner 클래스를사용한입력 (1) Scanner 클래스의입력용메소드 boolean hasnext( ) - 다음단어가있으면 true를반환 String next( ) 단어를읽어문자열로반환 boolean hasnextint( ), int nextint( ) boolean hasnextdouble( ), double nextdouble( ) boolean hasnextline( ), String nextline( ); Scanner s = new Scanner(System.in); String name = s.nextint( ); Scanner 클래스를사용한입력 (1) import java.util.scanner; public class ScannerDemo2{ public static void main(string args[]) { Scanner sc = new Scanner(System.in); while(sc.hasnextint()) { System.out.println(sc.nextInt());

12 클래스정의 클래스의정의와클래스의사용 클래스정의문법 [ 접근제어자 ] class 클래스이름 [extends 부모클래스이름 ] [implements 인터페이스이름 ] { 데이터필드선언 생성자선언메소드선언 클래스접근제어자 생략, public, protected, private 또는 abstract, final 클래스의정의 데이터필드와메소드를정의 객체가가지는인스탄스변수와인스탄스메소드 클래스가가지는클래스변수와클래스메소드 메소드는저장된데이터를이용해기능을수행 객체의상태는데이터필드로, 행위는메소드로구현됨 클래스의사용 상속받아클래스를정의하거나객체를생성하는경우 클래스는객체의자료형 클래스의접근제어자 (1) 클래스의접근제어자 (2) 클래스를사용할수있는범위를제한하는것 private 과 protected 는특별한경우에만사용함 접근제어자와의미 접근제어자가생략된 class 는같은패키지에있는다른클래스에서사용가능 ( 패키지접근수준 ) public class 는모든클래스즉, 어디서나사용가능 class Circle { private int r; public Circle(int a) { r = a; public double getarea( ) { return r * r * ; public class CircleArea2 { public static void main(string args[ ]) { Circle c = new Circle(5); //System.out.println(c.r); System.out.println(c.getArea( ));

13 데이터필드의접근제어자 (1) 데이터필드와접근제어자 (2) 데이터필드를사용할수있는범위를제한하는것 ( 정보은닉 ) 메소드의접근제어자도의미가같음 접근제어자의의미 아래 4 개의클래스에서 Alpha 클래스의어떤멤버를사용할수있는가? 접근제어자가생략된필드는같은패키지에있는다른클래스에서사용가능 private 필드는같은클래스에서만사용가능 protected 필드는같은패키지에서그리고자식클래스에서사용가능 public 필드는모든클래스에서사용가능 Alpha 클래스의 멤버 Alpha Beta ( 같은패키지 ) AlphaSub ( 자식 ) Gamma ( 다른패키지 ) public 사용가능 사용가능 사용가능 사용가능 protected 사용가능 사용가능 사용가능 생략사용가능사용가능 private 사용가능 메소드정의 4 강. 클래스와상속 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡 문법 헤더와몸체로구성 [ 접근제어자 ] 반환형메소드이름 ([ 자료형인자 [, 자료형인자 ]]) [throws 예외이름 ] { 문장 public double getarea( ) { return radius * radius * PI; public void setradius(int r) { radius = r;

14 생성자 (1) 생성자 (2) class Circle { private int r; public Circle(int a) { r = a; public double getarea( ) { return r * r * ; public class CircleArea2 { public static void main(string args[ ]) { Circle c = new Circle(5); //System.out.println(c.r); System.out.println(c.getArea( )); 객체가생성될때자동으로실행되는메소드 객체의필드값을초기화하거나메모리할당등의작업객체생성방법은 new 클래스이름 ( 인자 ) Circle c = new Circle(5); new 연산자를이용하여객체를생성 ( 메모리할당 ) 하고 생성자가호출 ( 데이터초기화 ) 되면서 객체의참조값을변수에대입 (=) 생성자정의 기본생성자 보통메소드와정의방법이다름 생성자는객체가생성될때자동호출됨 인자가없는생성자를의미 디폴트 (default) 생성자 정의방법 생성자이름은클래스이름과같음 반환형을선언하지않음 여러생성자를정의할수있음 ( 생성자오버로딩 ) 인자의개수와인자의자료형으로구분 접근제어자는보통 public 클래스정의에생성자정의가전혀없으면컴파일러가다음과같은것을자동으로만들어줌 public Cirle( ) { 여기서자동으로부모클래스의생성자를자동호출함 super( ) 부모클래스에서기본생성자의존재를확인해야함

15 클래스의사용 객체의사용 상속을위해사용하는것 class CSub extends CSuper { 변수를선언하고객체를생성 클래스참조형변수의선언 Circle c; c = new Circle(5); 객체변수와점 (.) 연산자를사용하여멤버에접근 객체가소유하는데이터를읽거나쓰기 객체를이용하여메소드를호출하기 예 c.r = 5; //c 의 r 을변경 c.getarea( ) //c 에게 getarea( ) 실행을요청 public double getarea( ) { return this.r * this.r * ; static 필드와 static 메소드 (1) static 필드 정적필드 or 클래스변수 클래스의모든객체가공유하는데이터 객체의생성이없어도항상사용가능 어떤객체도값을변경할수있음 사용방법은클래스이름. 정적필드 객체변수. 정적필드도가능 c1 c2 c1.x c1.y c1.radius Circle.count 2 static 필드와 static 메소드 (2) static 메소드 정적메소드 or 클래스메소드 객체와무관하게호출되고실행됨 메소드몸체에서 this를사용할수없음 static 필드와인자를가지고작업함 사용방법은클래스이름. 정적메소드 ( ) Math.sqrt(2.0); Integer.parseInt( 120 ); 0 0 5

16 final 필드와 final 메소드 final 필드 상수데이터를선언 선언할때초기값을지정해야함 자주 static과함께사용됨 final static double PI = ; final 메소드 자식으로의상속은가능하나재정의할수없는메소드 객체초기화 (1) 객체를생성할때, 데이터필드에초기값을지정하는것 클래스변수는프로그램시작시에자동초기화됨 데이터필드는자동으로초기값이주어질수있음 방법 ( 아래의순서대로실행됨 ) 데이터필드의선언문에서초기화 초기화블록 클래스몸체내임의위치에포함 초기값지정을위한코드 생성자실행전에수행됨 static 필드는 static 블록을사용 생성자 class IniTest { int nvalue = 1; { nvalue = 2; public IniTest( ) { nvalue = 3; 객체초기화 (2) 메소드오버로딩 import java.awt.point; class Rectangle { public int width = 0; public int height = 0; public Point origin; public Rectangle( ) { origin = new Point(0, 0); public Rectangle(Point p, int w, int h) { origin = p; width = w; height = h; public class Test { public static void main(string args[ ]) { Point originone = new Point(23, 94); Rectangle rectone = new Rectangle(originOne, 100, 200); Point 객체 x originone 23 y 94 rectone Rectangle 객체 origin width 100 height 200 인자의개수나인자의자료형이다르면같은이름의메소드를한클래스에서중복정의할수있음 인자의개수나인자의자료형으로구분할수있어야함 메소드를호출할때, 가장가까운메소드가호출됨 예 System.out.println( ); // 인자없음 System.out.println( 문자열 "); // 인자는 String System.out.println(241); // 인자는 int System.out.println(34.5); // 인자는 double

17 클래스와객체의사용예 클래스의재사용 class Cylinder { private Circle c; // 원 private int h; // 높이 public Cylinder(Circle a, int b) { c = a; h = b; public double getvolume( ) { return c.getarea( ) * h; public class CylinderVolume { public static void main(string args[]) { Circle c = new Circle(7); int h = 8; Cylinder cy = new Cylinder(c, h); System.out.println(cy.getVolume( )); 합성 기존클래스를새로운클래스의멤버로사용 has-a 관계 class Line { Point begin, end; 상속 기존클래스 ( 부모 ) 를사용하여새로운클래스 ( 자식 ) 를정의 코드의중복작성을줄이고프로그램의확장성이좋아짐 기존클래스를확장 or 특화 is-a 관계 클래스의상속 (1) 클래스의상속 (2) 상속은부모클래스와자식클래스간의관계 자식클래스가부모클래스의필드와메소드를상속받음 키워드 extends 를사용함 class Manager extends Employee { 자식클래스에서메소드오버라이딩가능 반환형, 이름, 매개변수가일치해야함 접근제어자는일치하거나접근범위가넓어져야함 클래스의상속은단일상속만가능 인터페이스상속의경우는다중상속가능 class CSuper { private int f1; public int f2; public void setprivate( ) { f1 = 10; public void setpublic( ) { f2 = 20; private void mprivate( ) { f1 = 30; class CSub extends CSuper { private int f3; public int f4; public class InheritTest { public static void main(string args[ ]) { CSub sub = new CSub( ); sub.f1 = 40; // 오류 sub.f2 = 50; sub.f3 = 60; // 오류 sub.f4 = 70; sub.setprivate( ); sub.setpublic( ); sub.mprivate( ); // 오류

18 메소드오버라이딩 (1) 메소드오버라이딩 (2) 부모로부터상속받은메소드의몸체를자식클래스에서재정의하는것 부모와자식에서같은이름의메소드가다른기능을수행하게됨 오버라이딩방법 메소드의이름, 인자의개수와자료형, 반환형이같은메소드를정의 반환형은서브타입 ( 상속관계에서자식클래스 ) 도가능함 접근제어자의가시성 ( 접근범위 ) 은같거나커져야함 public 인경우 public 만가능 class Shape { public double getarea(double h, double w) { return h * w; class Triangle extends Shape { public double getarea(double h, double w) { return h * w * 0.5; public class OverridingTest { public static void main(string args[ ]) { Triangle t = new Triangle( ); System.out.println( t.getarea(3.0, 4.0) ); this 메소드실행시, 현재객체에대한참조값을가지고있음 숨은인자로 this가메소드에전달됨 c1.display( ) 과 c2.display( ) 의결과가다른이유임 인스탄스메소드나생성자에서사용가능 클래스메소드에서사용할수없음 class Circle { public double getarea( ) { return this.radius * this.radius * PI; public void display( ) { System.out.prinln(" 반지름 + this.radius + " 면적 "+ this.getarea( )); super 메소드실행시, 현재객체에대한참조값을가짐 자료형이부모클래스유형임 자식클래스에서인스탄스메소드나생성자에서사용됨 부모클래스에서오버로딩당한메소드를호출하거나상속되었으나감춰진필드에접근할때필요함 super. 메소드 ( 인자 ) super. 필드

19 this( ) 와 super( ) super 와 super( ) 의사용예 생성자몸체의첫번째문장에서만사용 this( ) 같은클래스의다른생성자를호출하는것 super( ) 부모클래스의생성자를호출하는것 상속받은데이터필드를초기화하기위한것 생성자몸체에서부모클래스생성자의명시적호출이없다면, super( ) 가자동호출됨 public class Cylinder extends Circle { private double height; public Cylinder( ) { super( ); height = 1.0; public Cylinder(double radius, double h) { super(radius); this.height = h; public double getheight( ) { return height; public void setheight(double h) { this.height = h; public double getarea( ) { return 2 * PI*getRadius( ) * height + 2 * super.getarea( ); public double getvolume( ) { return super.getarea( ) * height; public String tostring( ) { return "Cylinder of radius = " + getradius( ) + " height = " + height; 추상메소드 5 강. 인터페이스와다형성 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡 몸체의구현이없이형식만존재하는메소드 반환형, 이름, 인자선언만존재함 메소드정의에 abstract 키워드를사용해야함 자식클래스에상속되어몸체의구현이필요함 상반된의미의 final 과함께사용할수없음 abstract public class Shape {... abstract public double getarea( ); // 모양이정해지지않았기때문에면적을계산할수없음

20 추상클래스 추상클래스의사용 추상메소드를포함하는클래스는반드시추상클래스라야함 물론데이터필드나일반메소드를포함할수있음 객체생성을할수없음 구체적이지못한불완전한클래스라는의미 클래스정의에 abstract 사용해야함 abstract public class Shape { abstract public double getarea( ); Shape s = new Shape( red ); // 컴파일오류 의미적으로유사한클래스를묶고자할때사용 공통으로사용할데이터필드와메소드를정의 추상클래스는불완전한클래스 기능적으로구현하기어려운메소드가존재 추상클래스는자식클래스로상속되어사용됨 자식클래스에서추상메소드를구현 그러면자식클래스는객체생성이가능 자식클래스가추상메소드를구현하지않으면계속해서자식클래스도추상클래스로남음 추상클래스는일반클래스와인터페이스의중간적성격을가짐 Java 의인터페이스 인터페이스정의 100% 추상클래스 모든메소드가추상메소드 (public abstract) 데이터는클래스상수만가능 (public static final) default 메소드와 static 메소드는몸체의구현이필요함 객체생성불가 클래스와마찬가지로참조자료형 인터페이스의이름은보통형용사임 Runnable, Serializable, Comparable 문법은클래스정의와유사함 정의할때키워드 class 대신에 interface 를사용 abstract 는생략하는것이보통임 메소드는자동으로 ( 생략가능 ) public abstract 임 수행할수있는기능의형식만나열한것 default 메소드와 static 메소드도가능 이경우몸체를구현해야함 자동으로 public 임 필드는자동으로 public static final 임 클래스상수만가능함

21 인터페이스의사용 추상클래스와마찬가지로자식클래스에상속되어사용됨 인터페이스를상속받는자식클래스는모든추상메소드를구현해주어야함 의미적으로는관련이없으나기능적으로유사한클래스들을묶을때사용할수있음 예 : 대소비교가가능한객체들의자료형을묶을때 인터페이스를상속받아자식인터페이스를정의할수있음 인터페이스의확장 인터페이스의상속과구현 여러인터페이스를상속받는다중상속이가능클래스는단일상속만가능 상속 자식인터페이스가부모인터페이스를상속받는경우 extends 를사용 예 interface A extends OtherInterface1 { 구현 (or 상속 ) 자식클래스가부모인터페이스를상속받는경우 자식은부모가나열한기능을구현해야함 implements 를사용 예 class MovablePoint implements Movable { 인터페이스구현예 디폴트메소드 interface Movable { void moveup( ); void movedown( ); void moveleft( ); void moveright( ); public class MovableTest { public static void main(string[] args) { Movable m1 = new MovablePoint(5, 5); System.out.println(m1); m1.moveup( ); System.out.println(m1); m1.moveright( ); System.out.println(m1); class MovablePoint implements Movable { private int x, y; public MovablePoint(int x, int y) { this.x = x; this.y = y; public String tostring( ) { return "Point at (" + x + "," + y + ")"; public void moveup( ) { y++; public void movedown( ) { y--; public void moveleft( ) { x--; public void moveright( ) { x++; Point at (5,5) Point at (5,6) Point at (6,6) 인터페이스에서선언하는메소드에기본구현을넣을수있음 자식클래스에서그대로사용하거나몸체를다시정의해줄수있음 default 를사용하고몸체를구현해줌 인터페이스에나열된기능을확장할때, 기존코드의수정을피하기위함 추상메소드가추가된다면기존인터페이스를구현한클래스를수정해야함 interface DoIt { void dosomething( ); int dosomethingelse(string s); // 아래를새로추가한다면? default boolean diditwork(int i, String s) {

22 추상클래스 / 인터페이스 / 클래스의형변환 인터페이스와클래스는모두사용자정의형 extends와 implements에따라상위 / 하위자료형관계가설정됨 상위유형의변수는하위객체의참조값을가질수있음 상위유형의변수가가리키는객체의실제유형에따라수행되는메소드가결정됨 ( 동적바인딩 ) 변수의선언유형으로정하지않음 SuperClass super = new SubClass( ); super.method( ); // SubClass에서찾음 다형성과형변환 다형성 하나의객체가다양한형상이나다양한기능을가진다는뜻 하나의클래스에서오버로딩된메소드들은유사하지만조금씩다른기능을수행함 자식클래스에서재정의된메소드는부모유사하지만다른기능을수행함 형변환 상속관계에있는클래스간에는타입변환이가능함 전혀다른두클래스간에는타입변환이금지됨 하위클래스에서상위클래스로의형변환은문제없음 상위유형의변수는하위객체의참조값을가질수있음 다형성과오버라이딩클래스상속과다형성 (1) 클래스의다형성 부모클래스로부터상속받은메소드를자식클래스에서오버라이딩할수있음 부모와자식에서같은이름의메소드가다른기능을수행 같은이름과매개변수및반환형을가지나몸체가다름 인터페이스의다형성 자식클래스들에서상위인터페이스의메소드를다르게구현함 class A { public void func( ) { System.out.println( a ); class B extends A { public void func( ) { System.out.println( b ); class C extends B { public void func( ) { System.out.println( c ); public class PolymorphTest { public static void main(string args[ ]) { A a = new B( ); a.func( ); a = new C( ); a.func( ); b c

23 클래스상속과다형성 (2) 열거형정의 class Employee { int nsalary; String szdept = null; public void dojob( ) { System.out.println("Do something"); class Sales extends Employee { public Sales( ) { szdept = "Sales Dept"; public void dojob( ) { System.out.println("Do sales"); Do sales Do development class Development extends Employee { public Development( ) { szdept = "Sales Dept"; public void dojob( ) { System.out.println("Do development"); public class Company1 { public static void main(string args[ ]) { Employee emp1, emp2; emp1 = new Sales( ); emp2 = new Development( ); emp1.dojob( ); emp2.dojob( ); 열거형은미리정의된상수값을만들기위한자료형 enum을사용하여정의 열거형으로선언된변수에는미리지정된값만대입가능 상수값을배열로리턴하는 static 메소드로 values( ) 를제공 enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY 열거형의생성자와메소드 열거형정의에필드와메소드를포함할수있음 상수선언이필드나메소드보다먼저정의되어야하며세미콜론 (;) 으로끝나야함 생성자는열거형과같은이름을가지며접근제어자는생략또는 private이어야함 열거형의생성자는상수값을설정 ( 객체생성 ) 할때자동호출됨 열거형에서상수는마치하나의객체와같음 열거형사용예 enum BaseballTeam { LG(40, 30), SS(30, 40), KT(20, 50), SK(35, 35), NC(55, 15); private final int win; private final int lose; private BaseballTeam(int win, int lose) { this.win = win; this.lose = lose; public class EnumTest2 { public static void main(string args[ ]) { BaseballTeam bt = BaseballTeam.LG; System.out.println(bt.winsRate( )); public double winsrate( ) { return (win * 100.0) / (win + lose);

24 익명클래스 클래스를상속받는익명클래스 일회성으로 1 개의객체를생성하기위한클래스 클래스정의와동시에객체를생성할수있음 슈퍼클래스를상속받거나인터페이스를구현하도록익명클래스를정의 new 클래스 / 인터페이스 ( ) { 중괄호는익명클래스의몸체 public class AnonymousTest { public static void main(string args[ ]) { CSuper sub = new CSuper( ) { public int b = 20; public void method1( ) { System.out.println( sub1 ); public void method3( ) class CSuper { public int a = 10; public void method1( ) { System.out.println( super1 ); public void method2( ) { System.out.println( super2 ); { System.out.println( sub3 ); ; sub.method1( ); sub.method2( ); System.out.println(sub.a); sub1 super2 10 인터페이스를구현한익명클래스 public class AnonymousTest { public static void main(string args[]) { MyInterface sub = new MyInterface( ) { public void method( ) { System.out.println( sub1 ); ; 6 강. 제네릭과람다식 ( 교재 5 장 ) sub.method( ); interface MyInterface { public void method( ); 컴퓨터과학과김희천교수 2017 년 5 월 24 일 501 호김룡

25 제네릭의의미 (1) 제네릭클래스, 제네릭인터페이스, 제네릭메소드 클래스, 인터페이스, 메소드를정의할때타입매개변수 ( 타입파라미터 ) 를선언하고사용할수있음 제네릭을사용하는이유 자료형을한정함으로써컴파일시점에자료형검사가가능 실행오류를찾아고치는것은어려움 캐스트 ( 형변환 ) 연산자의사용이불필요 여러유형에걸쳐동작하는일반화된클래스 / 메소드를정의할수있음 제네릭의의미 (2) ArrayList 클래스는 List 인터페이스를구현한클래스 class ArrayList<E> implements List<E> { boolean add(e e) { E get(int index) { E remove(int index) { List list1 = new ArrayList( ); list1.add("hello"); String s1 = (String)list1.get(0); // 형변환필요 List<String> list2 = new ArrayList<String>( ); list2.add("hello"); String s2 = list2 get(0); // 형변환이필요없 제네릭클래스 클래스정의에서타입파라미터를선언함 클래스를사용할때는타입을명시해야함 필드의자료형, 메소드반환형, 인자의자료형으로사용할수있음 타입파라미터는참조형만가능함 컴파일할때, 명확한타입검사를수행할수있음 메소드호출시인자의유형이맞는지 메소드호출의결과를사용할때유형이맞는지 자료형을매개변수로가지는클래스와인터페이스를제네릭타입이라고함 제네릭클래스정의 (1) 문법 class 클래스이름 <T1, T2, > { 클래스정의에서클래스이름의오른편, 각괄호 < > 안에타입파라미터를표시함 컴마 (,) 로구분하여여러개의타입파라미터를지정할수있음 타입파라미터는타입을전달받기위한것 타입파라미터의이름은관례적으로 E, K, V, N, T 을사용함

26 제네릭클래스정의 (2) 제네릭클래스의사용 class Data { private Object object; public void set(object object) { this.object = object; public Object get( ) { return object; class Data2<T> { private T t; public void set(t t) { this.t = t; public T get( ) { return t; 제네릭타입과자료형검사 제네릭타입을사용하지않으면컴파일시점에서오류를검출하지못함 의미가명확하면생성자호출시, 괄호만사용할수있음 Data2<String> b3 = new Data2< >( ); public class GenericsTest2 { public static void main(string args[ ]) { Data2<String> data = new Data2<String>( ); Integer i = new Integer(20); data.set(i); // 컴파일오류 String s = (String) data.get( ); 제네릭인터페이스를구현하는제네릭클래스 2 개의타입매개변수 (K 와 V) 를가지는클래스 interface Pair<K, V> { public K getkey(); public V getvalue(); class OrderedPair <K, V> implements Pair <K, V> { private K key; private V value; public OrderedPair(K key, V value) { this.key = key; this.value = value; public K getkey( ) { return key; public V getvalue( ) { return value; public class MultipleType { public static void main(string args[ ]) { Pair <String, Integer> p1; p1 = new OrderedPair <> ("Even", 8); Pair <String, String> p2; p2 = new OrderedPair <> ("hello", "java"); 제네릭타입을상속 / 구현하는일반클래스 제네릭인터페이스를구현하는일반클래스 클래스를정의할때제네릭인터페이스의자료형을지정하면됨 class MyPair implements Pair<String, Integer> { private String key; private Integer value; public MyPair(String key, Integer value) { this.key = key; this.value = value; public String getkey( ) { return key; public Integer getvalue( ) { return value; public class ClassFromGeneric { public static void main(string args[ ]) { MyPair mp = new MyPair("test", 1);

27 Raw 타입 제네릭타입을일반타입처럼사용하는경우의제네릭타입을지칭하는용어 2 예 Data2 data = new Data2( hello ); 제네릭메소드와타입제한 이때 Data2 는제네릭타입 Data2<T> 의 raw 타입 자료형을 Object 로처리함 제네릭메소드 (1) 자료형을매개변수로가지는메소드 하나의메소드정의로여러유형의데이터를처리할때유용함 메소드정의에서반환형왼편, 각괄호 <> 안에타입매개변수를가짐 타입매개변수를메소드의반환형이나메소드인자의타입으로사용할수있음 지역변수의타입으로사용할수도있음 public static <T> T getlast(t[ ] 제네릭메소드 (2) 인스탄스메소드와 static 메소드모두제네릭메소드로정의가능 제네릭메소드를호출할때, 타입을명시하지않아도인자에의해추론이가능함 class Util { public static <K, V> boolean compare(pair<k, V> p1, Pair<K, V> p2) { return p1.getkey().equals(p2.getkey()) && p1.getvalue().equals(p2.getvalue()); a) { return a[a.length-1]; public class GenericsTest5 { public static void main(string args[]) { Pair<Integer, String> p1 = new Pair<>(1, "apple"); Pair<Integer, String> p2 = new Pair<>(2, "pear"); boolean same = Util.<Integer, String>compare(p1, p2); System.out.println(same);

28 제네릭의타입제한 자료형을매개변수화하여클래스 / 인터페이스 / 메소드를정의할때, 자료형에제한을두는것 <T extends Number> 와같이하면 T를상한으로정할수있음 타입매개변수는 Number의서브클래스라야함 class Data<T extends Number> { private T t; public Data(T t) { this.t = t; public void set(t t) { this.t = t; public T get( ) { return t; public class BoundedType { public static void main(string args[ ]) { Data<Integer> data = new Data<Integer>(20); System.out.println(data.get( )); 제네릭타입과형변환 상속관계가있어야상위 / 하위자료형의관계가존재함 Integer나 Double은 Number의자식클래스 Data <Number> 와 Data <Integer> 는상하위관계가없음 class Data<T> { class FormattedData<T> extends Data<T> { public class GenericTypeConversion1 { public static void main(string args[ ]) { Data<Number> data = new Data<Number>( ); data.set(new Integer(10)); data.set(new Double(10.1)); Data <Number> data1 = new Data <Integer>( ); // 컴파일오류 Data<Integer> data = new FormattedData<Integer>( ); 제네릭타입사용시유의사항 기본자료형은타입매개변수로지정할수없음 Data<int> d = new Data<>( ); // 오류 타입매개변수로객체생성을할수없음 class Data <T> { private T t1 = new T( ); // 오류 타입매개변수의타입으로 static 필드를선언할수없음 class Data <T> { private static T t2; // 오류 제네릭타입의배열을선언할수없음 Data <Integer>[ ] arrayofdata; // 오류 3 람다식

29 람다식 인터페이스를구현하는익명클래스의객체생성부분을수식화한것 구현할것이 1개의추상메소드일때간단히표현할수있음 람다식구문 Runnable runnable = new Runnable( ) { public void run( ) {... ; 메소드매개변수의괄호, 화살표, 메소드몸체로표현 인터페이스객체변수 = ( 매개변수목록 ) -> { 실행문목록 Runnable runnable = ( ) -> {... ; 람다식기본문법 (1) 익명구현클래스의객체생성부분만람다식으로표현함 익명서브클래스의객체생성은람다식이될수없음 이때인터페이스에는추상메소드가 1 개만있어야함 2개이상의추상메소드를포함하는인터페이스는사용불가 람다식의결과타입을타깃타입이라고함 1개의추상메소드를포함하는인터페이스를함수적인터페이스라함 메소드가 1개뿐이므로메소드이름을생략할수있음 람다식기본문법 (2) 람다식사용예 (1) 인터페이스객체변수 = ( 매개변수목록 ) -> { 실행문목록 매개변수목록에서자료형은인터페이스정의에서알수있으므로변수이름만사용가능 매개변수가 1개면괄호가생략가능하며변수이름하나만남음 매개변수를가지지않으면괄호만남음 실행문이 1개이면중괄호생략가능 실행문이 return문뿐이라면 retrun과중괄호를동시생략해야함 interface MyInterface1 { public void method(int a, int b); interface MyInterface2 { public void method(int a); public class LambdaTest1 { public static void main(string args[]) { MyInterface1 f1, f2, f3; MyInterface2 f4, f5; b); ; f1 = (int a, int b) -> { System.out.println(a + f1.method(3, 4); f2 = (a, b) -> { System.out.println(a + b); ; f2.method(5, 6); f3 = (a, b) -> System.out.println(a + b); f3.method(7, 8); f4 = (int a) -> { System.out.println(a); ; f4.method(9); f5 = a -> System.out.println(a); f5.method(10);

30 람다식사용예 (2) 람다식사용예 (3) interface MyInterface3 { public int method(int a, int b); public class LambdaTest2 { public static void main(string args[]) { MyInterface3 f1, f2; // f1 = (a, b) -> return a+b; / 컴파일에러 f1 = (a, b) -> { return a + b; ; System.out.println(f1.method(3, 4)); f2 = (a, b) -> a + b; System.out.println(f2.method(5, 6)); public class RunnableTest4 { public static void main(string args[]) { Thread thd = new Thread(( ) -> System.out.println("my thread")); thd.start( ); import java.util.function.*; public class ConsumerTest{ public static void main(string args[]) { Consumer<String>con = t -> System.out.println("Hello " + t); con.accept("java"); 패키지의미 시스템패키지 관련이있는클래스와인터페이스의묶음 클래스와인터페이스는패키지의멤버로존재 전체적으로계층구조의클래스라이브러리 패키지 ( 폴더와유사 ) 단위로계층적으로분류됨 패키지용도 쉽게찾아사용하기위해 이름충돌을피하기위해 접근제어를위해 Java 가제공하는클래스라이브러리 JDK 와함께설치됨 일반적으로 jar 파일로압축되어있음 예 : C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar 예를들어 java\lang\boolean.class 가존재함

31 시스템패키지의사용 사용자정의패키지 (1) 가장기본이되는최상위시스템패키지는 java 임 대부분의시스템패키지는 java. 으로시작됨 Java 프로그램에서상위와하위패키지의구분을위해도트 (.) 를사용 예 : java.lang, java.io, java.awt, java.util 등 Java 언어의기본클래스는 java.lang에존재 프로그램에서클래스를사용할때는 java.io.ioexception 과같이사용함 패키지정의문법 package 패키지이름 ; 1 개이상의클래스나인터페이스정의 package 구문은소스코드맨앞에위치해야함 패키지이름은관례상소문자로작명 하위패키지는. 으로구분하여작성 컴파일하면패키지가만들어지고 ( 또는기존패키지에 ) 클래스파일 (.class) 이패키지에저장됨 사용자정의패키지 (2) 사용자정의패키지 (3) 패키지만들기예 컴파일결과로 Car.class 가만들어짐 Car.class 는 com.vehicle 패키지에저장됨 com.vehicle 은어디에? package com.vehicle; public class Car { String sztype = " 승용차 "; 컴파일할때 d 옵션사용하여지정함 예 - javac Car.java d D:\javaClasses 이경우 D:\javaClasses\com\vehicle\Car.class Eclipse를사용한패키지정의 메뉴 [File/New/Package] 를선택 패키지에해당하는폴더가만들어짐 생성된패키지에서클래스를만들면됨 메뉴 [File/New/Class] 를선택하여클래스이름과함께패키지이름을입력함

32 같은패키지에있거나 public인외부의클래스를사용하려면패키지를포함한완전한클래스이름을사용해야함 예 패키지의사용 (1) graphics.rectangle myrect = new graphics.rectangle( ); java.util.scanner s = new java.util.scanner(system.in); 패키지의사용 (2) import 문 import 패키지이름. 클래스이름 ; import 패키지이름.* ; import 구문은소스코드맨앞에위치함 package 구문이있다면그다음에위치 프로그램에서패키지이름을생략하고클래스나인터페이스를사용할수있게함 Java 프로그램에서 import java.lang.*; 구문은자동포함됨 패키지의사용과접근제어 아래프로그램에서 package 구문이없다면패키지접근수준의 Car 클래스를사용할수없음 // package com.vehicle; import com.vehicle.*; class MyBus extends Bus { public class PackageTest { public static void main(string args[ ]) { Bus bus = new Bus( ); Car car = new Car( ); // 오류 package com.vehicle; class Car { package com.vehicle; public class Bus extends Car { 클래스찾기 (1) 컴파일하거나실행할때, 필요한클래스를찾아야함 컴파일러가 A.class가위치한경로또는 A.class를포함하고있는 jar 파일의존재를알아야함 JVM은다음에서클래스를찾음 Java 기본패키지 [Java설치폴더]\jre\lib\*.jar Java 확장패키지 [Java설치폴더]\jre\lib\ext\*.jar 사용자클래스도찾을수있음 이때방법이필요함

33 사용자클래스는환경변수 CLASSPATH 에지정된경로또는 jar 파일에서찾음 환경변수 CLASSPATH 컴파일러는 CLASSPATH 에지정된경로에서클래스를찾음 CLASSPATH 의경로는 jar 파일을포함할수있음 예 클래스찾기 (2) 프로그램에서 graphics.circle 클래스를사용하고 CLASSPATH=path1;path2;a.jar 라고가정 이때, path1\graphics\circle.class 또는 path2\graphics\circle.class 또는 a.jar 에 \graphics\circle.class 가있어야함 예외와에러 에러 (Error) 는심각한오류로더이상의실행이불가함 예외 (Exception) 는경미한오류로복구가가능함 예외발생 메소드를수행할때예외가발생하면예외객체를만들어던짐 예외처리코드가없으면, 메시지가출력되면서종료됨 예외처리코드가있으면, 계속수행됨 예외객체 Exception 클래스또는하위클래스로표현됨 예외객체는예외발생정보를가지고있음 예외관련클래스의계층구조 예외처리 (Exception handling) Error Object Throwable Exception RuntimeException IOException unchecked Exception checked Exception 예외처리예외가발생했을때이상황을바로잡아계속수행하도록함 예외발생은 Exception 객체를 throw 함 throw new MyException( ); throw 된예외객체를 catch 하여예외를처리함 checkedexception이발생할수있는경우, 반드시명시적인예외처리가필요함 RuntimeException의경우, 예외처리를안해도됨 잘못작성된프로그램때문에발생됨 ArithmeticException, NullpointException, IndexOutOfBoundsException 등

34 예외처리방법 예외의직접처리 (1) 직접처리 던져진예외객체를잡아처리하는것 try-catch 구문또는 try-catch-finally 구문을사용하여예외를처리함 일반코드와예외처리가분리되어가독성이좋아짐 간접처리 예외발생가능성이있는메소드의선언에서인자다음에 throws 예외이름을사용 그메소드를호출하는메소드에게예외처리를전달또는위임하는것 try-catch 구문문법 try { catch(exceptiontype1 ex1) { catch(exceptiontype2 ex2) { finally { 예외객체를 throw 하는문장또는예외발생가능성이있는메소드의호출부분을 try 블록에둠 catch 블록은예외유형의 1 개인자를가지는메소드와유사 처리해야하는예외유형이여럿이면 catch 블록도여럿 finally 블록은생략가능 예외의직접처리 (2) 예외의직접처리 (3) try-catch 구문의실행 예외가발생하면 try 블록은즉시종료됨 catch 블록이여럿이면, 가장적합한 ( 발생된예외자료형또는상위유형 ) 하나만실행됨 예외가발생하지않으면 catch 블록은실행되지않음 finally 블록은예외발생과무관하게 try 블록이종료되면항상실행됨 예외발생여부와무관하게 try 블록이종료된후 할당받아사용했던리소스를원상복구하기위해 finally 블록을주로사용함 public class A { public void problem( ) throws RuntimeException { throw new RuntimeException( ); public void trythis( ) { try { problem( ); System.out.print("1"); catch (RuntimeException x) { System.out.print("2"); catch (Exception x) { System.out.print("3"); finally { System.out.print("4"); System.out.print("5"); public static void main(string[ ] args){ A a=new A( ); a.trythis( );

35 예외의간접처리 (1) 예외를발생시킬수있는메소드를호출하는쪽에예외처리를위임하는것 ( 예외의전파 ) 메소드선언에예외발생가능성을표시 메소드의선언에서괄호다음에 throws 예외유형을사용 public char getinput( ) throws IOException { ninput = System.in.read( ) ; // 예외발생가능 throws 절이있는메소드를호출하는메소드에서예외처리를해야함 try { c = obj.getinput( ); catch(ioexception ex ) { 예외의간접처리 (2) 예외를발생시킬수있는메소드 public FileInputStream(String name) throws FileNotFoundException FileInputStream 클래스의생성자 public int read( ) throws IOException InputStream 클래스 /Reader 클래스의메소드 위와같은메소드를사용할때는반드시예외처리가필요함 예외처리프로그램 (1) import java.io.*; public class ExceptionTest1 { public static void main(string args[ ]) { int b = 0; try { b = System.in.read( ); catch (IOException ex) { System.out.println(ex); System.out.println((char)b); 예외처리프로그램 (2) import java.io.*; class CharInput { int ninput = 0; public char getinput( ) throws IOException { ninput = System.in.read( ); return (char)ninput; public class ExceptionTest4 { public static void main(string args[ ]) { CharInput charinput = new CharInput( ); try { System.out.println(charInput.getInput ( )); catch (IOException ex) { System.out.println(ex);

36 사용자정의예외 사용자가직접예외클래스를작성할수있음 일반적으로 Exception 클래스를상속받음 필요할때예외객체를 throw 함 class MyException extends Exception{ public MyException( ) { super( ); public String tostring( ) { return "MyException"; class MyExceptionTest { public void testfunc(int x) throws MyException { if (x > 10) throw new MyException( );

슬라이드 1

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

More information

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

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

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

쉽게 풀어쓴 C 프로그래밍

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

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

쉽게 풀어쓴 C 프로그래밍

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

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

오버라이딩 (Overriding)

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

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++, Level 1은객관식사지선다형으로출제예정 1. 다음은 POST(Post of Sales Terminal) 시스템의한콜레보레이션다이어그램이다. POST 객체의 enteritem(upc, qty) 와 Sale 객체의 makellineitem(spec,qty) 를 Java 또는 C ++, C # 언어로구현하시오. 각메소드구현과관련하여각객체내에필요한선언이있으면선언하시오.

More information

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금, 8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문

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

Microsoft PowerPoint - CSharp-2-기초문법

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

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

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

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

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 Word - EEL2 Lab4.docx

Microsoft Word - EEL2 Lab4.docx EEL2 LAB Week 4: Inheritance 1. 다음을만족하는클래스 Employee를작성하시오.(1에서 4번까지관련된문제입니다.) 클래스 Employee 직원는클래스 Regular 정규직와 Temporary 비정규직의상위클래스 필드 : 이름, 나이, 주소, 부서, 월급정보를필드로선언 생성자 : 이름, 나이, 주소, 부서를지정하는생성자정의 메소드 printinfo():

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

슬라이드 1

슬라이드 1 9 장. 생성자와가비지컬렉션 학습목표 스택과힙지역변수와인스턴스변수객체생성과생성자객체제거 ( 가비지컬렉션 ) 객체의삶과죽음 그리고그가말했어. 다리에감각이없어! 그리고내가말했지. 조! 정신차려조! 하지만이미너무늦었어. 가비지컬렉터가나타났고그는죽고말았지. 내가만나본가장좋은객체였는데말야 스택과힙 스택 (stack) 메소드호출과지역변수가사는곳 지역변수는스택변수라고도부릅니다.

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

Microsoft PowerPoint - 13_UMLCoding(2010).pptx LECTURE 13 설계와코딩 최은만, CSE 4039 소프트웨어공학 설계구현매핑 UML 설계도로부터 Java 프로그래밍언어로의매핑과정설명 정적다이어그램의구현 동적다이어그램의구현 최은만, CSE 4039 소프트웨어공학 2 속성과오퍼레이션의구현 Student - name : String #d department t: String Sti packageattribute

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

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

PowerPoint Template

PowerPoint Template 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3

More information

Chapter 6 Objects and Classes

Chapter 6 Objects and Classes 11 장상속과다형성 1 강의목표 상속 (inheritance) 을이용하여기본클래스 (base class) 로부터파생클래스 (derived class) 생성 (11.2) 파생클래스유형의객체를기본클래스유형의매개변수 (parameter) 로전달함으로써일반화프로그래밍 (generic programming) 작업 (11.3) 생성자와소멸자의연쇄적처리 (chaining)

More information

클래스와객체 필드 메소드 중첩클래스 자료추상화 [2/35]

클래스와객체 필드 메소드 중첩클래스 자료추상화 [2/35] 상지대학교컴퓨터정보공학부 고광만 1 클래스와객체 필드 메소드 중첩클래스 자료추상화 [2/35] 클래스 (Class) 자바프로그램의기본단위 재사용성 (reusability), 이식성, 유연성증가 객체를정의하는템플릿 객체자료형 (object type) 하나의사용자정의자료형 (User-defined data type) 자료추상화 (data abstraction)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - 14주차 강의자료 Java 로만드는 Monster 잡기게임예제이해 2014. 12. 2 게임화면및게임방법 기사초기위치 : (0,0) 아이템 10 개랜덤생성 몬스터 10 놈랜덤생성 Frame 하단에기사위치와기사파워출력방향키로기사이동아이템과몬스터는고정종료버튼클릭하면종료 Project 구성 GameMain.java GUI 환경설정, Main Method 게임객체램덤위치에생성 Event

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

Microsoft PowerPoint - 2-Objective-C 기초

Microsoft PowerPoint - 2-Objective-C 기초 클래스와오브젝트 메모리관리 순천향대학교컴퓨터공학과이상정 1 Objective-C 소개 C 언어에 Smalltalk 스타일의메시지전달을결합한객체지향프로그래밍언어 Objective-C 와코코아는 Mac OS X 운영체제의핵심 개발역사 1980 년대초에 Stepstone 사의 Brad Cox 와 Tom Love 가개발 1985년에 Steve Jobs가저렴한워크스테이션개발을위해

More information

소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) 난이도 : 하 [Q2] 다음반복테스트 (loop test) 클래스의실행결과를적으시오. public class ForLoop { int total = 0; for( int i=1; i<=5; i++ ) { for( i

소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) 난이도 : 하 [Q2] 다음반복테스트 (loop test) 클래스의실행결과를적으시오. public class ForLoop { int total = 0; for( int i=1; i<=5; i++ ) { for( i 과목명총문항수 O/X 문제형 4 지선다형 5 지선다형단답형서술형 JAVA( 필기테스트 ) 20 문항 0 문항 10 문항 0 문항 10 문항 0 문항 대구분 : Java API 소구분 : Object class/string class/stringbuffer/wrapper ( 단답형 ) [Q1] 다음프로그램은간단한회원정보를포함하고있는클래스를작성한것이다. 실행결과를적으시오.

More information

Java Programing Environment

Java Programing Environment Lab Exercise #7 Swing Component 프로그래밍 2007 봄학기 고급프로그래밍 김영국충남대전기정보통신공학부 실습내용 실습과제 7-1 : 정규표현식을이용한사용자정보의유효성검사 (ATM 에서사용자등록용도로사용가능 ) 실습과제 7-2 : 숫자맞추기게임 실습과제 7-3 : 은행관리프로그램 고급프로그래밍 Swing Component 프로그래밍 2

More information

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

윤성우의 열혈 TCP/IP 소켓 프로그래밍 Chapter 08. 상속과다형성 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2013-2 nd 프로그래밍입문 (2) Chapter 08-1. 객체포인터의참조관계 3 상속된객체와포인터관계 객체포인터 객체의주소값을저장할수있는포인터 AAA 클래스의포인터는 AAA 객체의주소뿐만아니라 AAA

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Microsoft PowerPoint - 07-C#-2-기초문법.ppt [호환 모드]

Microsoft PowerPoint - 07-C#-2-기초문법.ppt [호환 모드] 기본자료형 연산자와제어문 배열 컬렉션과반복자 순천향대학교컴퓨터학부이상정 1 기본자료형 순천향대학교컴퓨터학부이상정 2 C# 자료형 C# 은.NET 프레임워크가제공하는 CTS(Common Type System) 자료형을사용 CTS는닷넷기반의여러언어에서공통으로사용되는자료형 CTS 는값 (value) 형과참조형 (reference) 형지원 CTS가제공하는모든데이터형은

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 11 곡선과곡면 01 Spline 곡선 02 Spline 곡면 03 Subdivision 곡면 C n 연속성 C 0 연속성 C 1 연속성 2 C 2 연속성 01 Spline 곡선 1. Cardinal Spline Curve 2. Hermite Spline Curve 3. Bezier Spline Curve 4. Catmull-Rom Spline Curve 5.

More information

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

Microsoft PowerPoint - JavaPrimer.ppt [호환 모드] Linux 용 JAVA 설치 1. http://java.sun.com/javase/downloads/index.jsp 에서 JDK 6u1 의 Download 를 선택하여해당플랫폼의 JDK 6u1 를다운받는다 2. Linux용 RPM버전 1) sh jdk-6u1-linux-i586-rpm.bin 2) rpm Uvh jdk-6u1-linux-i586-rpm 3)

More information

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 OCJP 자격증소개 자바기술을직접개발한선마이크로시스템즈에서자바프로그래밍언어에관련된지식을표준화된방식으로검증해주는시험 2010 년이전까지는선마이크로시스템즈에서주관 선마이크로시스템즈 (Sun Microsystems) 사가오라클 (Oracle) 로인수가되면서자격증명칭도 SCJP 에서 OCJP 로변경되었음.

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

<4D F736F F F696E74202D2038C0E55FB0ADC0C7B3EBC6AE28B0A1BBF3C7D4BCF6BFCD20B4D9C7FCBCBA29>

<4D F736F F F696E74202D2038C0E55FB0ADC0C7B3EBC6AE28B0A1BBF3C7D4BCF6BFCD20B4D9C7FCBCBA29> C++ 프로그래밍 강의노트 #8: 8.1 상속의관계 8.2 상속에의한포인터와레퍼런스관계 8.3 가상함수와동적결합 8.4 순수가상함수와추상클래스 8.5 가상소멸자 8.6 다중상속 8.7 실습문제 2007. 5. 2 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 학습내용 8.1 상속의관계 8.2 파생된객체포인터와파생된객체레퍼런스 객체포인터

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

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

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

(Microsoft PowerPoint - LZVNQBAJWGTC.ppt [\310\243\310\257 \270\360\265\345]) GUI 인터페이스의이벤트 학습목표 윈도우환경에서작성된 GUI 인터페이스의이벤트개념을이해한다. 다양한컴포넌트에대한이벤트를처리한다 이벤트란? 자바이벤트란 사용자가키보드, 마우스등의장치로부터 AWT 컴포넌트에발생시키는모든사건을의미 이벤트주도형프로그램은사용자로부터발생된이벤트를처리하여사용자와상호작용을가능하게함 자바이벤트모델 컴퓨터 키보드 운영체제 마우스 이벤트객체자바가상머신이벤트소스객체이벤트리스너객체애플리케이션

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 14 5 5 5 5 6 6 6 7 7 7 8 8 8 9 9 10 10 11 11 12 12 12 12 12 13 13 14 15 16 17 18 18 19 19 20 20 20 21 21 21 22 22 22 22 23 24 24 24 24 25 27 27 28 29 29 29 29 30 30 31 31 31 32 1 1 1 1 1 1 1

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 1

More information

Hanyang Volunteer Corps volunteer image

Hanyang Volunteer Corps volunteer image Volunteer Hanyang Volunteer Corps volunteer image Volunteer Interview 1 4 5 6 7 Volunteer Interview 1 Volunteer Interview 2 8 9 11 10 Volunteer Interview 2 12 13 Sunday Monday Tuesday Wednesday Thursday

More information

슬라이드 1

슬라이드 1 NetBeans 1. 도구 개요 2. 설치 및 실행 3. 주요 기능 4. 활용 예제 1. 도구 개요 1.1 도구 정보 요약 도구명 소개 특징 주요기능 NetBeans 라이선스 CDDL, GPLv2 (http://trac.edgewall.org/) 통합 개발 환경(IDE : integrated development environment)으로써, 프로그래머가 프로그램을

More information

Microsoft PowerPoint - C_9장 포인터 pptx

Microsoft PowerPoint - C_9장 포인터 pptx C 프로그래밍및실습 9. 포인터 세종대학교 목차 1) 포인터란? 2) 배열과포인터 3) 포인터연산 4) 함수와포인터 5) * void 포인터 6) * 함수포인터 2 1) 포인터란? 메모리 프로그램이실행되기위해필요한정보 ( 값 ) 을저장하는공간 1 byte (8 bits) 단위로물리주소가부여되어있음 개념적으로, 메모리는일렬로연속되어있는크기가 1byte 인방들의모음이라고볼수있음

More information

Microsoft PowerPoint - ch02-1.ppt

Microsoft PowerPoint - ch02-1.ppt 2. Coodinte Sstems nd Tnsfomtion 20 20 2.2 Ctesin Coodintes (,, ) () (b) Figue 1.1 () Unit vectos,, nd, (b) components of long,, nd. 직각좌표계에서각변수 (,, ) 들의범위 < < < < < < (2.1) 직각좌표계에서임의의벡터 는,, 가그림 1.1 에서와같이,,

More information

Microsoft PowerPoint - 3장

Microsoft PowerPoint - 3장 1 반복문의 특징 2 자바 반복문의 종류 for 문 while 문 do while 문 제 3 장 반복문, 배열, 예외처리 3 for 문의 구성 초기문 4 for문의 실행 과정을 나타내는 순서도 for 키워드 for(초기문; 조건식; 반복후작업) {..작업문.. for 문이 실행한 후 오직 한번만 실행되는 초기화 작업 콤마(, )로 구분하여여러문장나열가능 초기할

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

C# 입문 : 이론과 실습

C# 입문 : 이론과 실습 식 (expression) 문장에서값을계산하는데사용식은연산자 (operator) 와피연자 (operand) 로구성식의값에따라 산술식, 관계식, 논리식으로구분 연산자 (operator) 식의의미를결정피연산자가어떻게계산될지를나타내는기호 C# 언어스펙 48개의연산자정의 연산자종류 산술연산자 : + - * / % 단항 + 단항 - 관계연산자 : > >= <

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

06.._........_12...._....

06.._........_12...._.... 2006 December12 66 32 CONTENTS 04 Spirit 06 10 14 18 Special 20 Mission 28 32 35 Culture 38 40 42 46 47 People 48 50 69 48 28 People 52 Education 53 54 News 56 57 58 63 65 66 68 69 Heart 70 74 www.juan.or.kr/joy

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

06³â_±â»ÝÀÇ»ù_10¿ùÈ£_À¥Áø

06³â_±â»ÝÀÇ»ù_10¿ùÈ£_À¥Áø 2006 October10 66 62 CONTENTS 04 Spirit 06 10 14 18 Special 20 Mission 26 30 32 Culture 34 36 38 42 43 People 44 46 65 44 26 People 48 50 Education 51 52 News 54 55 56 60 62 64 65 66 Heart 68 71 72 www.juan.or.kr/joy

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = insert into member(code, name, id, pwd, age) values (; int id = 10; sql = sql + id +, ;// 항목사이에 Statement 객체와 PreparedStatement 객체 Connection 객체 - Connection 객체가생성되면데이터베이스에접근이가능해진다. - Connection 객체는자바와데이터베이스의접속된상태의객체를말한다. 데이터베이스에 DML작업을위해서는반드시접속을먼저해야한다. 그리고, 작업후에는반드시접속을해제한다. - Connection 객체를생성할때두개의문자열이필요하다.

More information

Microsoft PowerPoint - 18-DataSource.ppt

Microsoft PowerPoint - 18-DataSource.ppt 18 장 : JDBC DataSource DataSource JDBC 2.0의 javax.sql 패키지에포함되어도입됨 DataSource 인터페이스는데이터베이스커넥션을만들거나사용하는데좀더유연한아키텍처를제공하기위해도입됨 DataSource를이용할경우, 클라이언트코드는한줄도바꾸지않고서도다른데이터베이스에접속할수있도록해줌 즉 DataSource 는커넥션상세사항들을캡슐화

More information

Week5

Week5 Week 05 Iterators, More Methods and Classes Hash, Regex, File I/O Joonhwan Lee human-computer interaction + design lab. Iterators Writing Methods Classes & Objects Hash File I/O Quiz 4 1. Iterators Array

More information

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

More information

F.

F. www.i815.or.kr 2004 12 04 08 10 12 14 16 18 20 23 25 28 31 33 34 35 37 38 41 50 200412 vol. 202 (kye@i815.or.kr 041-560-0244) 4 www.i815.or.kr 2004 December 5 6 www.i815.or.kr 2004 December 7 8 www.i815.or.kr

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

....2....

....2.... 11-B370008-000001-06 www.i815.or.kr 02 2005 04 06 08 10 12 14 16 18 20 22 24 26 28 30 33 34 36 38 40 44 45 46 50 200502 vol. 204 (hjlim@i815.or.kr 041-560-0244) 4 www.i815.or.kr 2005 February 5 6 www.i815.or.kr

More information

YRRZBRRLMCEQ.hwp

YRRZBRRLMCEQ.hwp C언어2 4차시강의자료 이대종( 한경대학교) 1 차시. 자료형( 데이터유형) 1.1 문자형데이터형식 ( char 형 ) 1.2 소수점이없는정수형 ( int 형 ) 1.3 소수점이있는실수형 (float 형, double 형 ) 2 차시. 연산자 2.1 2.2 2.3 2.4 산술연산자 증감연산자 관계연산자 논리연산자 3 차시. 제어문 ( 조건문, 반복문) 3.1

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

제 1 장 기본 개념

제 1 장 기본 개념 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)

More information

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2 5 장 SQL 응용 데이터베이스실험실 1 [ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL 5.2.1 T-SQL 문법 5.3 JAVA 프로그래밍 2 5.1 데이터베이스프로그래밍개념 프로그래밍 이라고하면프로그램소스를설계하고, 작성하고, 디버깅하는과정을말한다. 프로그램 혹은소프트웨어는컴퓨터에서주어진작업을하는명령어나열을말한다. 데이터베이스프로그래밍은명확한정의는없지만데이터베이스에데이터를정의하고,

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

2힉년미술

2힉년미술 제 회 Final Test 문항 수 배점 시간 개 00 점 분 다음 밑줄 친 부분의 금속 공예 가공 기법이 바르게 연결된 것은? 금, 은, 동, 알루미늄 등의 금속을 ᄀ불에 녹여 틀에 붓거나 금속판을 ᄂ구부리거나 망치로 ᄃ두들겨서 여러 가지 형태의 쓸모 있는 물건을 만들 수 있다. ᄀ ᄂ ᄃ ᄀ ᄂ ᄃ 조금 단금 주금 주금 판금 단금 단금 판금 주금 판금 단금

More information

Microsoft Word - 문필주.doc

Microsoft Word - 문필주.doc 포커스 포커스 모바일 광고기능을 갖는 아이폰 애플리케이션 문필주* 이요섭** 최근의 모바일 광고 시장은 이동통신사 중심의 SMS 발송 형태에서 아이폰의 등장과 앱 스토어(App Store)의 성공에 의한 콘텐츠 내의 플랫폼(App-vertising) 형태로 변해 가고 있다. 본 고에서는 모바일 광 고 아이폰 애플리케이션을 활용할 수 있는 방법에 대해 논의하고자

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

Microsoft PowerPoint - Strategy Pattern

Microsoft PowerPoint - Strategy Pattern Strategy Pattern 동일목적알고리즘의선택적용문제 Service Innovation Key Features of Patterns Item Name Intent Problem Solution Participants and collaborators Consequences implementation Generic structure Description All

More information

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

More information

1

1 2/33 3/33 4/33 5/33 6/33 7/33 8/33 9/33 10/33 11/33 12/33 13/33 14/33 15/33 16/33 17/33 5) 입력을 다 했으면 확인 버튼을 클릭합니다. 6) 시작 페이지가 제대로 설정이 되었는지 살펴볼까요. 익스플로러를 종료하고 다시 실행시켜 보세요. 시작화면에 야후! 코리아 화면이 뜬다면 설정 완료..^^

More information

강의자료

강의자료 Copyright, 2014 MMLab, Dept. of ECE, UOS Java Swing 2014 년 3 월 최성종서울시립대학교전자전기컴퓨터공학부 chois@uos.ac.kr http://www.mmlab.net 차례 2014년 3월 Java Swing 2 2017-06-02 Seong Jong Choi Java Basic Concepts-3 Graphical

More information

Microsoft PowerPoint - PL_03-04.pptx

Microsoft PowerPoint - PL_03-04.pptx Copyright, 2011 H. Y. Kwak, Jeju National University. Kwak, Ho-Young http://cybertec.cheju.ac.kr Contents 1 프로그래밍 언어 소개 2 언어의 변천 3 프로그래밍 언어 설계 4 프로그래밍 언어의 구문과 구현 기법 5 6 7 컴파일러 개요 변수, 바인딩, 식 및 제어문 자료형 8

More information

<4D F736F F F696E74202D2037C1D65FB0ADC0C7B3EBC6AE2837C0E55FBBF3BCD329>

<4D F736F F F696E74202D2037C1D65FB0ADC0C7B3EBC6AE2837C0E55FBBF3BCD329> C++ 프로그래밍 강의노트 #7: 7.1 상속의필요성및장점 7.2 기반클래스 (Base class) 와파생클래스 (Derived class) 7.3 파생클래스의특징 7.4 기반클래스와파생클래스사이의변환 7.5 실습문제 2007. 4. 18 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 학습내용 상속의필요성및장점 기반클래스 (Base

More information

EBS직탐컴퓨터일반-06-OK

EBS직탐컴퓨터일반-06-OK ES 컴퓨터 일반 6회 시간 분 배점 점 문항에 따라 배점이 다르니, 각 물음의 끝에 표시된 배점을 참고하시오. 점 문항에만 점수가 표시되어 있습니다. 점수 표시가 없는 문항은 모두 점씩입니다. 은,, 에서 입력받아 를 출력하는 스위치 회로이다. 스위치 회로를 논리 기호로 표시한 것으로 옳은 것은? 다음은 정보 통신망을 사용한 사례이다. 법적으로 처벌받을

More information

슬라이드 1

슬라이드 1 12 장. GUI 학습목표 GUI 이벤트, 이벤트리스너와이벤트소스그림그리기내부클래스 창 Jframe 의모양 (Metal L&F) Jframe 의모양 (Aqua L&F) 창을만드는방법 1. 프레임 (JFrame) 만들기 JFrame frame = new JFrame(); 2. 위젯만들기 JButton button = new JButton( click me );

More information

3 Contents 8p 10p 14p 20p 34p 36p 40p 46P 48p 50p 54p 58p 생명다양성재단 영물이라는 타이틀에 정 없어 보이는 고양이, 날카롭게 느껴지시나요? 얼음이 따뜻함에 녹듯이, 사람에게 경계심 많은 길고양이도 곁을 내어주면 얼음 녹듯이 당신을 바라봅니다. 길 위에 사는 생명체라 하여 함부로 대하지 말아주세요. 싫으면 외면해주세요.

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

<335FC0DAB9D92E687770>

<335FC0DAB9D92E687770> 5.1.20 추상 메소드와 추상 클래스 -추상 메소드(abstract method) 선언되어 있으나 구현되어 있지 않은 메소드 추상 메소드 정의 접근 지정자 abstract 반환형 메소드이름(); -ex) public abstract int getvalue(); -추상 메소드는 서브 클래스에서 오버라이딩하여 구현 -추상 클래스(abstract class) 추상

More information

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관 Hanbit ebook Realtime 30 C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 Safe C++ 블라디미르 쿠스퀴니르 지음 / 정원천 옮김 이 도서는 O REILLY의 Safe C++의 번역서입니다. BACK TO THE BASIC C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 BACK TO THE BASIC C++ 버그 헌팅 버그를

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

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

Microsoft PowerPoint - VHDL02_full.ppt [호환 모드] VHDL 프로그래밍 2. VHDL 언어사용해보기 한동일 학습목표 기존프로그래밍언어의간단한예를다룬다. VHDL 언어의간단한예를다룬다. 각언어의실제적인사용예를파악한다. 기존프로그래밍언어와비교되는 VHDL언어의차이점을이해한다. 엔티티선언의의미를파악한다. 아키텍처선언의의미를파악한다. VHDL 언어의문장구조를눈에익힌다. 디지털로직과이의 VHDL 표현과정을이해한다. 2/23

More information