390 likes | 580 Views
6 장 . 클래스 : 속성. Java. 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 + " 입니다 "); }
E N D
6장. 클래스 : 속성 Java 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 객체의 생성 • section 4 멤버 변수 • 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 클래스의 일반 구조 • 실습예제 속성 생성자 기능 메소드
2 클래스 선언 • 클래스 선언 • 클래스의 한정자 • Public : 모든 클래스에서 접근 가능 • 한정자 사용 안 함 : 패키지 내의 클래스에서만 접근 가능 • Final : 서브 클래스를 가질 수 없는 클래스 • 추상(abstract) : 객체를 생성할 수 없는 클래스 [public/final/abstract] class Class-name { ......... ......... 클래스의 속성과 기능을 기술 ......... } 형식
2 클래스 선언 • 속성만 가지는 클래스 속성 class Box { int width; int height; int depth; } 형식
2 클래스 선언 • 속성과 메소드를 가지는 클래스 속성 메소드 class Box { int width; int height; int depth; public void volume() { intvol; vol = width * height * depth; System.out.println("Volume is "+vol); } } 형식
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() { //메소드 intvol; vol = width * height * depth; System.out.println("Volume is "+vol); } } 형식 메소드
3 객체의 생성 • 객체의 선언 클래스명 객체 변수; 형식
3 객체의 생성 • 객체의 생성 객체 변수 = new 클래스명; 형식
3 객체의 생성 • 객체의 선언과 생성 클래스명 객체 변수 = new 클래스명(); 형식
3 객체의 생성 • 객체의 선언과 생성 193 page
3 객체의 생성 • 실습예제 Box1 클래스로부터 객체 생성 객체의 속성만 가진 클래스 객체의 속성에 값을 배정
3 객체의 생성 • 실습예제
3 객체의 생성 • 프로그램 설명 • 01 : 클래스 Box1은 속성만 가진 클래스이다. • 08~09 : 클래스 Box1에서 객체 두 개를 생성하였다. • 12~18 : 각 객체의 속성에 특정 값을 저장하였다. • 20~24 : 각 객체의 속성값을 이용하여 박스의 부피를 계산하였다.
4 멤버 변수 • 멤버 변수 • 클래스에서 메소드 외부에 선언된 변수 • 멤버 변수의 구분 • 멤버 변수의 선언 [public/private] [static/final] 변수타입 변수명; 형식 196 page
4 멤버 변수 4-1 객체 변수 • 객체 변수 • 객체가 가질 수 있는 특성을 표현
4 멤버 변수 4-1 객체 변수 • 배정문에서의 객체 변수의 다른 특성 198 page
4 멤버 변수 4-1 객체 변수 • 실습예제 속성으로 값을 지정
4 멤버 변수 4-1 객체 변수 • 실습예제 같은 값이 출력 객체 변수에 객체 변수를 배정 mybox1의 width 속성값 변경 mybox2의 depth 속성값 변경 같은 값이 출력
4 멤버 변수 4-1 객체 변수 • 프로그램 설명 • 02~04 : 클래스의 속성으로 변수의 형과 변수명만 지정될 수도 있고, 직접 값을 지정할 수도 있다. • 08~12 : 기본 자료형인 정수 값을 가지는 변수는 배정문을 사용하면 값이 직접 복사되어 한 변수의 값이 변화되어도 다른 변수에 영향을 미치지 않는다. • 13~26 : 참조 자료형인 객체를 가지는 객체 변수를 다른 객체 변수에 배정하게 되면, 두 개의 객체 변수는 같은 객체를 가리키게 된다. 이 경우 한 객체 변수를 통해서 객체의 속성을 변경하면, 다른 객체 변수를 통해서 접근하는 값도 변경되게 된다.
4 멤버 변수 4-2 클래스 변수 • 클래스 변수 • static을 사용하여 선언 • 전역변수(global variable)의 개념 static 변수형 변수명; 형식
4 멤버 변수 4-2 클래스 변수 • 클래스 변수의 사용 201 page
4 멤버 변수 4-2 클래스 변수 • 실습예제 메소드가 호출될 때마다 클래스 변숫값 증가 클래스 변수 선언
4 멤버 변수 4-2 클래스 변수 • 실습예제 클래스 변수에 접근할 때는 클래스 명을 통해서 접근
4 멤버 변수 4-2 클래스 변수 • 프로그램 설명 • 06 : 클래스의 속성으로 클래스 변수를 선언하였다. 이 변수는 이 클래스로부터 생성된 객체들에 의해 공유되는 변수이다. • 26 : 클래스 변수는 클래스 명을 통해서 접근하는 것이 원칙이다.
4 멤버 변수 4-3 종단(final) 변수 • 종단 변수 • final을 사용하여 선언하며 변할 수 없는 상숫값을 갖음 final 변수형 = 변숫값; 형식
4 멤버 변수 4-4 멤버 변수 접근 방법 • 클래스 변수와 객체 변수에 접근하기 위해서는 “.”을 이용 • 클래스 변수 접근 방법 클래스이름.클래스변수 or 객체이름.클래스변수 형식
4 멤버 변수 4-4 멤버 변수 접근 방법 • 객체 변수 접근 방법 객체이름.객체변수 형식
5 멤버 변수 접근 한정자 5-1 public • 클래스 내의 멤버 변수 접근을 제한할 수 있는 방법으로 접근 한정자를 제공 • public으로 선언된 객체 변수는 항상 접근 가능하다는 것을 의미
5 멤버 변수 접근 한정자 5-2 private • private로 선언된 객체 변수는 소속된 클래스 내에서만 사용 오류 발생
5 멤버 변수 접근 한정자 5-3 한정자 없음 • 한정자를 지정하지 않을 경우 같은 패키지에 속한 클래스에서는 제한 없이 사용이 가능
6 변수의 유효범위(Scope) • 변수의 유효범위 • 그 변수가 사용될 수 있는 영역을 의미 • 유효범위 측면에서의 변수들을 구분 • 멤버 변수 • 메소드 매개변수와 지역변수 • 예외 처리기 매개변수(exception handler parameter) • 멤버 변수 • 클래스 내에 메소드 밖에서 선언된 변수를 의미 • 메소드 지역변수와 메소드 매개변수는 메소드 내에서만 사용할 수 있는 변수
6 변수의 유효범위(Scope) • 변수의 유효범위 207 page
학습정리 • 클래스의 일반 구조 • 클래스는 “속성+기능”으로 구성된다. • 클래스에는 기능을 나타내는 생성자(또는 생성자메소드)와 메소드가 있다. • 클래스 선언 • 클래스 선언 시 한정자를 사용할 수 있다. • 클래스에는 속성만 나올 수도 있고, 메소드만 있을 수도 있다. • 객체의 생성 • 객체의 선언과 생성과정을 통해 객체를 사용할 수 있다. • 객체를 생성하기 위해 new라는 예약어를 사용한다.
학습정리 • 멤버 변수 • 객체의 속성을 나타내는 멤버 변수에는 객체 변수, 클래스 변수, 종단 변수가 있다. • 객체 변수는 특성에 따라 기본 자료형을 가지는 객체 변수와 참조 자료형을 가지는 객체 변수가 있다. • 기본 자료형을 가진 객체 변수는 실제 값을 가진다. • 참조 자료형을 가진 객체 변수는 값이 아닌 객체의 주소를 가진다. • 클래스 변수는 그 클래스로부터 생성된 객체들이 공유하는 변수이다. • 종단 변수는 상수를 정의하는데 사용되며, 주로 변수명을 대문자로 사용하는 것이 관례이다. • 멤버 변수에 접근하는 방법은 객체 변수는 객체명을, 클래스 변수는 클래스명을 사용하여 접근한다.
학습정리 • 멤버 변수 접근 한정자 • 자바는 멤버 변수 접근 한정자를 제공하여 객체지향의 주요 특성인 캡슐화와 정보은폐를 제공한다. • public 한정자는 접근에 제한이 없는 한정자이다. 프로그램에서는 보안상 public의 사용을 최소화해야 한다. • private 한정자는 그 클래스 내부에서만 사용할 수 있는 한정자이다. • 한정자를 지정하지 않고 사용하는 경우는 같은 패키지에 속한 클래스에서는 제한없이 사용할 수 있다. • 변수의 유효범위 • 변수의 유효범위는 그 변수가 사용될 수 있는 영역을 의미한다.
6장. 클래스 : 속성 수고하셨습니다. 질문 있습니까?