클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리
클래스 Class 클래스(class): 객체를 만드는 설계도 클래스로부터 만들어지는 각각의 객체를 특별히 그 클래스의 인스턴스(instance)라고도 한다. 객체를 클래스라는 설계도로 생성된다.
클래스 class 와 객체 object
클래스의 구조
클래스의 예: 박스
클래스의 예: 자동차
객체를 생성하려면 Car myCar = new Car( ); 자바에서 객체를 생성하는 방법은 new 한가지 뿐
기초 변수와 참조 변수 변수의 종류
객체의 생성 ① 참조 변수 선언 - Car타입의 객체를 참조할 수 있는 변수 myCar를 선언한다. ② 객체 생성 – new 연산자를 이용하여 객체를 생성하고 객체 참조값을 반환한다. ③ 참조 변수와 객체의 연결 – 생성된 새로운 객체의 참조값을 myCar 라는 참조 변수에 대입한다.
객체를 가리키는 참조값을 담을 수 있는 변수만 생성됨. 주의 위의 문장으로 객체가 생성되는 것은 아님!!! 객체를 가리키는 참조값을 담을 수 있는 변수만 생성됨.
객체의 필드와 메소드 접근 도트(.) 연산자 사용!
필드와 메소드 접근
객체 생성 코드
실행 결과
객체를 하나 더 생성하는 코드
객체를 하나 더 생성하는 코드
메소드 메소드는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같다.
메소드의 구조
인수와 매개 변수 메소드 호출시 전달하는 값을 인수(argument) 메소드에서 값을 받을 때 사용하는 변수를 매개 변수(parameter)
생성자 생성자(contructor): 객체가 생성될 때에 필드에게 초기값을 제공하고 필요한 초기화 절차를 실행하는 메소드 생성자의 역할
생성자의 예
예제 위의 코드처럼 객체가 생성되면 객체들은 다음과 같은 필드 값을 가지게 된다.
디폴트 생성자 만약 클래스 작성시에 생성자를 하나도 만들지 않는 경우에는 자동적으로 메소드의 몸체 부분이 비어있는 생성자가 만들어진다.
주의할 점 생성자가 하나라도 정의되어 있으면 디폴트 생성자는 만들어지지 않는다.
생성자에서 메소드 호출 this()는 생성자를 호출한다.
예제 #1
예제 #1
예제 #3
예제 #3
super
접근 제어 접근 제어(access control): 다른 클래스가 특정한 필드나 메소드에 접근하는 것을 제어하는 것 그림 9-5 . 멤버에 대한 접근 제어
접근 제어의 종류 클래스 수준에서의 접근 제어 멤버 수준에서의 접근 제어
클래스 수준에서의 접근 제어 Public 다른 모든 클래스가 사용할 수 있는 공용 클래스 Package 수식자가 없으면: 같은 패키지 안에 있는 클래스들만이 사용
멤버 수준에서의 접근 제어
예제
예제
this 참조 자기 자신을 참조하는 키워드 생성자를 호출할 때도 사용된다.
예제
예제
정적 변수 Static variable 인스턴스 변수(instance variable): 객체마다 하나씩 있는 변수
정적 변수의 예
정적 변수를 외부에서 사용할 때 “클래스이름.정적변수” 형식을 사용한다.
정적 메소드 Static method 정적 메소드(static method) 객체를 생성하지 않고 사용할 수 있는 메소드 (예) Math 클래스에 들어 있는 각종 수학 메소드 들
정적 변수의 예
예제 지금까지 생성된 자동차 수 = 2
주의할 점
상수 상수는 공간을 절약하기 위하여 정적 변수로 선언된다.
정적 변수의 예
예제 현재의 직원수=3
Event 란? 이벤트-구동 프로그래밍(event-driven programming):
Event 처리 과정 Event 처리의 절차
Event Listener 작성 과정 Event Listener 클래스를 작성한다.
Event Listener 작성 과정 Listener 객체의 역할
Event 객체 EventObject 클래스를 상속받는다. (예) MouseEvent 클래스
Listener를 독립적인 클래스로 작성
Listener를 독립적인 클래스 작성
Listener 클래스를 내부 클래스로 작성
Listener 클래스를 내부 클래스로 작성
실행결과
MyFrame 클래스가 Event를 처리
무명 클래스를 사용하는 방법
모든 컴포넌트들이 지원하는 Event
일부 컴포넌트들이 지원하는 Event
일부 컴포넌트들이 지원하는 Event
Listener 인터페이스의 요약
액션 Event 사용자가 버튼을 클릭하는 경우 사용자가 메뉴 항목을 선택하는 경우 사용자가 텍스트 필드에서 엔터키를 누르는 경우
예제 프로그래밍
예제프로그래밍
실행결과