Microsoft PowerPoint - Lect04.pptx

Similar documents
<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - 2강

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 05. 객체의 활용

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

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

No Slide Title

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

Design Issues

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

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

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

쉽게

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint 프레젠테이션

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

Blog

PowerPoint Presentation

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

슬라이드 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µå

No Slide Title

PowerPoint 프레젠테이션

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

Microsoft PowerPoint 장강의노트.ppt

JAVA PROGRAMMING 실습 09. 예외처리

4장.문장

제11장 프로세스와 쓰레드

Microsoft Word - EEL2 Lab4.docx

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과

PowerPoint 프레젠테이션

비긴쿡-자바 00앞부속

Microsoft PowerPoint - Chap12-OOP.ppt

JAVA PROGRAMMING 실습 05. 객체의 활용

슬라이드 1

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

PowerPoint Presentation

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - Java7.pptx

JVM 메모리구조

Microsoft PowerPoint - java1 [호환 모드]

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

설계란 무엇인가?

PowerPoint Presentation

슬라이드 1

슬라이드 1

Cluster management software

교육자료

Cluster management software

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

TEST BANK & SOLUTION

Spring Boot/JDBC JdbcTemplate/CRUD 예제

쉽게 풀어쓴 C 프로그래밍

C++ Programming

PowerPoint 프레젠테이션

5장.key

Microsoft PowerPoint - lec12 [호환 모드]

17장 클래스와 메소드

PowerPoint Presentation

슬라이드 1

No Slide Title

Network Programming

Microsoft PowerPoint - RMI.ppt

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

Cluster management software

PowerPoint Presentation

유니티 변수-함수.key

슬라이드 1

쉽게 풀어쓴 C 프로그래밊

Transcription:

OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Class 와 object Class 와객체 클래스의일생 메소드 필드 String Object Class 와객체 3

클래스 클래스의구성 클래스 (l (class): 객체를만드는설계도 클래스로부터만들어지는각각의객체를특별히그클래스의인스턴스 (instance) 라고도한다. 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다. 필드 (field) 는객체의속성을나타낸다. 메소드 (method) 는객체의동작을나타낸다. 5 6 자동차클래스 클래스정의의예 class Car { 9800km // 필드정의 public int speed; // 속도 public int mileage; // 주행거리 public String color; // 색상 // 메소드정의 public void speedup() { // 속도증가메소드 speed += 10; public void speeddown() { // 속도감소메소드 speed -= 10; 필드정의! 메소드정의! public String tostring() { // 객체의상태를문자열로반환하는메소드 return " 속도 : " + speed + " 주행거리 : " + mileage + " 색상 : " + color; 7 8

테스트클래스 File 의구성 public class CarTest { public static void main(string[] args) { Car mycar = new Car(); // 첫번째객체생성 Car yourcar = new Car(); // 두번째객체생성 mycar.speed = 60; // 객체의필드변경 mycar.mileage = 0; // 객체의필드변경 mycar.color = "blue"; // 객체의필드변경 Class Car File : CarTest.java mycar.speedup(); System.out.println(myCar); // 객체의메소드호출 yourcar.mileage = 10; // 객체의필드변경 yourcar.speed = 120; // 객체의필드변경 yourcar.color = "white"; // 객체의필드변경 Class CarTest yourcar.speeddown(); // 객체의메소드호출 System.out.println(yourCar); 9 10 기초변수와참조변수 기초변수와참조변수의비교 11 12

객체 (object) 는? 객체 속성 ( 상태 ) 과동작을가지고있다. 자동차가객체라면클래스는설계도 속도 :70 주행거리 :0 색상 :blue 속도 : 110 주행거리 : 10 색상 : white 13 14 객체의일생 객체의생성 Car c = new Car(); c.speedup(); c = null; 15 16

주의 참조변수와대입연산 Car mycar; Car 1 car1 = new Car(); 위의문장으로객체가생성되는것은아님!!! 객체를가리키는참조값을담을수있는변수만생성됨. Car car2 = car1; // 대입연산의의미 17 18 객체의사용 객체의소멸 객체를이용하여필드와메소드에접근할수있다. 객체는참조가없어지면소멸!! 19 20

객체의소멸 메소드 객체는메시지 (message) 를통해다른객체와통신하고서로상호작용한다. 21 22 메소드 매개변수 객체는메시지 (message) 를통해다른객체와통신하고서로상호작용한다. 23 24

값에의한전달 매개변수가객체인경우 아주중요!! 25 26 메소드호출 메소드호출의예제 import java.util. *; classdicegame { int diceface; int userguess; private void RollDice() { diceface = (int)(math.random() * 6) + 1; private int getuserinput(string prompt) { System.out.println(prompt); Scanner s = new Scanner(System.in); return s.nextint(); 27 28

메소드호출의예제 결과화면 private void checkuserguess() { if( diceface == userguess ) System.out.println(" 맞았습니다 "); else System.out.println(" 틀렸습니다 "); public void startplaying() { int userguess = getuserinput(" 예상값을입력하시오 : "); RollDice(); checkuserguess(); 예상값을입력하시오 : 3 틀렸습니다 public class DiceGameTest { public static void main(string[] args) { DiceGame game = new DiceGame(); game.startplaying(); 29 30 중복메소드-overloading 중복메소드예제 같은이름의메소드가여러개존재할수있다. 메소드오버라이딩 (method overriding) class Car { // 필드선언 private int speed; // 속도 시그너처 (signature) 메소드호출시매개변수를보고일치하는메소드가호출된다. 만약 square(3.14) 와같이호출되면컴파일러는매개변수의개수, 타입, 순서등을봐서두번째메소드를호출한다. // 중복메소드 : 정수버전 public void setspeed(int s) { speed = s; System.out.println(" 정수버전호출 "); // 중복메소드 : 실수버전 public void setspeed(double s) { speed = (int)s; System.out.println(" 실수버전호출 "); 31 32

중복메소드예제 자바에서의변수의종류 public class CarTest1 { public static void main(string[] args) { Car mycar = new Car(); // 첫번째객체생성 mycar.setspeed(100); // 정수버전메소드호출 mycar.setspeed(79.2); // 실수버전메소드호출 정수버전호출실수버전호출 필드 (field) 또는인스턴스변수 : 클래스안에서선언되는멤버변수 지역변수 (local variable): 메소드나블록안에서선언되는변수 필드 Class Car { int speed; d 지역변수 void speedup(int s){ int limit=100; 지역변수 : 선언된블록안에서만사용가능. 매개변수 : 선언된메소드안에서만사용가능. 필드 : 정의된위치와상관없이클래스안에서는어느곳에서도사용가능. 33 34 필드의선언 필드의사용범위 지역변수 : 선언된블록안에서만사용가능. 매개변수 : 선언된메소드안에서만사용가능. 필드 : 정의된위치와상관없이클래스안에서는어느곳에서도사용가능. 35 36

설정자 (mutator) 와접근자 (accessor) 설정자와접근자의예 설정자 (mutator) t : setter 필드의값을설정하는메소드 setxxx() 형식 접근자 (accessor) : getter 필드의값을반환하는메소드 getxxx() 형식 37 38 설정자와접근자의사용 설정자와접근자는왜사용하는가? 설정자에서매개변수를통하여잘못된값이넘어오는경우, 이를사전에차단할수있다. 필요할때마다필드값을계산하여반환할수있다. 접근자만을제공하면자동적으로읽기만가능한필드를만들수있다. 39 40

필드의초기화 주의 생성자를사용하는방법 -> 다음장에서학습 41 42 변수와변수의비교 UML(Unified Modeling Language) g 변수 1 == 변수 2 의의미 클래스들간의관계를그리기위한클래스다이어그램 ( class l diagram) g 가장대표적인클래스다이어그램표기법 : UML(Unified Modeling Language) Class name 변수들 메소드 참조형변수의경우, 객체의내용이같다는의미가아니다. == : not work equals() method 사용 가시성표시자 (visibility indicator) + : 공용 -: 전용 43 44

클래스와클래스의관계 TV class 정의와 UML 의 class diagram 의존 : CarTest 클래스가 Car 클래스를사용하는것과같이하나의클래스가다른클래스를ㅅ용하는관계 45 46 예제 예제 class DeskLamp { // 인스턴스변수정의 private boolean ison; // 켜짐이나꺼짐과같은램프의상태 // 메소드정의 public void turnon() // 램프를켠다. { ison = true; DeskLamp -ison : boolean +turnon() +turnoff() public void turnoff() // 램프를끈다. { ison = false; public String tostring() { return " 현재상태는 " + (ison == true? " 켜짐 " : " 꺼짐 "); 47 48

예제 public class DeskLampTest { public static void main(string[] args) { // 역시객체를생성하려면 new 예약어를사용한다. DeskLamp mylamp = new DeskLamp(); BankAccount 예제 2 -owner : string -accountnumber:int 은행계좌의구현 -balance : int +deposit() +withdraw() class BankAccount{ // 은행계좌 int accountnumber; // String owner; // 예금주 int balance; // 잔액 // 객체의메소드를호출하려면도트연산자인. 을사용한다. mylamp.turnon(); System.out.println(myLamp); mylamp.turnoff(); System.out.println(myLamp); y p); void deposit(int amount) { // 저금 balance += amount; void withdraw(int amount) { // 인출 balance -= amount; public String tostring() { return 현재잔액은 + balance + 입니다. ; // end of class BankAccount public class BankAccountTest{ public static void main(string[] args){ BankAccount myaccount = new BankAccount(); 현재상태는켜짐현재상태는꺼짐 49 myaccount.deposit(10000); System.out.println(myAccount); myaccount.withraw(8000); System.out.println(myAccount); // end of class BankAccountTest 50 문자열객체 문자열 (String) String 객체 52

클래스에서객체를생성하는방법 String 클래스의메소드 단하나의방법만이존재한다. new 연산자만 이객체를생 String s = new String("Hello World"); 성합니다. 53 54 메소드사용의예 랩퍼클래스 기초자료형을객체로포장하여주는클래스 55 56

Q & A 57