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

Similar documents
PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

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

Microsoft PowerPoint - 2강

No Slide Title

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

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint 프레젠테이션

PowerPoint Presentation

C++ Programming

Design Issues

JAVA PROGRAMMING 실습 07. 상속

쉽게 풀어쓴 C 프로그래밍

비긴쿡-자바 00앞부속

PowerPoint Presentation

C++ Programming

PowerPoint Presentation

Microsoft PowerPoint - chap11

PowerPoint Presentation

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

슬라이드 1

Microsoft PowerPoint - java2 [호환 모드]

PowerPoint Presentation

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 장강의노트.ppt

Slide 1

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

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

제11장 프로세스와 쓰레드

슬라이드 1

PowerPoint Template

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

Cluster management software

Microsoft Word - EEL2 Lab4.docx

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint 프레젠테이션

PowerPoint Presentation

Network Programming

PowerPoint Presentation

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

5장.key

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

C++ 기본문법 정리

자바 프로그래밍

Blog

Microsoft PowerPoint - java1 [호환 모드]

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

PowerPoint Presentation

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

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

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - Chapter 6.ppt

설계란 무엇인가?

프입2-강의노트-C++배경

PowerPoint Presentation

17장 클래스와 메소드

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint 프레젠테이션

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

No Slide Title

자료형 크기 값의범위 접미문자 Byte형 1바이트 0~255까지 없음 Boolean형 2바이트 True, False 없음 Integer형 2바이트 ~ 32767까지 % Long형 4바이트 -2,147,483,648 ~ 2,147,483,648까지 & Sin

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

Slide 1

PowerPoint Presentation

PowerPoint 프레젠테이션

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

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

Semantic Consistency in Information Exchange

PowerPoint Presentation

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

JAVA PROGRAMMING 실습 05. 객체의 활용

05-class.key

Microsoft PowerPoint - 6주차.pptx

ThisJava ..

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

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

슬라이드 1

JUNIT 실습및발표

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

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

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

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Spring Boot/JDBC JdbcTemplate/CRUD 예제

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

ch09

Transcription:

객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조

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

q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3

q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4

q 객체지향프로그래밍의이해 v 객체란무엇인가 객체 (Object) 객체지향프로그래밍을구성하는단위 확장과재사용이가능한독립적인프로그램부품 정해진인터페이스를통해서만외부와연결 5

q 객체지향프로그래밍의이해 v 객체의특징 캡슐화 (encapsulation) 객체내부의메소드와데이터를외부에서사용할수없도록감싸서객체를독립적인프로그램부품으로만드는것 지정한인터페이스를통해서만외부와연결 정보공개 데이터은닉 (data hiding) 캡슐화 6

q 객체지향프로그래밍의이해 코드의재사용 개발비용을줄이고신뢰성과생산성을높이는특징 객체재사용 Ø 기존객체의인터페이스를맞추어새로운프로그램에서재사용 상속 (inheritance) Ø 새로필요한객체가기존객체와유사한경우, 기존객체의코드를상속받고추가되는부분만작성하여객체를생성하는방법» 기존객체 : 부모객체 (parent object), 상위객체 (super object)» 상속받는새로운객체 : 자식객체 (child object), 하위객체 (sub object) 7

q 객체지향프로그래밍의이해 다형성 (polymorphism) 같은이름의여러메소드가필요할때선택적으로수행되는특징 사람언어에서의다형성예 1) 배가아프다. 2) 가을에는배가맛있다. 3) 배를타고제주도에갔다. 8

v 자바의캡슐화구현 캡슐화된클래스를조합하여프로그램구성 class 키워드를사용하여클래스생성 Ø 클래스는객체를생성하는틀 클래스내부의멤버들을캡슐화하기위해접근제어자사용 Ø Ø Ø Ø public 모든클래스에서접근가능 protected 같은패키지의클래스와자식클래스에서접근가능 default 같은패키지의클래스에서만접근가능 private 외부클래스에서의접근불가 9

접근제어자에따른접근허용범위 10

접근제어자에따른접근허용범위 11

접근제어자를사용하지않는클래스 01 class AccessControl_1{ 02 int num1, num2, sum; 03 double ave; 04 AccessControl_1(int a, int b){ 05 this.num1 = a; 06 this.num2 = b; 07 } 08 int getsum(){ 09 sum = num1 + num2; 10 return sum; 11 } 12 double getave(){ 13 ave = sum/2.0; 14 return ave; 15 } 16 } 17 [ 예제 4-1] 12

18 class Ex_AccessControl_1{ 19 public static void main(string args[]){ 20 AccessControl_1 test1 = new AccessControl_1(10, 20); 21 System.out.println("sum = " + test1.getsum()); 22 System.out.println("average = " + test1.getave()); 23 } 24 } [ 예제 4-1] 실행결과 13

AccessControl_1 클래스의멤버에대한데이터은닉표현 14

private 과 public 접근제어자를사용하여캡슐화한클래스 01 class AccessControl_2{ 02 private int num1, num2, sum; 03 private double ave; 04 AccessControl_2(int a, int b){ 05 this.num1 = a; 06 this.num2 = b; 07 } 08 public int getsum(){ 09 sum = num1 + num2; 10 return sum; 11 } 12 public double getave(){ 13 ave = sum/2.0; 14 return ave; 15 } 16 } 17 [ 예제 4-2] 15

18 class Ex_AccessControl_2{ 19 public static void main(string args[]){ 20 AccessControl_2 test2 = new AccessControl_2(10, 20); 21 System.out.println("sum = " + test2.getsum()); 22 System.out.println("average = " + test2.getave()); 23 } 24 } [ 예제 4-2] 실행결과 16

AccessControl_3 클래스의멤버에대한데이터은닉표현 17

private 접근제어자를사용하여캡슐화한클래스 01 class AccessControl_3{ 02 private int num1, num2, sum; 03 private double ave; 04 AccessControl_3(int a, int b){ 05 this.num1 = a; 06 this.num2 = b; 07 } 08 private int getsum(){ 09 sum = num1 + num2; 10 return sum; 11 } 12 private double getave(){ 13 ave = sum/2; 14 return ave; 15 } 16 } 17 [ 예제 4-3] 18

18 class Ex_AccessControl_3{ 19 public static void main(string args[]){ 20 AccessControl_3 test3 = new AccessControl_3(10, 20); 21 System.out.println("sum = " + test3.getsum()); 22 System.out.println("average = " + test3.getave()); 23 } 24 } [ 예제 4-3] 실행결과 19

AccessControl_3 클래스의멤버에대한데이터은닉표현 20

v 자바의상속구현 부모클래스의중복된멤버를상속받아자식클래스생성 Ø 중복된멤버를가지고있는두클래스예 Ø 상속관계로재구성 21

StudentInfo 클래스 : 부모클래스 Ø 자식클래스에서의접근을허용하기위해서 protected 접근제어자사용 01 class StudentInfo{ 02 protected String dept, stdno, name; // ❶ 03 StudentInfo(String dept, String stdno, String name){ 04 this.dept = dept; 05 this.stdno = stdno; 06 this.name = name; 07 } 08 public void getstdinfo(){ 09 System.out.println("** 학생정보출력 **"); 10 System.out.println(" 학과 : " + dept); 11 System.out.println(" 학번 : " + stdno); 12 System.out.println(" 이름 : " + name); 13 } 14 } [ 예제 4-4] 22

StudentScore 클래스 : 자식클래스 Ø 상속받을부모클래스가무엇인지명시 class 자식클래스이름 extends 부모클래스이름 01 class StudentScore extends StudentInfo{ // ❶ 02 private int kor, eng, math, sum; 03 private double ave; 04 StudentScore(String dept, String stdno, String name, 05 int kor, int eng, int math){ 06 super(dept, stdno, name); // ❷ 07 this.kor = kor; 08 this.eng = eng; 09 this.math = math; 10 this.sum = 0; 11 this.ave = 0.0; 12 } 13 public int getsum(){ 14 sum = kor + eng + math; 15 return sum; 16 } [ 예제 4-5] 23

17 public double getave(){ 18 ave = sum/3.0; 19 return ave; 20 } 21 public void getstdinfo(){ 22 super.getstdinfo(); // ❸ 23 } 24 public void getstdscore(){ 25 System.out.println("** 학생점수출력 **"); 26 System.out.println(" 국어 : " + kor); 27 System.out.println(" 영어 : " + eng); 28 System.out.println(" 수학 : " + math); 29 System.out.println(" 총점 : " + getsum()); 30 System.out.println(" 평균 : " + getave()); 31 } 32 } [ 예제 4-5] 24

StudentInfo 클래스와 StudentScore 클래스를호출하여사용하는클래스 01 class Ex_Student{ 02 public static void main(string args[]){ 03 StudentInfo s_i = new StudentInfo(" 컴퓨터과학 ","20072135", " 홍길동 "); 04 StudentScore s_s = new StudentScore(" 컴퓨터과학과 ", "20072140", " 홍길순 ", 91, 80, 95); 05 06 07 s_i.getstdinfo(); System.out.println(); 08 s_s.getstdinfo(); 09 s_s.getstdscore(); 10 } 11 } [ 예제 4-6] 25

결과화면 : [ 예제 4-4]~[ 예제 4-6] 의컴파일및실행화면 26

IT CookBook 자바로배우는쉬운자료구조 4 장끝