추상 데이타 타입과 객체 지향 방법
본 자료는 6페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

추상 데이타 타입과 객체 지향 방법에 대한 보고서 자료입니다.

목차

1.1 Java 입문

1.2 소프트웨어 생명 주기

1.3 추상 데이타 타입

1.4 객체지향 개념과 설계

1.5 Java 객체지향 프로그래밍

본문내용

들을 이용하여 표현하는 것이 보통
데이타 vs 데이타 타입
u 데이타
l 프로그램의 처리 대상이 되는 모든 것
l 특별히 값 (value) 자체를 의미하기도 함
u 데이타 타입
l 데이타 의 집합과 이 데이타에 적용할 수 있는 연산 의 집합
l 종류
w 시스템 정의 (system-defined) 데이타 타입
원시(primitive) 데이타 타입 또는 단순(simple) 데이타 타입
복합(composite) 데이타 타입 또는 구조화(structured) 데이타 타입
w 사용자 정의 (user-defined) 데이타 타입
기존의 데이타 타입을 이용해 정의
일단 정의만 되면 시스템 정의 데이타 타입과 똑같이 사용할 수 있음
l 예) integer 데이타 타입
w 데이타 : 정수 (... -2, -1, 0, 1, 2 ...)
w 연산자 : +, -, *, /
추상 데이타 타입
u 추상 데이타 타입 (abstract data type: ADT)
l 데이타 타입의 논리적 정의
l 데이타 와 연산 의 본질에 대한 명세만 정의한 데이타 타입
w 데이타가 무엇이고, 각 연산은 무슨 기능을 수행하는가(명세. Specification) 만을 정의
w 데이타의 구조, 연산의 구현 방법(implementation)은 포함시키지 않음
w 기존의 데이타 타입을 이용하여 정의
u 추상화와 구체화와의 관계
자연수(Natno) 추상 데이타 타입
참고 : Bag 추상 데이타 타입
객체지향 개념과 설계
u 객체지향 설계(object-oriented design) 방법
l 의미
w 잘 정의된 객체들을 먼저 식별한 후 이들이 상호 작용하게 구성함으로써 원하는 결과를 생성하게 하는 것
l 방법
w 기초적이고 핵심적인 객체의 설계 후 시스템의 기능적 분해를 고려
c.f) 전통적인 설계 방법
소프트웨어를 기능적 모듈로 분해한 뒤에 각 모듈을 구현
u 객체지향 개념의 본질
l 캡슐화 (encapsulation)
l 상속 (inheritance)
l 다형성 (polymorphism)
캡슐화 (encapsulation)
u 객체
l 객체지향 세계의 처리 대상
l 객체의 필드들은 그 클래스의 메소드들을 통해서만 접근되고 조작될 수 있음
l 다른 클래스의 객체들은 이 객체의 필드들을 직접 접근할 수 없음
u 정보 은닉 (information hiding)
l 클래스 내부의 필드의 존재나 메소드의 구현에 대해서는 필요없이 외부에 노출시키지 않음
l 외부와의 인터페이스를 위한 부분만 공개하고 나머지 부분은 은닉
상속 (inheritance)
u 코드의 재사용 (reuse)
l 프로그래밍 시간 절약
l 시스템 오류 감소로 신뢰성 높은 소프트웨어 생산
u 상속
l 기존의 클래스에 필드와 메소드를 첨가하여 새로운 클래스로 확장
l 새로 확장된 클래스는 원래의 필드와 메소드들을 모두 그대로 상속받아 사용할 수 있음
u IS-A 관계
l 슈퍼 클래스 : 재사용된 원 클래스 ( 기본 클래스)
l 서브 클래스 : 새로 확장된 클래스 ( 파생 클래스)
u 메소드 오버라이딩
l 상속받은 특정 메소드의 구현을 무시하고 재정의하여 사용
w 메소드 이름과 시그니쳐가 같은 메소드를 서브 클래스에서 다시 구현
클래스 계층
u 클래스 계층 (class hierarchy)
l 클래스들 간의 상속 관계를 나타냄 (class inheritance diagram)
다형성 (1)
u 다형성 (polymorphism)
l 하나의 메소드 이름이 상이한 클래스에 여러 메소드로 중복되어 나타나 있음
l 실행시켜야 할 메소드는 실행시간에 가서야 정확히 결정할 수 있음 - 동적 바인딩 (dynamic binding)
u 메소드 오버라이딩 (method overriding)
l 상속받은 메소드에 대해 서브 클래스가 이를 무시하고 재정의 가능
메소드 이름과 매개 변수가 같으면서 구현이 다른 메소드가 여러 개 존재
l 따라서 한 클래스의 참조 변수가 계층상의 여러 클래스를 참조할 수 있음
시스템이 실행 시간에 객체의 클래스를 판단해서 그 클래스에서 구현된 메소드 실행
다형성 (2)
u 동적 바인딩의 예
l Person 과 Student 클래스 정의
l 실행 코드
u 메소드 오버로딩 (method overloading)
l 한 클래스 내에서 이름이 같고 매개 변수의 수나 타입만 다른 메소드들이 여러 개 구현되어 있을 수 있음
l 메소드를 호출하면 시스템은 인자의 수와 타입에 일치하는 메소드 구현을 선정하여 실행
Rectangle 클래스의 예 (1)
Rectangle 클래스의 예 (2)
u 컴파일
l Javac Rectangle.java Rectangle.class
( 소스 코드) ( 바이트 코드)
u 바이트 코드 번역기 실행
l java Rectangle : Rectangle.main() 메소드 구동
u 실행 결과
Rectangle: 0, 0, 0, 0
Rectangle: 0, 8, 100, 150
Rectangle 클래스의 예 (3)
u 생성자 (constructor)
l 클래스 이름과 같은 특별한 메소드로서 객체를 초기화
l 한 클래스에 여러 개 존재 가능
l 종류
w 명시적 생성자
w 묵시적 생성자 : 무인자 생성자
u this 키워드
l 모든 객체의 메소드 내에서 객체 자신을 가리키기 위해 묵시적으로 정의되어 있는 참조 변수
u 메소드 기동
l 메소드 기동 구문
w < 객체>.< 메소드( 인자)>;
l static 메소드
w < 클래스 이름>.< 메소드( 인자)>;
그래픽스 프로그램의 예
u Shape 클래스
l draw() 메소드 : 각 도형에 따라 상이하게 구현되어야 하기 때문에 abstract 메소드로 선언
l Shape 클래스도 abstract 클래스가 됨 (구체적인 도형을 표현하는 것이 아니므로 객체로 생성할 수 없음)
u Rectangle 과 Circle 클래스
l Shape 클래스의 서브 클래스로 선언
l 도형의 내부적 표현, 그리는 방법은 객체가 처리할 문제
u super 키워드
l 서브 클래스에서 슈퍼 클래스의 메소드 호출하거나 데이타 필드 접근할 때 사용

키워드

  • 가격2,000
  • 페이지수18페이지
  • 등록일2003.10.24
  • 저작시기2003.10
  • 파일형식한글(hwp)
  • 자료번호#228240
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니