PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

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

6장.key

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

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

JAVA PROGRAMMING 실습 05. 객체의 활용

설계란 무엇인가?

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

5장.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2강

쉽게 풀어쓴 C 프로그래밍

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

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint Presentation

PowerPoint 프레젠테이션

Design Issues

Microsoft PowerPoint - Lect04.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

Network Programming

JVM 메모리구조

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Microsoft PowerPoint - Chapter 6.ppt

JAVA PROGRAMMING 실습 07. 상속

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

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

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

C++ Programming

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

PowerPoint Presentation

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint Presentation

02 C h a p t e r Java

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint Presentation

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

Microsoft Word - EEL2 Lab4.docx

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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint 장강의노트.ppt

PowerPoint 프레젠테이션

<4D F736F F F696E74202D205B4A415641C7C1B7CEB1D7B7A1B9D65D36C0E5C6D0C5B0C1F6>

C++ Programming

PowerPoint Presentation

Microsoft PowerPoint - java1-lecture7.ppt [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

제11장 프로세스와 쓰레드

PowerPoint 프레젠테이션

Spring Boot

rmi_박준용_final.PDF

금오공대 컴퓨터공학전공 강의자료

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

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

PowerPoint 프레젠테이션

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

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - Chap12-OOP.ppt

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

슬라이드 1

01-OOPConcepts(2).PDF

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - java1 [호환 모드]

자바 프로그래밍

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

Chapter 01. HTML

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

Microsoft PowerPoint - 04-UDP Programming.ppt

교육자료

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - lec7_package [호환 모드]

JUNIT 실습및발표

Microsoft PowerPoint - 6주차.pptx

Transcription:

클래스 ( 계속 ) 배효철 th1g@nate.com 1

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 2

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 3

인스턴스멤버와 this 인스턴스멤버란? 객체 ( 인스턴스 ) 마다가지고있는필드와메소드 이들을각각인스턴스필드, 인스턴스메소드라고부름 인스턴스멤버는객체소속된멤버이기때문에객체가없이사용불가 4

인스턴스멤버와 this this 객체 ( 인스턴스 ) 자신의참조 ( 번지 ) 를가지고있는키워드 객체내부에서인스턴스멤버임을명확히하기위해 this. 사용 매개변수와필드명이동일할때인스턴스필드임을명확히하기위해사용 5

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 6

객체의소멸과가비지 객체소멸 new 에의해생성된객체메모리를자바가상기계로되돌려주는행위 소멸된객체공간은가용메모리에포함 자바응용프로그램에서임의로객체소멸할수없음 객체소멸은자바가상기계의고유한역할 자바개발자에게는매우다행스러운기능 C/C++ 에서는할당받은객체를개발자가프로그램내에서삭제해야함 C/C++ 의프로그램작성을어렵게만드는요인 7

객체의소멸과가비지 가비지 (garbage) 란? 가비지 : 가리키는레퍼런스가하나도없는객체 더이상접근하여사용할수없게되었음 가비지켈렉션 자바가상기계의가비지컬렉터가자동으로가비지를수집하여반환 8

객체의소멸과가비지 가비지컬렉션 자바에서가비지자동회수 가용메모리공간으로확보 가비지컬렉터 (garbage collector) 에의해자동수행 개발자에의한강제가비지컬렉션 System.gc() 또는 Runtime.getRuntime().gc() 메소드호출 이코드는자바가상기계에강력한가비지컬렉션요청 그러나자바가상기계가가비지컬렉션시점을전적으로판단 9

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 10

정적멤버와 static 정적 (static) 멤버란? 클래스에고정된필드와메소드 - 정적필드, 정적메소드 정적멤버는클래스에소속된멤버 객체내부에존재하지않고, 메소드영역에존재 정적멤버는객체를생성하지않고클래스로바로접근해사용 모든인스턴스가공통적으로사용해야하는멤버에사용 정적멤버선언 필드또는메소드선언할때 static 키워드붙임 11

정적멤버와 static 정적멤버사용 클래스이름과함께도트 (.) 연산자로접근 [ 바람직한사용 ] [ 바람직하지못한사용 ] 12

정적멤버와 static 인스턴스멤버선언 vs 정적멤버선언의기준 필드 객체마다가지고있어야할데이터 인스턴스필드 공용적인데이터 정적필드 메소드 인스턴스필드로작업해야할메소드 인스턴스메소드 인스턴스필드로작업하지않는메소드 정적메소드 13

정적멤버와 static 정적초기화블록 클래스가메소드영역으로로딩될때자동으로실행하는블록 정적필드의복잡한초기화작업과정적메소드호출가능 클래스내부에여러개가선언되면선언된순서대로실행 14

정적멤버와 static 정적메소드와정적블록작성시주의할점 객체가없어도실행가능 블록내부에인스턴스필드나인스턴스메소드사용불가 객체자신의참조인 this 사용불가 EX) main() 15

정적멤버와 static 싱글톤 (Singleton) 하나의애플리케이션내에서단하나만생성되는객체 Ex> 환경설정, log 싱글톤을만드는방법 외부에서 new 연산자로생성자를호출할수없도록막기 private 접근제한자를생성자앞에붙임 클래스자신의타입으로정적필드선언 자신의객체를생성해초기화 private 접근제한자붙여외부에서필드값변경불가하도록 외부에서호출할수있는정적메소드인 getinstance() 선언 정적필드에서참조하고있는자신의객체리턴 16

정적멤버와 static 싱글톤을만드는방법 Public class 클래스이름 { // 정적필드 private static 클래스이름 singleton = new 클래스이름 (); // 생성자 private 클래스 () {} } // 정적메소드 static 클래스이름 getinstance() { return singleton; } 17

정적멤버와 static 싱글톤얻는방법 18

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 19

final 필드와상수 final 필드 최종적인값을갖고있는필드 = 값을변경할수없는필드 final 필드의딱한번의초기값지정방법 필드선언시 생성자 20

final 필드와상수 상수 (static final) 상수 = 정적 final 필드 final 필드 : 객체마다가지는불변의인스턴스필드 상수 (static final): 객체마다가지고있지않음 메소드영역에클래스별로관리되는불변의정적필드 공용데이터로서사용 상수이름은전부대문자로작성 다른단어가결합되면 _ 로연결 21

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 22

패키지 패키지 (package) 란? 필요성 23

패키지 Project FileIO Graphic WebFile.class FileCopy.class FileRW.class Tools.class DObject.class Line.class Rect.class Circle.class 이름은같지만경로명이달라서도다른파일로취급 Project/FileIO/Tools.class Project/UI/Tools.class UI Main.class GUI.class EventHandler.class Tools.class 24

패키지 패키지 (package) 란? 서로관련된클래스를하나의그룹으로묶어이름을붙여놓은것 파일들을관리하기위해사용하는폴더 ( 디렉토리 ) 와비슷한개념 패키지의물리적인형태는파일시스템의폴더 하나의응용프로그램은여러개의패키지로작성가능 하나의패키지로만들고모든클래스파일을넣어둘수도있음 패키지는 jar 파일로압축할수있음 예 ) JDK 에서제공하는표준패키지는 rt.jar 에압축 25 클래스이름의일부 클래스를유일하게만들어주는식별자 전체클래스이름 = 상위패키지. 하위패키지. 클래스 클래스명이같아도패키지명이다르면다른클래스로취급

패키지 클래스의이름 ( 경로명 ) java.awt.color 패키지명 패키지명 : java.awt java.awt 패키지에속한클래스 26

패키지 패키지 (package) 란? 클래스선언할때패키지결정 클래스선언할때포함될패키지선언 클래스파일은 (~.class) 선언된패키지와동일한폴더안에서만동작 클래스파일은 (~.class) 다른폴더안에넣으면동작하지않음 27

패키지 import 문 다른패키지에작성된클래스사용 import 를이용하지않는경우 소스내에서패키지이름과클래스이름의전체경로명을써주어야함 public class ImportExample { public static void main(string[] args) { java.util.scanner scanner = new java.util.scanner(system.in); } } 28 import 키워드이용하는경우 소스의시작부분에사용하려는패키지명시» 소스에는클래스명만명시하면됨 특정클래스의경로명만포함하는경우» import java.util.scanner; 패키지내의모든클래스를포함시키는경우» import java.util.*;» * 는현재패키지내의클래스만을의미하며하위패키지의클래스까지포함하지않는다. import java.util.scanner; public class ImportExample { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); } } import java.util.*; public class ImportExample { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); } }

패키지 public class Calculator { public int add(int a, int b) { return a+b; } public int subtract(int a, int b) { return a - b; } public double average(int[] a) { double sum = 0; for (int i = 0; i < a.length; i++) sum += a[i]; return sum/a.length; } } Package A import A.Calculator; Package B public class CalMain { public static void main(string [] args) { Calculator c = new Calculator(); System.out.println(c.add(2,3)); System.out.println(c.subtract(2,3)); System.out.println(c.average(new int [] {2,3,4 })); } } 29

패키지 30 abstract class Calculator { public abstract int add(int a, int b);// 두정수의합을구하여리턴 public abstract int subtract(int a, int b);// 두정수의차를구하여리턴 public abstract double average(int[] a);// 배열에저장된정수의평균을구해실수로리던 } class GoodCalc extends Calculator { public int add(int a, int b) { return a+b; } public int subtract(int a, int b) { return a - b; } public double average(int[] a) { double sum = 0; for (int i = 0; i < a.length; i++) sum += a[i]; return sum/a.length; } public static void main(string [] args) { Calculator c = new GoodCalc(); System.out.println(c.add(2,3)); System.out.println(c.subtract(2,3)); System.out.println(c.average(new int [] {2,3,4 })); } }

패키지 java applet awt beans io lang math net nio rmi security sql text util beancontext spi color datatransfer dnd event font geom im image print channels charset spi renderable spi spi annotation instrument management ref reflect activation dgc registry server acl cert spec interfaces concurrent jar logging prefs regex spi zip atomic locks 31

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 32

접근제한자 33

접근제한자 접근제한자란? 클래스및클래스의구성멤버에대한접근을제한하는역할 다른패키지에서클래스를사용하지못하도록 ( 클래스제한 ) 클래스로부터객체를생성하지못하도록 ( 생성자제한 ) 특정필드와메소드를숨김처리 ( 필드와메소드제한 ) 접근제한자의종류 34

접근제한자 클래스의접근제한 default 클래스선언할때 public 생략한경우 다른패키지에서는사용불가 public 다른개발자가사용할수있도록라이브러리클래스로만들때유용 35

접근제한자 멤버접근제한자 디폴트 (default) 멤버 같은패키지내의다른클래스만접근가능 public 멤버 패키지에관계없이모든클래스에서접근가능 private 멤버 클래스내에서만접근가능 상속받은하위클래스에서도접근불가 protected 멤버 같은패키지내의다른모든클래스에서접근가능 상속받은하위클래스는다른패키지에있어도접근가능 멤버에접근하는클래스 멤버의접근지정자 default private protected Public 같은패키지의클래스 O X O O 다른패키지의클래스 X X X O 36

접근제한자 public 접근지정사례 private 접근지정사례 37

접근제한자 디폴트접근지정사례 protected 접근지정사례 38

목차 인스턴스멤버와 this 객체의소멸과가비지 정적멤버와 static final 필드와상수 패키지 접근제한자 Getter와 Setter 39

Getter 와 Setter 클래스선언할때필드는일반적으로 private 접근제한 읽기전용필드가있을수있음 (Getter 의필요성 ) 외부에서엉뚱한값으로변경할수없도록 (Setter 의필요성 ) Getter private 필드의값을리턴하는역할 - 필요할경우필드값가공 getfieldname() 또는 isfieldname() 메소드 필드타입이 boolean 일경우 isfieldname() Setter 외부에서주어진값을필드값으로수정 필요할경우외부의값을유효성검사 setfieldname( 타입변수 ) 메소드 매개변수타입은필드의타입과동일 40

중간고사공지 날짜 : 2018 년 4 월 25 일 ( 수 ) 시간 : 09:00 ~ 10:00 장소 : 새천년관 601 호 41