Microsoft PowerPoint - 2강

Similar documents
JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

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

PowerPoint Presentation

PowerPoint Presentation

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

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

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 02. 표준 입출력

제11장 프로세스와 쓰레드

JAVA PROGRAMMING 실습 07. 상속

No Slide Title

슬라이드 1

PowerPoint Presentation

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

PowerPoint 프레젠테이션

PowerPoint Presentation

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

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Presentation

Design Issues

PowerPoint Presentation

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - 04-UDP Programming.ppt

5장.key

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - java2 [호환 모드]

Microsoft PowerPoint - chap11

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 05. 객체의 활용

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint 장강의노트.ppt

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

자바 프로그래밍

PowerPoint 프레젠테이션

TEST BANK & SOLUTION

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

슬라이드 1

Microsoft PowerPoint - Java7.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

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

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 09. 예외처리

Spring Boot/JDBC JdbcTemplate/CRUD 예제

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

Microsoft Word - EEL2 Lab4.docx

쉽게

PowerPoint Template

PowerPoint Presentation

JVM 메모리구조

Microsoft PowerPoint - lec2.ppt

비긴쿡-자바 00앞부속

02 C h a p t e r Java

PowerPoint Presentation

C++ Programming

PowerPoint Presentation

Microsoft PowerPoint - chap06-2pointer.ppt

Network Programming

슬라이드 1

ThisJava ..

PowerPoint 프레젠테이션

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

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

05-class.key

03-JAVA Syntax(2).PDF

Microsoft PowerPoint - lec12 [호환 모드]

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

설계란 무엇인가?

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

4장.문장

PowerPoint 프레젠테이션

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

오버라이딩 (Overriding)

PowerPoint Presentation

PowerPoint Presentation

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

No Slide Title

슬라이드 1

09-interface.key

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - java1 [호환 모드]

PowerPoint Template

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

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

Transcription:

컴퓨터과학과 김희천교수

학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다. Java의객체지향적특징은 Java 프로그램을작성하고이해하는데필수적인요소이기때문에확실한이해가필요하다.

학습목표 Java 자료형, 변수및상수의선언및사용법을이해 배열의사용법을이해 Java 클래스의선언및사용법을이해 Java 인터페이스의선언및사용법을이해 다형성, 오버로딩, 오버라이딩을응용한프로그래밍기법을이해

자료형 기본형 기본형의변수는값을저장 byte, short, int, long float, double char, boolean int i; i = 3;

자료형 참조형 참조형의변수는기억공간의주소를저장 먼저값을저장할기억공간을생성해야함 int anarray[ ]; anarray = new int[10]; anarray[0] = 3; Car mycar; mycar = new Car( ); mycar.year = 2010; mycar 객체

변수 변수의종류 데이터필드, 지역변수, 메소드의매개변수 class Grade { int math, eng; void setmath( int m) { math = m; int gettotal( ) { int total; total = math + eng; return total;

변수 상수 final 키워드를사용하여선언된변수 final String FILE_PATH = c:\ ;

배열 Java 의배열 같은자료형의데이터를연속적으로모아놓은것 선언할때크기를지정할수없음 선언과동시에초기화가능 배열의크기는배열이름.length int a[ ]; a = new int[3]; int[ ] b = {1, 2, 3;

문자열 String 클래스이나기본형처럼다룰수있음 문자열끼리 + 연산은문자열을연결하는것 System.out.print( ) 는인자를문자열로변환하여출력 String s = Java ; System.out.print(s + 2); System.out.print( $ + 1000); System.out.print( $ + 1000);

클래스 Java 의클래스선언 공통적특징을갖는객체들을추상화한개념 객체가가지는데이터와메소드를정의 < 접근제어자 > class < 클래스이름 > { < 필드선언 > < 메소드선언 >

클래스 클래스접근제어자의의미 생략 같은패키지에서사용가능 public 어디서나사용가능 final 자식클래스를위해상속될수없음 abstract 객체를생성할수없음 private, protected

생성자 생성자의의미 객체가생성될때실행되는메소드 데이터필드를초기화하거나객체의사용을위해필요한초기화작업을수행 생성자의선언방법 생성자의이름은클래스와같은이름으로함 반환형이없음

생성자 class Circle { int r; public Circle( ) { r = 0 ; public Circle(int a) { r = a; public double getarea( ) { return r * r * 3.14; // 기본생성자 public class CircleArea2 { public static void main(string args[ ]) { Circle c = new Circle(5); System.out.println(c.getArea( ));

필드와메소드의접근제어자 접근제어자의종류 private 소속된클래스에서만사용가능 생략 같은패키지에서사용가능 protected 같은패키지와서브클래스에서사용가능 public 어디서나사용가능

필드와메소드의접근제어자 기타 static 객체생성없이클래스이름으로접근가능 static 필드는객체들이공유하는변수 static 메소드는 static 필드와 static 메소드만을사용함 final final 필드는상수 final 메소드는서브클래스에서오버라이딩불가 abstract abstract 메소드는몸체가없는메소드로서브클래스에서구현됨

클래스의상속 상속 부모클래스와자식클래스간의관계 부모클래스의일반적특성을물려받고고유의특성을추가하여자식클래스를정의함 기존자료형 ( 부모클래스 ) 을이용하여새로운자료형 ( 자식클래스 ) 을정의

클래스의상속 class Employee{ int nsalary; String szdept = null; public void dojob( ) { class Saleman extends Employee{ public Salesman( ) {szdept = "Sales Dept"; public void dojob( ) { class Developer extends Employee{ public Developer( ) {szdept = "Dev. Dept"; public void dojob( ) {

클래스의상속 class CSuper { static int nstatic; public int nnormalsuper; class CSub extends CSuper{ public int nnormalsub; public class StaticTest{ public static void main(string args[ ]) { CSuper sup = new CSuper( ); CSub sub1 = new CSub( ); CSub sub2 = new CSub( ); sub1.nstatic = 10; System.out.println("sup 의 nstatic: " + sup.nstatic); System.out.println("sub1 의 nstatic: " + sub1.nstatic); System.out.println("sub2 의 nstatic: " + sub2.nstatic);

인터페이스 인터페이스의의미 감춰진객체내부의데이터를외부에서사용할수있도록인터페이스를제공함 Java 의인터페이스 외부와의소통수단으로제공되는메소드들로구성 유사한클래스들의공통행위양식 abstract 메소드와상수로구성되는추상클래스와유사

인터페이스 Java 의인터페이스 인터페이스를정의할때 interface 키워드를사용 인터페이스를다중상속받는것이가능함 인터페이스의접근제어자는묵시적으로 public 메소드는자동으로 public abstract 필드는자동으로 public static final 인터페이스를상속받는클래스를정의할때 implements 키워드를사용

인터페이스 interface Movable { void add(double dx, double dy); void sub(double dx, double dy); interface Scalable { void mul(double s); void div(double s); class MovablePoint implements Movable, Scalable { double x, y; public void add(double dx, double dy) {x += dx; y += dy; public void sub(double dx, double dy) {x -= dx; y -= dy; public void mul(double s) {x *= s; y *= s; public void div(double s) {x /= s; y /= s;

다형성 다형성의의미 같지만다른것, 다르지만같은것 예 같은부모클래스를상속하는서로다른클래스들의개별기능은거시적으로는같지만미시적으로는서로다름 이질적객체리스트 메소드오버라이딩, 메소드오버로딩

다형성 다형성의활용 소스코드의재사용과확장성 상위클래스의메소드중필요한것만재정의하고나머지는재사용 기존코드의수정불필요 코드가독성 부모클래스관점에서이해가능

다형성 도형 draw 도형 p; p = new 사각형 ( ); p.draw( ); 타원 사각형 삼각형 draw draw draw

메소드오버라이딩 메소드재정의 자식클래스가부모클래스로부터상속받은메소드를다시구현하는것 접근제어자, 반환형, 인자를일치시켜야함 접근제어자의가시성이넓어져도됨 인터페이스를구현하는클래스들은메소드를다르게구현함 예 Object 클래스의 tostring( ) 과 equals( ) String 클래스의 tostring( ) 과 equals( )

다형성과오버라이딩 class Computer { int nmemorycapacity; int nhddcapacity; boolean qpowered = false; int poweron( ) {qpowered = true; int poweroff( ) {qpowered = false; interface Calculator { public void calculate(string order); class PersonalComputer extends Computer implements Calculator{ public void calculate(string order) { System.out.println("PersonalComputer: " + order); class Workstation implements Calculator{ public void calculate(string order) { System.out.println("Workstation: " + order);

메소드오버로딩 메소드중복정의 한클래스에서같은이름의메소드를여럿정의하는것 시그너처로메소드를구분할수있음 예 시그너처란메소드의이름과인자목록 한클래스에서정의되어있는여러생성자들

메소드오버로딩 System.out.println( ); System.out.println("Test string"); System.out.println(241); System.out.println(34.5); // 줄바꾸기출력

메소드오버로딩