문법 종합반 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