Java 6장. 클래스 : 속성 public class SumTest {

Slides:



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

5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
최윤정 Java 프로그래밍 클래스 상속 최윤정
5장. 객체지향과 클래스.
JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.
클래스 구성 요소 1개의 클래스는 최대 8개의 구성 요소를 가질 수 있다
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
4.1 자바 응용 프로그램 분석 4.2 식별자(identifier)와 예약어 4.3 변수와 자료형
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 6. 형변환.
6장 클래스 6.1 클래스의 일반 구조 6.2 클래스 선언 6.3 객체의 생성 6.4 멤버 변수 6.5 멤버변수 접근 한정자
5장. 참조 타입.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
자바 프로그래밍 기초 5장. 객체 지향 언어와 클래스, 객체 hanbitbook.co.kr.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Lesson 7. 클래스와 메소드 - 1.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
자바 5.0 프로그래밍.
11장. 1차원 배열.
Choi, Namseok Java 기초 (객체와 클래스) Choi, Namseok
C#.
6장 클래스 6.1 클래스의 일반 구조 6.2 클래스 선언 6.3 객체의 생성 6.4 멤버 변수 6.5 멤버변수 접근 한정자
13. 연산자 오버로딩.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
7장 인터페이스와 추상 클래스.
Java 9장. 인터페이스와 예외처리 public class SumTest {
Method & library.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Power Java 제11장 상속.
JA V A W. 07 Sb.L.
JA A V W. 06.
10장 상속 Section 1 상속의 개요 Section 2 상속과 한정자 Section 3 상속과 생성자
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
Java Programming Java Programming 3장 백석대학교 인터넷멀티미디어 LAB1111호.
객체기반 SW설계 팀활동지 4.
[ 단원 04 ] 반복과 배열.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
JSP Programming with a Workbook
Java 5장. 객체지향 개념 public class SumTest {
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
어서와 C언어는 처음이지 제21장.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
OOP Practices OOP presentation 6 작성자 Kimjinsik 소속 Mobile computing Lab
7 생성자 함수.
6 객체.
Presentation transcript:

Java 6장. 클래스 : 속성 public class SumTest { public static void main(String a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두 수를 더하는 부분입니다 System.out.println("두수의 합은 " + sum + "입니다"); }

학습목표 클래스의 속성에 해당하는 부분에 관해 학습한다. 클래스의 일반구조와 클래스 선언부분에 대해 학습한다. 클래스로부터 객체를 생성하는 과정을 학습한다. 클래스의 속성에 해당하는 멤버 변수에 관해 학습한다. 캡슐화를 지원하는 멤버 변수 접근 한정자에 관해 학습한다. 변수의 유효범위에 관해 학습한다.

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

1-1 객체지향 이론과 역사 클래스의 구성 1 클래스의 일반 구조 속성에 해당하는 멤버 변수 부분 기능에 해당하는 생성자(생성자 메소드라고도 부름) 메소드 정의 187page

실습예제 1 클래스의 일반 구조 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; 속성 생성자 기능 메소드

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

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

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

속성, 생성자, 메소드를 가지는 클래스 class Box { int width; 형식 int height; int depth; 2 클래스 선언 속성, 생성자, 메소드를 가지는 클래스 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); 형식 속성 메소드 메소드

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

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

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

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

실습예제 3 객체의 생성 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 클래스로부터 객체 생성 객체의 속성에 값을 배정

실습예제 3 객체의 생성 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 + "입니다."); }

프로그램 설명 3 객체의 생성 01 : 클래스 Box1은 속성만 가진 클래스이다. 12~18 : 각 객체의 속성에 특정 값을 저장하였다.  20~24 : 각 객체의 속성값을 이용하여 박스의 부피를 계산하였다. 

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

4-1 객체 변수 객체 변수 4 멤버 변수 객체가 가질 수 있는 특성을 표현 ............ 4-1 객체 변수 객체 변수 객체가 가질 수 있는 특성을 표현 ............ int my_count1 = 100; int my_count2 = my_count1; Box mybox1 = new Box(); Box mybox2 = mybox1;

4 멤버 변수 4-1 객체 변수 배정문에서의 객체 변수의 다른 특성 198 page

4-1 객체 변수 실습예제 4 멤버 변수 Box2Test.java 01 02 03 04 05 06 07 08 09 10 11 4-1 객체 변수 실습예제 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; Box2 mybox1 = new Box2(); 속성으로 값을 지정

4-1 객체 변수 실습예제 4 멤버 변수 Box2Test.java 16 17 18 19 20 21 22 23 24 25 26 4-1 객체 변수 실습예제 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 속성값 변경 같은 값이 출력

4 멤버 변수 4-1 객체 변수 프로그램 설명 02~04 : 클래스의 속성으로 변수의 형과 변수명만 지정될 수도 있고, 직접 값을 지정할 수도 있다. 08~12 : 기본 자료형인 정수 값을 가지는 변수는 배정문을 사용하면 값이 직접 복사되어 한 변수의 값이 변화되어도 다른 변수에 영향을 미치지 않는다. 13~26 : 참조 자료형인 객체를 가지는 객체 변수를 다른 객체 변수에 배정하게 되면, 두 개의 객체 변수는 같은 객체를 가리키게 된다. 이 경우 한 객체 변수를 통해서 객체의 속성을 변경하면, 다른 객체 변수를 통해서 접근하는 값도 변경되게 된다.

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

4 멤버 변수 4-2 클래스 변수 클래스 변수의 사용 201 page

4-2 클래스 변수 실습예제 4 멤버 변수 Box3Test.java 01 02 03 04 05 06 07 08 09 10 4-2 클래스 변수 실습예제 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; } 클래스 변수 선언 메소드가 호출될 때마다  클래스 변숫값 증가

4-2 클래스 변수 실습예제 4 멤버 변수 Box3Test.java 11 12 13 14 15 16 17 18 19 20 21 4-2 클래스 변수 실습예제 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 + "입니다."); } 클래스 변수에  접근할 때는 클래스 명을  통해서 접근

4 멤버 변수 4-2 클래스 변수 프로그램 설명 06 : 클래스의 속성으로 클래스 변수를 선언하였다. 이 변수는 이 클래스로부터 생성된 객체들에 의해 공유되는 변수이다. 26 : 클래스 변수는 클래스 명을 통해서 접근하는 것이 원칙이다. 

4-3 종단(final) 변수 종단 변수 final 변수형 = 변숫값; 형식 4 멤버 변수 final int MAX =100; final int MIN = 1;

4-4 멤버 변수 접근 방법 클래스 변수와 객체 변수에 접근하기 위해서는 “.”을 이용 클래스 변수 접근 방법 4-4 멤버 변수 접근 방법 클래스 변수와 객체 변수에 접근하기 위해서는 “.”을 이용 클래스 변수 접근 방법 클래스이름.클래스변수 or 객체이름.클래스변수 형식

4-4 멤버 변수 접근 방법 객체 변수 접근 방법 객체이름.객체변수 형식 4 멤버 변수 class A { int aa; 4-4 멤버 변수 접근 방법 객체 변수 접근 방법 객체이름.객체변수 형식 class A { int aa; int bb; int cc; static int s = 0; } class ATest { public static void main(String args[]) { A obja = new A(); obja.aa = 4; obja.bb = obja.aa * 2; obja.cc = A.s; ....................

5-1 public 클래스 내의 멤버 변수 접근을 제한할 수 있는 방법으로 접근 한정자를 제공 5 멤버 변수 접근 한정자 5-1 public 클래스 내의 멤버 변수 접근을 제한할 수 있는 방법으로 접근 한정자를 제공 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; ...............

5-2 private private로 선언된 객체 변수는 소속된 클래스 내에서만 사용 5 멤버 변수 접근 한정자 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; ............... 오류 발생

5-3 한정자 없음 한정자를 지정하지 않을 경우 같은 패키지에 속한 클래스에서는 제한 없이 사용이 가능 5 멤버 변수 접근 한정자 5-3 한정자 없음 한정자를 지정하지 않을 경우 같은 패키지에 속한 클래스에서는 제한 없이 사용이 가능

메소드 지역변수와 메소드 매개변수는 메소드 내에서만 사용할 수 있는 변수 6 변수의 유효범위(Scope) 변수의 유효범위 그 변수가 사용될 수 있는 영역을 의미 유효범위 측면에서의 변수들을 구분 멤버 변수 메소드 매개변수와 지역변수 예외 처리기 매개변수(exception handler parameter) 클래스 내에 메소드 밖에서 선언된 변수를 의미 메소드 지역변수와 메소드 매개변수는 메소드 내에서만 사용할 수 있는 변수

6 변수의 유효범위(Scope) 변수의 유효범위 207 page

학습정리 클래스의 일반 구조 클래스 선언 객체의 생성 클래스는 “속성+기능”으로 구성된다. 클래스에는 기능을 나타내는 생성자(또는 생성자 메소드)와 메소드가 있다. 클래스 선언 클래스 선언 시 한정자를 사용할 수 있다. 클래스에는 속성만 나올 수도 있고, 메소드만 있을 수도 있다. 객체의 생성 객체의 선언과 생성과정을 통해 객체를 사용할 수 있다. 객체를 생성하기 위해 new라는 예약어를 사용한다.

학습정리 멤버 변수 객체의 속성을 나타내는 멤버 변수에는 객체 변수, 클래스 변수, 종단 변수가 있다. 객체 변수는 특성에 따라 기본 자료형을 가지는 객체 변수와 참조 자료형을 가지는 객체 변수가 있다. 기본 자료형을 가진 객체 변수는 실제 값을 가진다. 참조 자료형을 가진 객체 변수는 값이 아닌 객체의 주소를 가진다. 클래스 변수는 그 클래스로부터 생성된 객체들이 공유하는 변수이다. 종단 변수는 상수를 정의하는데 사용되며, 주로 변수명을 대문자로 사용하는 것이 관례이다. 멤버 변수에 접근하는 방법은 객체 변수는 객체명을, 클래스 변수는 클래스명을 사용하여 접근한다.

학습정리 멤버 변수 접근 한정자 변수의 유효범위 자바는 멤버 변수 접근 한정자를 제공하여 객체지향의 주요 특성인 캡슐화와 정보은폐를 제공한다. public 한정자는 접근에 제한이 없는 한정자이다. 프로그램에서는 보안상 public의 사용을 최소화해야 한다. private 한정자는 그 클래스 내부에서만 사용할 수 있는 한정자이다. 한정자를 지정하지 않고 사용하는 경우는 같은 패키지에 속한 클래스에서는 제한없이 사용할 수 있다. 변수의 유효범위 변수의 유효범위는 그 변수가 사용될 수 있는 영역을 의미한다.

6장. 클래스 : 속성 수고하셨습니다. 질문 있습니까?