제8장 필드와 메소드
이번 장에서 학습할 내용 클래스와 객체 객체의 일생 메소드 필드 UML
QUIZ 속성 동작 객체는 ________과 _________을 가지고 있다. 자동차가 객체라면 클래스는 ________이다. 설계도
변수의 종류 필드(field) : 클래스 안에서 선언되는 멤버 변수, 인스턴스 변수라고도 한다. 지역 변수(local variable): 메소드나 블록 안에서 선언되는 변수 매개 변수(parameter): 메소드 선언에서의 변수
필드의 선언
필드의 사용 범위
필드의 초기화 선언과 동시에 초기화 가능 생성자를 사용하는 방법 -> 다음 장에서 학습
설정자와 접근자 설정자(mutator) 필드의 값을 설정하는 메소드 setXXX() 형식 접근자(accessor) 필드의 값을 반환하는 메소드 getXXX() 형식 그림 8-1 . 접근자와 변경자 메소드만을 통하여 필드에 접근한다.
설정자와 접근자
예제 현재 자동차의 색상는 red 현재 자동차의 속도는 100 현재 자동차의 기어는 1
설정자와 접근자는 왜 사용하는가? 설정자에서 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 이를 사전에 차단할 수 있다. 필요할 때마다 필드값을 계산하여 반환할 수 있다. 접근자만을 제공하면 자동적으로 읽기만 가능한 필드를 만들 수 있다.
지역 변수 메소드 안에 선언 메소드의 매개 변수도 지역 변수의 일종
주의 지역 변수를 초기화하지 않고 사용하면 오류 Exception in thread "main" java.lang.Error: Unresolved compilation problems: The local variable sum may not have been initialized ...
변수와 변수의 비교 “변수1 == 변수2”의 의미 참조형 변수의 경우, 객체의 내용이 같다는 의미가 아니다. 내용이 같은지를 검사하려면 equals() 사용
메소드 메소드는 객체가 할 수 있는 기능을 나타낸다. 클래스 안에 포함된 함수-> 메소드
값에 의한 전달 매개 변수가 기초형의 변수일 경우, 값이 복사된다.
매개 변수가 객체인 경우 매개 변수가 참조형의 변수일 경우에도 역시 참조값이 복사된다. 아주 중요!!
메소드는 값을 반환할 수 있다. 메소드는 작업의 결과값을 반환할 수 있다. 반환값은 하나만 가능하다.
메소드 호출
메소드 호출의 예제
메소드 호출의 예제
실행 결과 화면 예상값을 입력하시오: 3 틀렸습니다
중복 메소드 중복 메소드(overloading method) 메소드 호출시 매개 변수를 보고 일치하는 메소드가 호출된다. 만약 square(3.14)와 같이 호출되면 컴파일러는 매개 변수의 개수, 타입, 순서 등을 봐서 두 번째 메소드를 호출한다.
중복 메소드 예제
중복 메소드 예제 정수 버전 호출 실수 버전 호출
가변 길이 인수 JDK 5부터 가변 길이 인수(variable-length arguments) 사용 가능 인수의 개수 : 1 인수의 개수 : 5 2 3 4 5 6 인수의 개수 : 0
가변 길이 인수
UML UML(Unified Modeling Language) 그림 8-7 . UML의 예
클래스와 클래스의 관계 그림 8-8 . UML에서 사용되는 화살표의 종류 그림 8-9 . Car 예제의 UML
예제 집에서 사용하는 데스크 램프를 클래스로 작성하여 보면 다음과 같다.
예제
예제 현재 상태는 켜짐 현재 상태는 꺼짐
예제 은행 계좌
예제
예제 현재 잔액은 10000입니다. 현재 잔액은 2000입니다.
예제 날짜
예제
예제
예제 2009년 3월 2일 2010년 3월 2일