조금 늦어도 추가 숙제랑 기본 숙제는 같이 제출하도록.
우수 혼공족 놓친게 아쉽다... ㅜ_ㅜ
자신의 속성을 가지고 있으며 식별 가능한 것.
필드(: 속성)
메소드(: 동작)
객체 모델링
현실 세계 객체 -> 소프트웨어 객체의 필드와 메소드로 정의하는 과정
독립적으로 존재하는 객체들은 서로 상호자용 하면서 동작함.
메소드
상호작용 수단. 메소드 호출하고 결과 리턴하는 식으로 동작함.
리턴값 = 객체.메소드(매개값1, 매개값2, ...);
-> int result = Calculator.add(10, 20);
위 자바 코드로 메소드 호출하면 변수 result에는 30이란 값이 저장됨. (add
가 더하기 메소드)
객체 지향 프로그래밍
객체를 모델링하고 집합 관계에 있는 부품 객체와 사용 관계에 있는 개체를 하나씩 설계하여 조립하는 방식으로 프로그램을 개발함.
클래스
객체 생성을 위한 설계도. 필드(속성)와 메소드(동작)가 정의 됨.
인스턴스
클래스에서 만들어진 객체
(ex. 자동차 클래스의 인스턴스 => 자동차 객체, 이런 과정을 인스턴스화
라고 함.)
클래스 이름 결정시에는 자바의 식별자 작성 규칙에 따라야 함.
식별자 작성 규칙
- 하나 이상의 문자로 이루어져야 함.
- 첫 글자 숫자 X, 첫 글자 영어 대문자고 나머지는 소문자가 관례적
$
,_
외의 특수문자 사용 X- 자바 키워드 사용 X
클래스 이름 지정 후 클래스 이름.java
로 소스 파일 생성한 후 클래스 선언
클래스 선언 키워드는 반드시 소문자로 작성.
2개 이상 클래스 선언 가능하지만 보통 소스파일당 클래스는 하나만 선언함.
// 클래스 선언
public class 클래스이름 {
}
클래스 변수;
변수 = new 클래스();
클래스로부터 객체 생성
new 연산자는 힙 영역에 객체를 생성시켜 객체의 번지를 리턴함.
같은 클래스인 Student를 참고함. 하지만 객체는 new 연산자가 생성한만큼 생성됨.
s1과 s2는 Student클래스의 인스턴스임.
Student
클래스
라이브러리용
StudentExample
클래스
실행용, main()메소드 사용두 클래스 동시에 사용하면 라이브러리인 동시에 실행 클래스로 생성 가능
하지만 보통 객체 지향 프로그램은 라이브러리, 실행 클래스가 분리 됨.
객체가 가져야 할 구성 멤버 3가지
int ;
클래스이름() { ... }
void methodName() { ... }
생성자와 메소드 중괄호 블록 내부를 제외한 어느 곳이든 선언 가능
선언 형태가 변수 선언과 비슷함.
타입 필드 [ = 초기값 ];
초기값은 생략 가능. 생략 시 해당 타입의 기본값으로 초기화 됨.
외부 클래스 사용시 객체 생성 후 필드 사용 가능. 객체가 없으면 필드도 존재 X
클래스에서 필드 선언 시 초기값 없으면 기본값으로 초기화됨.