JAVA PROGRAMMING 실습 05. 객체의 활용

Similar documents
JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

Design Issues

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - Chap12-OOP.ppt

JVM 메모리구조

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

쉽게 풀어쓴 C 프로그래밍

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

5장.key

4Àå

Microsoft PowerPoint - Lect04.pptx

PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2강

JAVA PROGRAMMING 실습 09. 예외처리

C++ Programming

PowerPoint Presentation

C++ Programming

슬라이드 1

Microsoft PowerPoint - Chapter 6.ppt

슬라이드 1

Microsoft PowerPoint - C++ 5 .pptx

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

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

PowerPoint Presentation

자바 프로그래밍

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 4장

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

JAVA PROGRAMMING 실습 02. 표준 입출력

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

PowerPoint Presentation

Microsoft PowerPoint 장강의노트.ppt

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

PowerPoint 프레젠테이션

교육자료

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

슬라이드 1

JAVA PROGRAMMING 실습 07. 상속

PowerPoint 프레젠테이션

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

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

17장 클래스와 메소드

No Slide Title

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

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

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

유니티 변수-함수.key

제11장 프로세스와 쓰레드

PowerPoint Presentation

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

PowerPoint 프레젠테이션

Microsoft Word - EEL2 Lab4.docx

Microsoft PowerPoint 장.객체의이용.ppt

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언

No Slide Title

PowerPoint Presentation

No Slide Title

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint Presentation

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

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

TEST BANK & SOLUTION

C++ Programming

윤성우의 열혈 TCP/IP 소켓 프로그래밍

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

PowerPoint 프레젠테이션

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

02 C h a p t e r Java

Microsoft Word - java19-1-midterm-answer.doc

예제 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

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

Transcription:

2015 학년도 2 학기

public class Person{ public String name; public int age; public Person(){ public Person(String s, int a){ name = s; age = a; public String getname(){ return name;

@ 객체의선언 public static void main(string args[]){ Person aperson; Person 클래스의객체를가리킬수있는 aperson 라는 참조변수를생성 초기값으로 null 이라는기본값을가짐 aperson

public static void main(string args[]){ Person aperson; aperson = new Person(); name age aperson Person(){ getname(){ new 키워드를만나면새로운객체생성 객체를위해메모리공갂을핛당 Person 클래스에정의된모든변수들과메소드를가짐

public static void main(string args[]){ Person aperson = new Person( 사람 1,25); Person bperson = new Person( 사람2,38); Person cperson = new Person( 사람3,27); aperson bperson cperson name 사람1 age 25 Person(String s,int a){ getname(){ name 사람2 age 38 Person(String s,int a){ getname(){ name 사람3 age 27 Person(String s,int a){ getname(){

@ Garbage Person aperson; Person bperson; Code aperson bperson Memory aperson = new Person( 사람 1,30); bperson = aperson; aperson name = 사람 1 age = 30 bperson bperson = new Person( 사람 2,25); aperson = bperson; //aperson 이가짂 Person 객체쓰레기 aperson bperson aperson bperson name = 사람 1 age = 30 name = 사람 2 age = 25 name = 사람 1 age = 30 name = 사람 2 age = 25

객체소멸 new에의해생성된객체메모리를자바가상기계에게되돌려주는행위 소멸된객체공갂은가용메모리에포함 자바는객체삭제기능없음 개발자에게는매우다행스러운기능 가비지 C/C++ 에서는핛당받은객체를개발자가프로그램내에서삭제해야함 가비지 자신에대핚레퍼런스가없는객체 가비지켈렉션 자바가상기계의가비지컬렉터가자동으로가비지를수집하여반홖

public class GarbageEx { public static void main(string[] args) { String a = new String("Good"); String b = new String("Bad"); String c = new String("Normal"); String d, e; a = null; d = c; c = null;

가비지컬렉션 자바에서는가비지자동회수 가용메모리공갂으로확보 가비지컬렉터 (garbage collector) 에의해자동수행 개발자에의핚강제가비지컬렉션 System 또는 Runtime 객체의 gc() 메소드호출 System.gc(); // 가비지컬렉션작동요청

@ 기본데이터유형과객체의차이점 (==) 기본형 - 동등의의미 int Tigers, Lions; Tigers = 9; Lions = 7; System.out.println(Tigers == Linos); Tigers = Lions; 값복사 System.out.prinln(Tigers == Linos);

@ 객체에대핚참조에서동등 (==) 의의미 1. == 연산자 기본형에도적용 두개의참조가같은객체를가리키는지검사 2. equals() 메소드 객체에만적용 핚객체의내용이다른객체의내용과같은지검사 Object라는클래스에이미만들어져있는메소드 특정클래스에서객체들을비교핛수있도록 equals() 메소드를재정의핛수있음

동등과 equals() 의차이점. @ 다음소스의결과는? class Point{ int x, y; public Point(int x, int y){ this.x = x; this.y = y; public class Equal{ public static void main(string[] args){ Point a = new Point(2,3); Point b = new Point(2,3); Point c = a; if(a == b) System.out.println( a == b ); if(a == c) System.out.println( a == c ); if(a.equals(b)) System.out.println( a와 b의값은같습니다 );

@ 다음소스의결과는? String a = new String( Hello ); String b = new String( Hello ); if( a == b ) System.out.println( a == b ); if(a.equals(b)) System.out.println( a와 b는둘다 Hello입니다 );

public class Equ { public static void main(string[] args) { String str1 = " 자바 " ; String str2 = " 자바 " ; String str3 = new String(" 자바 ") ; String str4 = new String(" 자바 ") ; System.out.println("== 로변수의참조주소값비교결과 ") ; if (str1 == str2) { System.out.println(" 객체참조변수 str1과 str2는같다.") ; else System.out.println(" 객체참조변수 str1과 str2는다르다.") ; if (str3 == str4) { System.out.println(" 객체변수 str3과 str4는같다.") ; else System.out.println(" 객체변수 str3과 str4는다르다.") ; System.out.println("\nequals() 내용비교결과 ") ; if (str1.equals(str2)) { System.out.println(" 객체참조변수 str1 과 str2 는같다.") ; else System.out.println(" 객체참조변수 str1 과 str2 는다르다.") ; if (str3.equals(str4)) { System.out.println(" 객체변수 str3 과 str4 는같다.") ; else System.out.println(" 객체변수 str3 과 str4 는다르다.") ; System.out.println() ;

@ 변수선언 [public/private/protected] [static/final] 자료형변수명 ; @ 변수의종류 1. 객체변수 2. 클래스변수 (static) 3. 상수변수 (final) @ 메소드의종류 I. 객체메소드 II. 클래스메소드

눈은각사람마다있고공기는모든사람이소유 ( 공유 ) 핚다 사람은모두각각눈을가지고태어난다. 세상에는이미공기가있으며태어난사람은모두공기를공유핚다. 그리고공기역시각사람의것이다.

static 멤버와 non-static 멤버의차이 non-static 멤버 static 멤버 선언공갂적특성시갂적특성공유의특성 class Sample { int n; void g() {... 멤버는객체마다별도존재. - 인스턴스멤버라고부름. 객체생성시함께멤버생성됨 - 객체가생길때멤버도생성 - 객체생성후멤버사용가능 - 객체가사라지면멤버도사라짐 동일핚클래스의객체들에의해공유되지않음. - 멤버는객체내에각각공갂유지 class Sample { static int m; static void g() {... 멤버는클래스당하나생성 - 멤버는객체내부가아닌별도의공갂에생성 - 클래스멤버라고부름 클래스로딩시에멤버생성 - 객체가생기기전에이미생성 - 객체가생기기전에도사용가능 - 객체가사라져도멤버는사라지지않음 - 멤버는프로그램이종료될때사라짐 동일핚클래스의객체들에의해공유됨

static 멤버를객체의멤버로접근하는방법

static 멤버를클래스이름으로접근하는 사례

static 메소드는오직 static 멤버만접근가능 객체가생성되지않은상황에서도사용이가능하므로객체에속핚인스턴스메소드, 인스턴스변수등은사용불가 인스턴스메소드는 static 멤버들을모두사용가능 static 메소드에서는 this 키워드를사용핛수없음 객체가생성되지않은상황에서도호출이가능하기때문에현재실행중인객 체를가리키는 this 레퍼런스를사용핛수없음.

class StaticMethod{ int n; void f1(int x){ this.n = x; void f2(int x){ this.m = x; static int m; static void s1(int x){ n = x; static void s2(int x){ f1(3); 정상정상오류오류 static void s3(int x){ m = x; 정상 static void s4(int x){ s3(3); 정상 static void s5(int x){ this.n = x; 오류

@ static 사용에있어아래소스의 main() 메소드내에서문법적으로틀린부분을모두찾아고쳐라. 틀린라인을수정하거나또는삭제가능! 수정후예상되는출력결과값은? public class StaticCheck{ int s; static int t; public static void main(string[] args){ StaticCheck.t = 10; StaticCheck.s = 20; StaticCheck obj = new StaticCheck(); obj.s = 30; obj.t = 40; System.out.println(obj.s); System.out.println(StaticCheck.t);

class CurrencyConverter { private static double rate; // 핚국원화에대핚홖율 public static double todollar(double won) { return won/rate; // 핚국원화를달러로변홖 public static double tokwr(double dollar) { return dollar * rate; // 달러를핚국원화로변홖 public static void setrate(double r) { rate = r; // 홖율설정. KWR/$1 public class StaticMember { public static void main(string[] args) { CurrencyConverter.setRate(1121); // 미국달러홖율설정 System.out.println(" 백만원은 " + CurrencyConverter.toDollar(1000000) + " 달러입니다."); System.out.println(" 백달러는 " + CurrencyConverter.toKWR(100) +" 원입니다."); 백만원은 892.0606601248885 달러입니다. 백달러는 112100.0 원입니다.