클래스 (class)
클래스(class) :
객체를 생성하기 위한 탬플릿 역할을 합니다.
OOP(Object Oriented Programming) 객체지향 프로그래밍
Object(객체) : 사람, 동물, 자동차, 물건
Object Modeling(객체 모델링) :
현실 세계 있는 독립적인 객체를 소프트웨어를 통해서 형상화(모델링)
Object Relationship(객체 간의 관계)
- 집합관계: 서로 포함하고 포함되는 관계
- 사용관계: 객체 간의 상호 작용
- 상속관계: 부모, 자식
객체지향의 특징
1. 캡슐화
2. 상속
3. 다형성
클래스와 객체
1. 객체를 위한 설계도
2. 객체는 클래스가 인스턴스화(실체화) 된 것
클래스의 생성자
1. 생성자를 정의하지 않으면 컴파일러는 기본생성자를 자동으로 만들어 줍니다.
2. 클래스의 생성자는 클래스의 이름과 동일해야 합니다.
3. 리턴 타입이 없음.
4. 생성자를 여러 개 만들 수 있지만 파라미터가 달라야 합니다.
5. this는 클래스가 객체와 되었을 때 가지고 있는 메모리 주소
클래스 (class) : 자바의 설계도
인스턴스 (instance): 클래스로부터 만들어진 객체
객체지향 프로그래밍 단계
클래스 설계 -> 설계된 클래스로 사용할 객체 생성 -> 객체 이용
객체를 생성하는 순서
객체 구상 후 클래스 이름을 결정
식별자 작성 규칙에 따라야 함
하나 이상의 문자로 이루어질 것
첫 글자에는 숫자 올 수 없음
$, _ 외의 특수 문자는 사용할 수 없음
자바 키워드는 사용할 수 없음
# 클래스명
자유롭게 작성할 수있지만 일반적으로 사용하는 규칙이 존재
클래스명은 명사가 되어야함
대문자로 시작
두개 이상의 단어가 조합될때는 각 단어의 첫글자는 대문자로 표기
1. 구체적인 객체를 나타내는 명사
- 실제 현실 세계에 존재하는 구체적인 사물, 개념 등을 표현하는 명사.
- 예 : Car, Person, Book, Student, Product
2. 추상적인 개념을 나타내는 명사
- 현실 세계에 존재하지 않더라도 프로그램 내에서 정의된 개념을 표현.
- 예 : Account, User, Transaction, Order
3. 집합적인 개념을 나타내는 명사
- 여러 객체를 포함하거나 관리하는 컬렉션이나 그룹을 나타냄.
- 예 : List, Queue, Stack, Dictionary, Catalog
4. 역할이나 책임을 나타내는 명사
- 특정 기능을 수행하는 객체의 역할이나 책임을 나타내는 명사.
- 예 : Controller, Manager, Service, Repository
5. 도구 및 유틸리티를 나타내는 명사
- 특정 작업을 지원하는 도구 역할을 하는 클래스.
- 예 : Validator, Parser, Utility, Helper
6. 상태나 이벤트를 나타내는 명사
- 특정 상태를 표현하거나 이벤트를 처리하는 클래스.
- 예 : State, Event, Notification, Signal
7. 기타 추상적 타입
- 상위 개념이나 인터페이스, 추상 클래스를 나타내는 명사.
- 예 : Shape, Animal, Vehicle, AbstractHandler
클래스명 작성 시 유의할 점
- 의미가 명확한 단어 선택
- 클래스 이름은 클래스의 역할과 목적을 명확히 설명해야 함.
- 예: UserManager는 사용자 관련 기능을 관리한다는 뜻을 전달.
- 단수형 사용
- 일반적으로 클래스 이름은 단수형으로 작성 (객체의 단일 인스턴스를 표현).
- 예: Book, Account
- CamelCase 규칙 준수
- 각 단어의 첫 글자를 대문자로 작성.
- 예: StudentRecord, ProductCatalog
클래스: 객체를 만들기 위한 설계도
객체 : 클래스로부터 생성되며 ‘new 클래스()’로 생성
new 연산자 : 객체 생성 연산자이며 생성자 호출하고 객체 생성 번지를 리턴
클래스 변수 : 클래스로 선언한 변수이며 해당 클래스의 객체 번지가 저장됨
인스턴스 : 객체는 클래스의 인스턴스
클래스 멤버 : 클래스에 선언되는 멤버로 필드, 생성자, 메서드가 있음
클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용
설계도가 바로 클래스
설계도인 클래스를 사용해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스
클래스, 객체, 인스턴스 클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 합니다.
생성자, 필드, 메소드
필드: 객체의 데이터를 저장하는 역할. 선언 형태는 변수 선언과 비슷하지만 쓰임새는 다름
생성자: new 연산자로 객체를 생성할 때 객체의 초기화 역할. 선언 형태는 메서드와 비슷하지만, 리턴 타입이 없고 이름은 클래스 이름과 동일
메서드: 객체가 수행할 동작. 함수로도 불림
필드 선언
필드는 클래스 블록에서 선언되어야 함
타입 필드명 [ = 초기값 ]
타입은 필드에 저장할 데이터의 종류를 결정. 기본 타입, 참조 타입 모두 가능
초기값을 제공하지 않을 경우 필드는 객체 생성 시 자동으로 기본값으로 초기화
필드 사용
필드값을 읽고 변경하는 것. 클래스로부터 객체가 생성된 후에 필드를 사용할 수 있음
필드는 객체 내부의 생성자와 메서드 내부에서 사용할 수 있고, 객체 외부에서도 접근해서 사용할 수 있음
멤버 변수(Member Variable): 이 변수들은 특정 클래스에 소속된 멤버
필드(Field): 데이터 항목을 가리키는 전통적인 용어. 데이터베이스, 엑셀 등에서 데이터 각각의 항목을 필드
라고함.
자바에서 멤버 변수, 필드는 같은 뜻. 클래스에 소속된 변수를 뜻
인스턴스 변수
기본 생성자
클래스에 생성자 선언이 없으면 컴파일러는 기본 생성자를 바이트코드 파일에 자동으로 추가
생성자 선언
객체를 다양하게 초기화하기 위해 생성자를 직접 선언할 수 있음
생성자는 메소드와 비슷한 모양을 가지고 있으나, 리턴 타입이 없고 클래스 이름과 동일
매개변수의 타입은 매개값의 종류에 맞게 작성
필드 초기화
객체마다 동일한 값을 갖고 있다면 필드 선언 시 초기값을 대입하는 것이 좋고, 객체마다 다른 값을 가져야 한다면 생성자에서 필드를 초기화하는 것이 좋음
클래스
틀: 붕어빵 틀 , 붕어빵 틀은 붕어빵이 아닙니다. 붕어빵 만드는 틀일 뿐
설계도: 자동차 설계도 , 계도는 실제 존재하는 것이 아니라 개 념으로만 있는 것
인스턴스
실제 먹을 수 있는 팥 붕어빵을 객체 또는 인스턴스
설계도를 통해 생산한 실제 존재하는 흰색 테슬라 모델 자동차를 객체 또는 인스턴스
객체 - Object 객체는 클래스에서 정의한 속성과 기능을 가진 실체이다.
인스턴스 - Instance 인스턴스는 특정 클래스로부터 생성된 객체를 의미
'java' 카테고리의 다른 글
[ JAVA ] class 클래스 (2) | 2024.05.31 |
---|---|
[ java ] Array ( 배열 ) , 메서드 (0) | 2024.01.31 |
[ java ] 제어문 - 조건문 , 반복문, 분기문 (1) | 2024.01.29 |
[ java ] 자바 프로그램 실행 , 변수와 연산자, 형변환 (1) | 2024.01.08 |
[ java ] 인텔리제이 프로그램 설치 및 설정 (0) | 2024.01.07 |