사용자정의 자료형의 이해
- 객체(Object) = 이질적인 구조 = 모델 = 덩어리(Value Object) = 바구니 = 이동(Data Transfer Object)
클래스
- 클래스: 객체를 모델링하는 도구
- 새로운 자료형을 만드는 도구
- 객체지향 측면: 현실 세계에 있는 객체를 객체지향 프로그램에서 사용하기 위해 객체의 상태정보(멤버 변수) 행위 정보(멤버 메서드)를 뽑아서 설계하는 도구
패키지
- 기능이 서로 비슷한 클래스끼리 모아서 관리를 쉽게 하기 위해 사용.
- 폴더와 비슷
- 패키지 외부에서 클래스의 접근을 할 수 없도록 하기위해 사용
- 자바에서 제공해주는 API도 패키지의 형태로 배포된다.
- java.lang: 자바에서 자주사용하는 클래스
- java.io: 입출력 관련 클래스
- java.net: 네트워킹 관련 클래스
- java.util: 도움을 주는 클래스 (Scanner 등)
- java.sql: 데이터베이스 관련 클래스
- java.math: 수학관련 클래스
package fc.java.part3 -> package선언문
package fc.java.part3.BookDto : 클래스의 풀네임
import java.lang.* => 기본으로 import 됨
인스턴스 변수
Book b = new Book();
에서 b, 붕어빵 탄생
생성자 메서드와 this
- 생성자 메서드
- new 연산에 의해 호출된다.
- 자신이 가지고 있는 멤버들을 메모리에 올려 객체에 생성하는 역할
- 메서드 이름은 클래스 이름과 동일해야한다.
- 접근제한자가 public인 경우에만 호출된다.
- 모든 클래스는 기본 생성자를 가지고 있다.
- 객체의 초기화를 위해 사용한다.
- 리턴 타입이 없다. (void도 없음)
public Class Person() {
public String name;
public int age;
public String phone;
public Person() { // 기본 생성자 메서드
// 객체를 생성하는 코드 생략
}
}
- this: 자신을 가리키는 객체변수
클래스 모델의 종류
- 모델이란 무엇인가
- 객체: 클래스(Class, 프로그래밍적), 모델 = 소프트웨어공학적
- 객체지향프로그래밍에서 클래스를 역할에 따라 부르는 이름을 모델이라고 한다.
- 역할에 따라 다양한 모델을 사용할 수 있다.
- 시작 클래스 (모델)
- DTO(Data Transfer Object), VO model: 데이터를 담는 모델
- 데이터를 하나로 묶어야 될 경우에 필요 -> 데이터를 하나로 수집하는 역할
- 입력 받아서 데이터를 다른 메서드로 이동시켜야 하는 경우
- 데이터베이스에 있는 데이터를 프로그램에서 가져와서 사용해야할 경우
- DAO(Data Access Object) Model: 데이터를 처리(DB) 하는 모델
- 데이터베이스에 데이터를 저장, 수정하거나 검색, 삭제를 하기 위해 만들어지는 모델
- CRUD 동작을 가지고 있는 클래스, 비즈니스 로직을 처리하는 클래스
- Utility Model: 도움을 주는 모델
- 반복적으로 사용해야 될 기능을 별도의 클래스로 만들어 놓고 필요할 때 사용하는 클래스
접근 제어(Access Modifier)
- 객체의 상태정보(property)는 중요하기 때문에 접근을 못하게 해야한다.
- 객체의 행위정보(method)는 상호작용을 해야 되기 때문에 접근을 허용한다.
- public, private
객체 상호간에 접근을 제어하는 방법 (클래스 상호 간에)
- 4가지의 접근 제한자를 사용한다.
- 클래스를 설계할 때 고려해야 한다.
- 클래스와 클래스 내부에서 만들어지는 멤버에 접근 제한자를 사용할 수 있다.
- 접근 제한자
- public
- 모든 패키지에 접근 가능
- 모든 클래스는 public
- 모든 멤버 메서드는 public
- private
- 모든 패키지에서 접근 불가
- 자기 자신만 접근 가능
- 모든 멤버변수는 private
- protected
- 상속관계에서 하위클래스에서 상위클래스로 접근 가능
- default
- 동일한 패키지에서만 접근 가능
- 단어로 존재하지 않음
'JAVA' 카테고리의 다른 글
[Java] 자바 프로그램은 어떻게 실행되는가 (0) | 2024.09.17 |
---|