Power Java 제7장 클래스와 객체.

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

아름다운 이들의 행복한 길음안나의 집.
고전에서 미래를 읽다(5) 영양괘각(羚羊掛角) 영양이 훌쩍 뛰어 나뭇가지에 뿔을 걸다
어서와 Java는 처음이지! 제5장 클래스, 객체, 메소드.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
객체지향 프로그래밍.
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
Internet Computing KUT Youn-Hee Han
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
8. 객체와 클래스 (기본).
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
Java RMI (Remote Method Invocation)
Power Java 제4장 자바 프로그래밍 기초.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
[INA470] Java Programming Youn-Hee Han
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Power Java 제10장 배열.
C++ Component System KASA 김성헌.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
프로그램 개발과 언어 Chapter 05 컴퓨터의 이해
Java Programming Language (4)
Java로 배우는 디자인패턴 입문 Chapter 20. Flyweight 동일한 것을 공유해서 낭비를 없앤다
소프트웨어설계 UML 학기.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
2010학년도 2학기 객체지향의 이해.
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
제2장 데이터 및 수식.
제7장 클래스와 객체.
김 정 석 Web Programming 김 정 석
Power Java 제20장 패키지.
제 4주 – 클래스 설계 제 4주 목표 클래스를 구현하는 법을 배운다. 변수 선언 메소드 구현 구성자 객체지향프로그래밍
명품 C++ 프로그래밍 1장. C++ 시작.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
제2장 데이터 및 수식.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
인터렉티브(interactive) 주문창
소프트웨어 공학 (Software Engineering)
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
컴퓨터공학실습(I) 3주 인공지능연구실.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
JA A V W. 04.
자바 5.0 프로그래밍.
[ 강남구 청담동 “이동수에프엔지” ].
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
Chapter 02. 소프트웨어와 자료구조.
Part 3 객체지향 Chapter 5 : 객체지향 개념 Chapter 6 : 클래스 : 속성
Java RMI (Remote Method Invocation)
6장 클래스(상속).
2015년 2학년 1반.
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
믿음의 예배 본문 창세기 4장 1절 ~ 5절 요절 로마서 12장 1절.
C언어 개요 프로그래밍이란 프로그래밍 언어란 컴퓨터와의 의사소통을 위한 표현 방법 세대별 언어의 발전을 거듭함
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Java 5장. 객체지향 개념 public class SumTest {
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
C++ 언어의 특징
Choi Younghwan CSE HUFS
Presentation transcript:

Power Java 제7장 클래스와 객체

객체 지향 개념을 완벽하게 이해해야만 객체 지향 설계의 이점을 활용할 수 있다. 이번 장에서 학습할 내용 객체 지향 개념을 완벽하게 이해해야만 객체 지향 설계의 이점을 활용할 수 있다. 객체지향이란? 객체 메시지 클래스 객체 지향의 장점 String 클래스

실제 세계는 객체로 이루어진다.

객체 지향이란? 실제 세계를 모델링하여 소프트웨어를 개발하는 방법

절차 지향과 객체 지향 절차 지향 프로그래밍(procedural programming): 문제를 해결하는 절차를 중요하게 생각하는 방법 객체 지향 프로그래밍(Object-Oriented Programming): 데이터와절차를 하나의 덩어리(객체)로 묶어서 생각하는 방법

객체 지향 방법 객체 지향으로 소프트웨어를 작성하는 것은 컴퓨터 하드웨어 부품을 구입하여서 컴퓨터를 조립하는 것과 비슷하다. 그림 7-3 . 객체 지향 방법

절차 지향과 객체 지향

중간 점검 문제 객체 지향 프로그래밍은 ________들을 조합하여서 프로그램을 작성하는 기법이다. 2. 객체 지향 프로그래밍의 시작은 __________년대에 개발된 ________언어이다.

객체 지향의 3대 특징 캡슐화 상속 다형성

캡슐화 캡슐화(encapsulation): 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리되어 있는 것 그림 7-4 . 객체 지향을 사용하면 코드를 재사용할 수 있다.

캡슐화와 정보 은닉

업그레이드가 쉽다. 라이브러리가 업그레이드되면 쉽게 바꿀 수 있다. 정보 은닉이 가능하기 때문에 업그레이드 가능 그림 7-5 . 정보 은닉의 장점

상속 상속(inheritance): 이미 작성된 클래스(부모 클래스)를 이어받아서 새로운 클래스(자식 클래스)를 생성하는 기법 기존의 코드를 재활용하기 위한 기법 그림 7-6 . 상속의 개념

다형성 하나의 이름(방법)으로 많은 상황에 대처하는 기법 개념적으로 동일한 작업을 하는 멤버 함수들에 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해진다

객체 지향의 장점 신뢰성있는 소프트웨어를 쉽게 작성할 수 있다. 코드를 재사용하기 쉽다. 업그레이드가 쉽다. 디버깅이 쉽다.

쉬운 디버깅 예를 들어서 절차 지향 프로그램에서 하나의 변수를 1000개의 함수가 사용하고 있다고 가정해보자. -> 하나의 변수를 1000개의 함수에서 변경할 수 있다. 객체 지향 프로그램에서 100개의 클래스가 있고 클래스당 10개의 메소드를 가정해보자. -> 하나의 변수를 10개의 메소드에서 변경할 수 있다. 어떤 방법이 디버깅이 쉬울까?

중간 점검 문제 1. 자바에서 코드 재사용이 쉬운 이유는 관련된 ________와 ___________이 하나의 덩어리로 묶여 있기 때문이다. 2. 정보 은닉이란 ________을 외부로부터 보호하는 것이다. 3. 정보를 은닉하면 발생하는 장점은 무엇인가?

객체란? 객체(Object)는 상태와 동작을 가지고 있다. 객체의 상태(state)는 객체의 특징값(속성)이다. 객체의 동작(behavior) 또는 행동은 객체가 취할 수 있는 동작 그림 7-7 . 자동차 객체의 예

중간 점검 문제

메시지 소프트웨어 객체는 메시지(message)를 통해 다른 소프트웨어 객체와 통신하고 서로 상호 작용한다. 그림 7-8 . 메시지 전달

중간 점검 문제 객체들은 ________전달을 통해서 서로 간에 상호 작용을 한다. 자동차 객체에서 생각할 수 있는 메시지와 매개 변수에 대하여 나열하여 보라.

클래스 클래스(class): 객체를 만드는 설계도 클래스로부터 만들어지는 각각의 객체를 특별히 그 클래스의 인스턴스(instance)라고도 한다. 그림 7-9 . 객체를 클래스라는 설계도로 생성된다.

클래스와 객체

클래스의 구조

클래스의 예: 박스

클래스의 예: 자동차

객체를 생성하려면 Car myCar = new Car( ); 자바에서 객체를 생성하는 방법은 new 한가지뿐입니다.

기초 변수와 참조 변수 그림 7-10 . 변수의 종류

객체의 생성 ① 참조 변수 선언 - Car타입의 객체를 참조할 수 있는 변수 myCar를 선언한다. ② 객체 생성 – new 연산자를 이용하여 객체를 생성하고 객체 참조값을 반환한다. ③ 참조 변수와 객체의 연결 – 생성된 새로운 객체의 참조값을 myCar 라는 참조 변수에 대입한다.

객체를 가리키는 참조값을 담을 수 있는 변수만 생성됨. 주의 위의 문장으로 객체가 생성되는 것은 아님!!! 객체를 가리키는 참조값을 담을 수 있는 변수만 생성됨.

객체의 필드와 메소드 접근 도트(.) 연산자 사용! 객체의 멤버를 사용하려면 연산자 사용

필드와 메소드 접근

객체 생성 코드

실행 결과

객체를 하나 더 생성하는 코드

객체를 하나 더 생성하는 코드

중간 점검 문제 객체들을 만드는 설계도에 해당되는 것이 _____________이다. 같은 종류의 객체가 여러 개 생성될 때 각 객체의 변수와 메소드는 공유되는가? 아니면 각 객체마다 별도로 만들어지는가? 클래스 선언 시에 클래스 안에 포함되는 것은 _____과 ______이다. 객체의 멤버에 접근하는데 사용되는 연산자는 ________이다. 각 객체마다 별도로 가지고 있는 것은 클래스의 _________이다. 상품의 재고를 나타내는 클래스를 작성하여 보자. 클래스 안에 상품 번호, 재고 수량이 필드로 저장되고 재고를 증가, 감소하는 메소드를 작성하여 보라.

메소드 메소드는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같다.

메소드의 구조

인수와 매개 변수 메소드 호출시 전달하는 값을 인수(argument) 메소드에서 값을 받을 때 사용하는 변수를 매개 변수(parameter)

객체의 일생

객체의 생성

참조값을 복사한다면 두 개의 참조 변수가 하나의 객체를 가리킬 수 있다.

객체의 소멸

객체의 소멸

중간 점검 문제 기초 변수와 참조 변수의 차이점은 무엇인가? 하나의 참조 변수가 다른 참조 변수로 대입되면 어떤 일이 발생하는가? 객체를 소멸시키려면 어떻게 하면 되는가?

문자열 객체 그림 7-16 . 문자열은 객체이다.

클래스에서 객체를 생성하는 방법 단 하나의 방법만이 존재한다. new 연산자만이 객체를 생성합니다.

.(도트) 연산자를 사용하여서 메소드를 호출합니다. 객체의 메소드의 호출 .(도트) 연산자를 사용하여서 메소드를 호출합니다.

String 클래스의 메소드

문자열의 결합 두 개의 문자열은 + 연산자를 이용하여 결합될 수 있다. String subject = "Money"; String other = " has no value if it is not used"; String sentence = subject + other;  "Money has no value if it is not used"

숫자를 문자열로 변환 int x = 20; System.out.println("결과값은 “ + x); // ”결과값은 20” 이 출력된다. String answer = "The answer is " + 100; // “The answer is 100" 결과값은 20 The answer is 100

예제 문자열의 이 =13 A barking dog never Bites! A barking dog bar

중간 점검 문제 1. 변수를 크게 두 가지로 나누면 __________변수와 ___________변수로 분류할 수 있다. 2. 객체를 생성하는 키워드는 ___________이다. 3. 문자열은 클래스 ___________의 객체이다. 4. 문자열의 길이를 반환하는 메소드는 _____________이다. 5. 변수 i의 값을 문자열로 변환하는 가장 간단한 방법은 ___ 연산자를 사용하는 것이다.

문자열을 숫자로 변환 문자열 “123”을 숫자 123으로 변환 랩퍼 클래스(wrapper class)를 사용한다. (예) Integer obj = new Integer(10);

랩퍼 클래스의 유용한 메소드

int i = Integer.parseInt("123"); // 변수 i에 정수 123이 저장된다. double d = Double.parseDouble("3.141592"); // 변수 d에 실수 3.141592가 저장된다.

중간 점검 문제 변수를 크게 두 가지로 나누면 __________변수와 ___________변수로 분류할 수 있다. 객체를 생성하는 키워드는 ___________이다. 문자열은 클래스 ___________의 객체이다. 문자열의 길이를 반환하는 메소드는 _____________이다. 변수 i의 값을 문자열로 변환하는 가장 간단한 방법은 ___ 연산자를 사용하는 것이다.