제3장 클래스와 객체의 사용.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제3장 클래스와 객체의 사용.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Power Java 제3장 이클립스 사용하기.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
최윤정 Java 프로그래밍 클래스 상속 최윤정
4장 자바 기본 구조 4.1 자바 응용 프로그램 분석 4.2 자바 애플릿 프로그램 분석
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제 9 장 구조체와 공용체.
윤 홍 란 제3장 클래스와 객체의 사용-2 윤 홍 란
컴퓨터 프로그래밍 기초 [Final] 기말고사
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
자료 구조: Chapter 3 (2)구조체, 포인터
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
제 8 장 상속.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 6. 형변환.
5장. 참조 타입.
제 3장. C보다 나은 C++ II.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Power Java 제14장 배치 관리자.
2주차: 변수, 수식, Control Flow.
공학컴퓨터프로그래밍 Python 염익준 교수.
자바 5.0 프로그래밍.
11장. 1차원 배열.
CHAP 12. 리소스와 보안.
C#.
[INA470] Java Programming Youn-Hee Han
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
제2장 데이터 및 수식.
인터넷응용프로그래밍 JavaScript(Intro).
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
10장 tkinter로 GUI 만들기.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
2장. 변수와 타입.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Power Java 제11장 상속.
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
데이터 동적 할당 Collection class.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
발표자 : 이지연 Programming Systems Lab.
Summary of Pointers and Arrays
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Numerical Analysis Programming using NRs
Chapter 11 구조체.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
 6장. SQL 쿼리.
13. 포인터와 배열! 함께 이해하기.
Pointers summary.
7 생성자 함수.
Wireless Java Programming
6 객체.
Presentation transcript:

제3장 클래스와 객체의 사용

클래스와 객체의 사용 3장 내용 객체 생성 과 객체 참조 String 클래스와 그 메쏘드들 Java 표준 클래스 라이브러리 Random과 Math 클래스들 출력 포맷 열거 타입(enumerated type) 포장 클래스(wrapper class) 그래픽 컴포넌트와 컨테이너 레이블과 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

객체 생성 변수 클래스 이름 객체 참조 변수(object reference variable) 기본 타입 값 혹은 객체에 대한 참조를 저장한다. 클래스 이름 객체 참조 변수선언을 위한 타입 이름 String title; 이 선언으로 객체가 생성되는 것은 아님! 객체 참조 변수(object reference variable) 객체의 주소 저장 객체 자체는 별도로 생성되어야 한다. © 2004 Pearson Addison-Wesley. All rights reserved

title = new String ("Java Software Solutions"); 객체 생성 new 연산자 사용하여 객체 생성 title = new String ("Java Software Solutions"); String 구성자 호출: 객체를 구성하는 특수 메쏘드 객체 생성을 실체화(instantiation)라고 한다. 객체는 클래스의 실체(instance)이다. © 2004 Pearson Addison-Wesley. All rights reserved

메쏘드 호출(Method invocation) 도트 연산자(dot operator ) 객체 생성 후에 도트 연산자를 사용하여 메쏘드 호출 count = title.length() 메쏘드는 값을 반환(return) 할 수 있다. 반환 값은 배정 혹은 수식에서 사용됨 메쏘드 호출 객체에 서비스를 요청하는 것으로 생각할 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

참조(Reference) 비교 객체 참조 기본 타입 변수는 값을 저장하고 객체 참조 변수는 객체의 주소를 저장한다. 객체의 위치에 대한 포인터로 생각할 수 있다. 주소로 표시하는 대신에 화살표를 사용한다. "Steve Jobs" name1 num1 38 © 2004 Pearson Addison-Wesley. All rights reserved

배정(Assignment) 배정은 값을 복사하여 변수에 저장한다. 기본 타입: Before: After: 38 num1 96 num2 = num1; num1 38 num2 After: © 2004 Pearson Addison-Wesley. All rights reserved

참조 배정(Reference Assignment) 객체 참조 배정은 주소를 복사하여 저장한다 ! name1 name2 Before: "Steve Jobs" "Steve Wozniak" name2 = name1; name1 name2 After: "Steve Jobs" © 2004 Pearson Addison-Wesley. All rights reserved

별명(Alias) 별명 별명은 유용하지만 조심해야 한다 ! 한 객체를 참조하는 두 개 이상의 참조 변수들 한 객체를 여러 참조 변수들을 이용하여 접근할 수 있다. 별명은 유용하지만 조심해야 한다 ! 실제로는 한 객체만 존재하므로 어떤 참조를 통해 그 객체를 변경하면 다른 모든 이명 참조들도 변경하게 된다. © 2004 Pearson Addison-Wesley. All rights reserved

쓰레기 수집(Garbage Collection) 객체에 대한 유효한 참조가 없으면 더 이상 사용될 수 없다. 이 객체는 쓰레기가 된다. 자동 쓰레기 수집 Java는 정기적으로 자동 쓰레기 수집을 하여 사용되지 않는 메모리를 시스템에 돌려준다. 다른 언어의 쓰레기 수집 프로그래머가 직접 해야 한다. © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

String 클래스 스트링 생성 title = "Java Software Solutions"; new 연산자 없이 String 객체를 생성할 수 있다. title = "Java Software Solutions"; 이것은 스트링에만 적용되는 특별한 경우 " … "은 String 객체를 나타낸다. title = new String("Java Software Solutions"); © 2004 Pearson Addison-Wesley. All rights reserved

String 메쏘드 String 객체가 생성되면 String 클래스의 어떤 메쏘드는 변경된 스트링을 반환 값도 길이도 변경할 수 없다. String 객체는 변경 불능(immutable) String 클래스의 어떤 메쏘드는 변경된 스트링을 반환 String toLowerCase ( ) String replace (char oldChar, char newChar) String substring (int offset, int endIndex) String concat (String str) © 2004 Pearson Addison-Wesley. All rights reserved

String 인덱스 스트링 내의 특정 문자 참조 스트링 "Hello" 인덱스를 사용해서 인덱스는 0부터 시작 © 2004 Pearson Addison-Wesley. All rights reserved

StringMutation.java © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

Class 라이브러리 클래스 라이브러리(class library) 프로그램 개발에 사용할 수 있는 클래스들의 모음 Java 표준 클래스 라이브러리(standard class library) Java 개발 환경의 일부 Java 언어 자체의 일부는 아님. System , Scanner, String 도 일부 © 2004 Pearson Addison-Wesley. All rights reserved

패키지(Package) Java 표준 클래스 라이브러리는 패키지로 조직된다. 일부 패키지들 패키지 java.lang java.applet java.awt javax.swing java.net java.util javax.xml.parsers 목적 일반적인 지원 애플릿 그래픽/그래픽 사용자 인터페이스 추가 그래픽 기능 네트워크 통신 유틸리티 XML 문서 처리 © 2004 Pearson Addison-Wesley. All rights reserved

import 선언 패키지 내의 클래스 사용 패키지 내의 모든 클래스 전입 이름을 완전 지정(fully qualified name) java.util.Scanner import 후 클래스 이름만 사용 import java.util.Scanner; 패키지 내의 모든 클래스 전입 import java.util.*; © 2004 Pearson Addison-Wesley. All rights reserved

import 선언 java.lang 패키지의 모든 클래스는 자동 전입 import java.lang.*; Scanner 클래스 마치 다음과 같이 : import java.lang.*; java.lang.String Scanner 클래스 java.util.Scanner import 해야 함 © 2004 Pearson Addison-Wesley. All rights reserved

Random 클래스 java.util.Random 의사난수 발생기 Random 객체는 종자 값(seed value)을 이용하여 복잡한 계산을 수행하여 난수를 발생시킨다. © 2004 Pearson Addison-Wesley. All rights reserved

RandomNumbers.java © 2004 Pearson Addison-Wesley. All rights reserved

Math 클래스 Math 클래스 수학 함수 java.lang 패키지의 일부 다양한 수학 함수 포함 절대값(absolute value) 제곱근(square root) 지수승(exponentiation) 삼각함수(trigonometric function) © 2004 Pearson Addison-Wesley. All rights reserved

value = Math.cos(90) + Math.sqrt(delta); Math 클래스의 메쏘드는 정적 메쏘드(static method) 정적 메쏘드 객체 없이 클래스 이름을 통해서 호출 가능 value = Math.cos(90) + Math.sqrt(delta); 6장에서 자세히 배웁니다. © 2004 Pearson Addison-Wesley. All rights reserved

Quadratic.java © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

출력 포맷(Formatting Output) 적절한 모양으로 출력 값을 포맷해야 한다. Java 표준 클래스 라이브리러 출력 포맷 기능을 제공하는 클래스 제공 java.text 패키지 NumberFormat 클래스 화폐 단위 , 퍼센트로 포맷 DecimalFormat 클래스 패턴을 기반으로 포맷 © 2004 Pearson Addison-Wesley. All rights reserved

출력 포맷(Formatting Output) NumberFormat 클래스의 정적 메쏘드 getCurrencyInstance() getPercentInstance() 포맷터(formatter) 객체 반환 포맷터(formatter) 객체의 메쏘드 format 적절한 포맷의 명시된 정보를 나타내는 스트링 반환 © 2004 Pearson Addison-Wesley. All rights reserved

Purchase.java © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

열거 타입(Enumerated Type) 프로그래머가 열거 타입을 정의할 수 있다. 변수 선언에 사용할 수 있다. 열거 타입은 모든 가능한 값(식별자)을 나열한다. 나열된 값들의 수에 제한이 없음 예제 Season enum Season {winter, spring, summer, fall}; © 2004 Pearson Addison-Wesley. All rights reserved

열거 타입(Enumerated Type) 열거 타입이 정의되면 변수를 선언할 수 있다. Season time; 값을 배정할 수 있다. time = Season.fall; 값은 타입 이름을 통해 명시한다. 열거 타입은 타입-안전( type-safe ) 리스트 된 값 외에 값을 배정(사용) 할 수 없다. © 2004 Pearson Addison-Wesley. All rights reserved

순서 값(Ordinal Values) 내부적으로 열거 타입의 그러나 순서 값을 직접 배정할 수는 없음 열거 타입의 값은 순서 값(정수)으로 저장됨 열거 타입의 첫 번째 값은 순서 값 0 두번째 값은 1 … 그러나 순서 값을 직접 배정할 수는 없음 © 2004 Pearson Addison-Wesley. All rights reserved

열거 타입(Enumerated Type) 열거 타입은 특별한 클래스 열거 타입 값은 객체 열거 타입의 변수는 객체 참조 변수 적용 가능 메쏘드 ordinal(): 열거 타입 값의 순서 값 name(): 열거 타입 값의 이름 © 2004 Pearson Addison-Wesley. All rights reserved

IceCream.java © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

포장 클래스(Wrapper Class) java.lang 패키지는 기본 타입에 대응되는 포장 클래스 제공 기본 타입 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean void Void © 2004 Pearson Addison-Wesley. All rights reserved

포장 클래스(Wrapper Class) 정수 40을 나타내는 Integer 객체 생성 Integer age = new Integer(40); 객체가 필요한 곳에 사용될 수 있다. 포장 클래스가 제공하는 상수/메쏘드 String 형태의 정수를 int 값으로 변환 num = Integer.parseInt(str); 정수를 이진수 스트링으로 변환 String toBinaryString (int num) Integer. MIN_VALUE, Integer. MAX_VALUE © 2004 Pearson Addison-Wesley. All rights reserved

자동 박스(Autoboxing) 기본 타입 값을 상응하는 포장 객체로 자동 변환 Integer obj; int num = 42; obj = num; 이 배정문은 자동으로 Integer 객체를 생성한다. 역변환 (unboxing)도 필요할 때 자동적으로 일어난다. © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

그래픽 응용 지금까지 여기서는 텍스트 기반 명령어-줄 애플리케이션(command-line application) 그래픽 컴포넌트를 갖는 Java 애플리케이션 GUI(Graphical User Interface) © 2004 Pearson Addison-Wesley. All rights reserved

GUI 컴포넌트(component) GUI 컴포넌트 GUI-관련 클래스 버튼, 텍스트 필드, 프레임 같은 화면 요소를 나타내는 객체 GUI-관련 클래스 java.awt: Abstract Windowing Toolkit (AWT) 원조 Java GUI 패키지 javax.swing 다양한 컴포넌트 추가 © 2004 Pearson Addison-Wesley. All rights reserved

GUI 컨테이너(Container) GUI 컨테이너 프레임(frame) 패널(panel) 다른 컴포넌트들을 포함하고 조직하는데 사용되는 컴포넌트 프레임(frame) GUI-기반 Java 애플리케이션을 디스플레이 하는 데 사용하는 윈도우 타이틀 바를 갖는 별개의 윈도우로 디스플레이 위치/크기 조정 가능 패널(panel) 다른 컴포넌트들을 포함하고 조직할 수 있으나 스스로 디스플레이 될 수 없다 ! 디스플레이 하려면 다른 컨테이너에 add 되어야 한다. © 2004 Pearson Addison-Wesley. All rights reserved

레이블(Label) 한 줄의 텍스트를 디스플레이 하는 GUI 컴포넌트 예제 Authority.java 정보를 디스플레이 혹은 다른 컴포넌트 식별하기 위해 예제 Authority.java 두 개의 레이블을 패널에 넣고 패널을 프레임에 디스플레이 © 2004 Pearson Addison-Wesley. All rights reserved

Authority.java © 2004 Pearson Addison-Wesley. All rights reserved

중첩 패널 포함 계층구조(containment hierarchy) 예제 NestedPanels.java 컨테이너가 다른 컴포넌트를 포함하여 계층구조 형성 원하는 가시적 효과를 내도록 형성 예제 NestedPanels.java 한 패널 내의 두 개의 패널 중첩 프레임 크기가 변함에 따른 효과 주의 © 2004 Pearson Addison-Wesley. All rights reserved

NestedPanel.java © 2004 Pearson Addison-Wesley. All rights reserved

Outline 객체 생성 String 클래스 패키지 출력 포맷 열거 타입 포장 클래스 컴포넌트와 컨테이너 이미지 © 2004 Pearson Addison-Wesley. All rights reserved

이미지(Image) 이미지는 그래픽 인터페이스에 자주 사용 JPEG, GIF 포맷 이미지를 처리할 수 있다. JLabel 한 줄의 텍스트 디스플레이 하는데 사용 이미지 디스플레이 하는데 사용 레이블은 텍스트, 이미지, 둘 다로 구성 가능 © 2004 Pearson Addison-Wesley. All rights reserved

이미지(Image) ImageIcon 클래스 레이블 내의 텍스트와 이미지 정렬 가능 예제 LabelDemo.java 레이블에 저장된 이미지를 나타내는데 사용 이미지에 대한 텍스트의 상대적 위치 설정 가능 레이블 내의 텍스트와 이미지 정렬 가능 예제 LabelDemo.java © 2004 Pearson Addison-Wesley. All rights reserved

LabelDemo.java © 2004 Pearson Addison-Wesley. All rights reserved

3장 요약 객체 생성 과 객체 참조 String 클래스와 그 메쏘드들 Java 표준 클래스 라이브러리 Random과 Math 클래스들 출력 포맷 열거 타입(enumerated type) 포장 클래스(wrapper class) 그래픽 컴포넌트와 컨테이너 레이블과 이미지 © 2004 Pearson Addison-Wesley. All rights reserved