문법 종합반 3주차 - (1)
01. 메소드 설계
- 특정한 로직을 가지는 소스코드에 별명(이름)을 붙일 수 있어요
- 이름이 붙은 로직은 앞으로 메소드라고 부를 수 있어요
▶ 어디에 사용하는가?
- 로직을 추상화해놓고 상황에 맞게 실행할 수 있어요
- 코드의 재사용성을 높일 수 있어요
- 두 개의 숫자를 더하는 메소드를 만들고, 전달하는 숫자에 따라 덧셈결과를 알려줘요
- 매일 오전10시의 5만원이상의 주식 정보를 출력하고 메일로 전송해요
ex)
02. 클래스 설계
▶ 객체지향 프로그래밍
- Object Oriented Programming (OOP)
- 코틀린은 모든것이 클래스형태이므로 객체화할 수 있어요
- 프로그램에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들어요
- 객체들간의 적절한 결합을 통해 유지보수를 쉽게 해요
- 5대 키워드 : 클래스, 추상화, 캡슐화, 상속, 다형성
객체지향 프로그래밍, 절차지향 프로그래밍, 함수형 프로그래밍
▶ 클래스
- 프로그램의 각 요소별 설계도라고 해석할 수 있어요
- 코틀린에서는 class 키워드를 활용해서 클래스를 만들어요
- 클래스에는 정보(프로퍼티)와 행위(메소드)를 작성해요
- 보통 하나의 파일은 한개의 클래스를 의미하지만, 하나의 파일안에 여러개의 클래스가 존재할 수도 있어요
→ 데이터 클래스 (data class)
: 정보만 가지고 있는 클래스
ex)
→ 데이터 클래스 키워드
- hashCode(): 객체를 구분하기 위한 고유값을 리턴해줘요
- eauals(): 동일한 객체인지 비교해서 true 또는 false를 리턴해줘요
- copy(): 현재 객체의 모든 정보를 복사해서 새로운 객체를 리턴해줘요
- toString(): 현재 객체의 모든 정보(프로퍼티)를 예쁘게 출력해줘요
- getXXX()/setXXX(매개변수): 변수의 값을 리턴하거나 설정해줘요
→ 실드 클래스 (sealed class)
: 상속받을 수 있는 자식클래스들을 미리 정의할 수 있고 무분별한 상속을 방지할 수 있어요
ex)
→ 오브젝트 클래스 (object class)
: Java의 static 대신 사용하는 키워드이며 프로그램을 실행하는 동시에 인스턴스화해요
→ 열거 클래스 (enum class) => 완강 후 다시 보기
: 여러 곳에 동일한 상수를 정의하거나, 상수 외부에 관련된 변수나 함수를 정의하게 되면
코드가 증가할수록 관리가 어렵고, enum class를 이용해서 상수값에 대한 관리 지점을 줄일 수 있어요
03. 생성자의 활용
- 기본 생성자와 명시적 생성자가 존재해요
- 기본 생성자는 이전까지 클래스를 만들던 행위와 차이가 없어요
- 명시적 생성자는 주 생성자와 부 생성자로 구분할 수 있어요
Init (주 생성자)
ex)
Constructor (부 생성자)
ex)
▶ 어디에 사용하는가?
- 한 가지의 형태로 클래스를 실체화할때는 주 생성자를 활용할 수 있어요
- 항상 <**이름, 머리색상, 키>**만 생성자에서 최초로 코드를 실행할 때는 주 생성자를 사용해요
- 여러 형태로 클래스를 실체화할때는 보조 생성자를 활용할 수 있어요
- <이름, 머리색상, 키> 또는 <이름, 머리색상, 키, 나이, 성별> 처럼 여러개의 생성자를 통해 최초로 코드를 실행할 때는 부 생성자를 이용해요
04. 객체의 활용
▶ 객체란?
- 모든 인스턴스를 포함하는 개념이예요
- 클래스 타입으로 선언된것들을 객체(Object)라고 해요
▶ 인스턴스란?
- 클래스형태로 설계된 객체를 실체화하면 인스턴스가 생겨요
- 인스턴스는 메모리 공간을 차지해요
▶ 클래스를 실체화해
- 정보와 행위를 작성한 클래스를 실체화해서 프로그램에 로딩해요 (메모리에 적재)
- 정보가 행위가 그대로 로딩되는것이 아니라 위치정보를 메모리에 로딩해요
- 프로그램은 객체의 위치정보를 변수에 저장해두고, 필요할 때 참조해요
ex) Character 클래스를 객체화해서 여러가지 캐릭터를 만들어요
출처 : 내배캠 강의자료
'Today I learned > 용어정리' 카테고리의 다른 글
초기화란? (0) | 2024.03.07 |
---|---|
문법 종합반 3주차 - (2) (0) | 2024.03.06 |
프로퍼티와 메서드 (0) | 2024.03.06 |
기본 타입 (2) | 2024.03.05 |
TIL - 특강 (0) | 2024.02.29 |