PowerPoint Presentation

Similar documents
PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

PowerPoint Presentation

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

JAVA PROGRAMMING 실습 05. 객체의 활용

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

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 장강의노트.ppt

PowerPoint Presentation

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

Design Issues

Microsoft PowerPoint - 2강

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint 프레젠테이션

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

Microsoft PowerPoint - Chapter 6.ppt

No Slide Title

쉽게 풀어쓴 C 프로그래밍

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

C++ Programming

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - Lect04.pptx

PowerPoint Presentation

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

JVM 메모리구조

PowerPoint Presentation

No Slide Title

PowerPoint 프레젠테이션

PowerPoint Presentation

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

Microsoft PowerPoint - C++ 5 .pptx

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

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Template

Microsoft PowerPoint - chap06-2pointer.ppt

자바 프로그래밍

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

Slide 1

Microsoft PowerPoint - Java7.pptx

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

슬라이드 1

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

JAVA PROGRAMMING 실습 07. 상속

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

C++ Programming

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

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

JAVA PROGRAMMING 실습 09. 예외처리

슬라이드 1

Microsoft PowerPoint - java1 [호환 모드]

쉽게 풀어쓴 C 프로그래밍

교육자료

PowerPoint Template

4장.문장

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

05-class.key

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

제4장 기본 의미구조 (Basic Semantics)

슬라이드 1

슬라이드 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft Word - EEL2 Lab4.docx

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

PowerPoint 프레젠테이션

Cluster management software

Network Programming

제11장 프로세스와 쓰레드

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

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

쉽게

PowerPoint Template

PowerPoint Presentation

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

PowerPoint 프레젠테이션

클래스와객체 필드 메소드 중첩클래스 자료추상화 [2/35]

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

5장.key

Transcription:

Class - Property Jo, Heeseung

목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음 section 6 변수의유효범위 (Scope) 2

클래스의일반구조 클래스의구성 멤버변수 : 속성 생성자 : 클래스가객체화될때수행되는메소드 메소드 : 기능 3

클래스의일반구조 실습예제 Box_Sample.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 public class Box_Sample { int width; int height; int depth; int volume; Box_Sample(int w, int h, int d) { width = w; height = h; depth = d; int volume_compute() { 속성 volume = width * height * depth; return volume; 생성자 메소드 기능 4

클래스선언 클래스선언 형식 [public/final/abstract] class Class-name {...... 클래스의속성과기능을기술... 클래스의한정자 Public : 모든클래스에서접근가능 한정자사용안함 : 패키지내의클래스에서만접근가능 Final : 서브클래스를가질수없는클래스 추상 (abstract) : 객체를생성할수없는클래스 - 상속을위해정의한클래스 5

클래스선언 속성만가지는클래스 형식 class Box { int width; int height; int depth; 속성 6

클래스선언 속성과메소드를가지는클래스 형식 class Box { int width; int height; 속성 int depth; public void volume() { int vol; vol = width * height * depth; System.out.println("Volume is "+vol); 메소드 7

클래스선언 속성, 생성자, 메소드를가지는클래스 형식 class Box { int width; int height; 속성 int depth; public void Box(int w, int h, int d) { width=w; height=h; depth=d; public void volume() { // 메소드 int vol; vol = width * height * depth; System.out.println("Volume is "+vol); 생성자 메소드 8

객체의생성 객체의선언 형식 클래스명객체변수 ; Box mybox1; Avg student1; String name; 9

객체의생성 객체의생성 형식 객체변수 = new 클래스명 ; Box mybox1; mybox1 = new Box(10,20,30); 10

객체의생성 객체의선언과생성 형식 클래스명객체변수 = new 클래스명 (); Box mybox1 = new Box(10, 20, 30); Avg student1 = new Avg(); String name = new String(" 홍길동 "); 11

객체의생성 객체의선언과생성 class Box { int width; int height; int depth; class MyBox {... Box mybox1; Box mybox2; mybox1 = new Box(); mybox2 = new Box();... 12

객체의생성 실습예제 Box1Test.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 class Box1 { int width; int height; int depth; public class Box1Test { public static void main(string args[]) { Box1 mybox1 = new Box1(); Box1 mybox2 = new Box1(); int vol1, vol2; mybox1.width = 20; mybox1.height = 40; mybox1.depth = 15; mybox2.width = 10; mybox2.height = 20; mybox2.depth = 30; 객체의속성만가진클래스 Box1 클래스로부터객체생성객체의속성에값을배정 13

객체의생성 실습예제 Box1Test.java 19 20 21 22 23 24 25 26 vol1 = mybox1.width * mybox1.height * mybox1.depth; System.out.println(" 첫번째박스의부피는 " + vol1 + " 입니다."); vol2 = mybox2.width * mybox2.height * mybox2.depth; System.out.println(" 두번째박스의부피는 " + vol2 + " 입니다."); 14

객체의생성 15

멤버변수 멤버변수 클래스에서메소드외부에선언된변수 멤버변수의구분 멤버변수의선언 형식 [public/private] [static/final] 변수타입변수명 ; 16

객체변수 객체변수 객체가가질수있는특성을표현 class Box { int width; int height; int depth; 17

객체변수 배정문에서의객체변수의다른특성 18

객체변수 실습예제 Box2Test.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 class Box2 { int width=10; int height=20; int depth=30; public class Box2Test { public static void main(string args[]) { int myint1 = 100; int myint2 = myint1; System.out.println(" 첫번째값 : " + myint1 + " 두번째값 : " + myint2); myint1 = 200; 속성으로값을지정 System.out.println(" 첫번째값 : " + myint1 + " 두번째값 : " + myint2); Box2 mybox1 = new Box2(); 19

객체변수 실습예제 Box2Test.java 16 17 18 19 20 21 22 23 24 25 26 27 28 Box2 mybox2 = mybox1; mybox1.width = 20; System.out.println("mybox1.width : " + mybox1.width); System.out.println("mybox2.width : " + mybox2.width); mybox2.depth = 123; System.out.println("mybox1.depth : " + mybox1.depth); System.out.println("mybox2.depth : " + mybox2.depth); 객체변수에객체변수를배정 mybox1의 width 속성값변경 같은값이출력 mybox2 의 depth 속성값변경 같은값이출력 20

객체변수 21

클래스변수 클래스변수 static을사용하여선언 전역변수 (global variable) 의개념 형식 static 변수형변수명 ; static long boxid; static double degree; 22

클래스변수 클래스변수의사용 23

클래스변수 실습예제 Box3Test.java 01 02 03 04 05 06 07 08 09 10 class Box3 { int width; int height; int depth; long idnum; static long boxid = 0; public void increment() { idnum = ++boxid; 클래스변수선언 메소드가호출될때마다클래스변수값증가 24

클래스변수 실습예제 Box3Test.java 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class Box3Test { public static void main(string args[]) { Box3 mybox1 = new Box3(); Box3 mybox2 = new Box3(); Box3 mybox3 = new Box3(); Box3 mybox4 = new Box3(); mybox1.increment(); mybox2.increment(); mybox3.increment(); mybox4.increment(); System.out.println("mybox1 의 id 번호 : " + mybox1.idnum); System.out.println("mybox2 의 id 번호 : " + mybox2.idnum); System.out.println("mybox3 의 id 번호 : " + mybox3.idnum); System.out.println("mybox4의 id 번호 : " + mybox4.idnum); System.out.println(" 전체박스의개수는 " + Box3.boxID + " 입니다."); 클래스변수에접근할때는클래스명을통해서접근 25

클래스변수 26

종단변수 종단변수 final 을사용하여선언하며변할수없는상수값을가짐 형식 final 변수형 = 변수값 ; final int MAX =100; final int MIN = 1; 27

멤버변수접근한정자 클래스내의멤버변수접근을제한할수있는방법으로접근한정자를제공 public 으로선언된객체변수는항상접근가능 class Box3 { public int width; public int height; public int depth; public long idnum; static long boxid = 0; public void increment() { idnum = ++boxid;... Box3 mybox1 = new Box3(); mybox1.width = 7; mybox2.depth = 20;... 30

멤버변수접근한정자 private 로선언된객체변수는소속된클래스내에서만사용 class Box3 { private int width; private int height; private int depth; private long idnum; static long boxid = 0; public void increment() { idnum = ++boxid;... Box3 mybox1 = new Box3(); mybox1.width = 7; mybox2.depth = 20;... 오류발생 한정자를지정하지않을경우같은패키지에속한클래스에서는제한없이사용이가능 31

변수의유효범위 (Scope) 변수의유효범위 그변수가사용될수있는영역을의미 멤버변수 클래스내에메소드밖에서선언된변수를의미 클래스내의어디서나사용가능 메소드지역변수와메소드매개변수 메소드내에서만사용가능 32

변수의유효범위 (Scope) 변수의유효범위 33

학습정리 클래스의일반구조 클래스는 " 속성 + 기능 " 으로구성 클래스에는기능을나타내는생성자 ( 또는생성자메소드 ) 와메소드가존재 클래스선언 클래스선언시한정자를사용 객체의생성 객체의선언과생성과정을통해객체를사용 객체를생성하기위해 new 라는예약어를사용 34

학습정리 멤버변수 객체의속성을나타내는멤버변수 - 객체변수, 클래스변수, 종단변수 기본자료형을가진객체변수는실제값을가짐 참조자료형을가진객체변수는값이아닌객체의주소를가짐 클래스변수는그클래스로부터생성된객체들이공유하는변수 종단변수는상수를정의하는데사용 멤버변수에접근하는방법은객체변수는객체명을, 클래스변수는클래스명을사용하여접근 35

학습정리 멤버변수접근한정자 자바는멤버변수접근한정자를제공 public 한정자는접근에제한이없는한정자 - 프로그램에서는보안상 public 의사용을최소화하는것이좋음 private 한정자는그클래스내부에서만사용할수있는한정자 한정자를지정하지않고사용하는경우는같은패키지에속한클래스에서는제한없이사용가능 변수의유효범위 변수의유효범위는그변수가사용될수있는영역을의미 36