내일배움캠프 14일차

김재현·2024년 3월 15일

프로젝트를 진행하면서 클래스의 상속과 추상클래스, 배열, 컬렉션에 관해 지식이 부족한것 같아 공부했습니다.

클래스의 상속

  • 클래스 간의 상속을 통해 하위 클래스가 상위 클래스의 모든 속성과 메서드를 포함하거나 상속받습니다. 이를 통해 코드를 재사용할 수 있어 프로그램을 더 쉽게 파악하고 유지할 수 있습니다.


[출처:https://developer.android.com/codelabs/basic-android-kotlin-training-classes-and-inheritance?hl=ko#1 ]

  • 여기서 EditText와 Button 클래스는 TextView와 View 클래스의 모든 속성과 메서드를 상속받고 각 클래스의 고유의 로직도 추가가 가능합니다.

  • 클래스를 상속할때는 open 키워드를 통해 클래스를 열어주어야 상속이 가능합니다.

추상 클래스

  • 추상 클래스는 직접 인스턴스화 할 수 없고 다른 클래스의 상위 클래스 역할만 할 수 있다.

  • 추상 클래스는 abstract로 선언되고 abstract 멤버는 클래스 내에서 아무런 구현이 없다.

  • 추상 메서드는 반드시 override 해야 하고 일반 상속과 마찬가지로 open 키워드도 명시해야한다.

  • 인터페이스와 많이 비교가 되는데 인터페이스는 메서드나 프로퍼티를 포함하고 추상 클래스와는 다르게 자체적인 인스턴스 상태나 생성자를 만들 수는 없다.

배열

  • 배열의 가장 큰 목적은 변수에 순서를 매겨 활용할 수 있고 연속적으로 활용할 수 있다.

  • 배열을 사용하기 위해 arrayOf 메소드를 사용한다.

var arr = arrayOf(1,2,3,4,5)
  • 다음은 arr이라는 배열인데 1~5까지의 번호가 변수 5개의 배열형태로 arr에 저장되었다.

  • println(arr[0])을 입력하면 배열의 1번째 인덱스가 출력된다. 해당 배열의 첫번째 인덱스는 1번이기 때문에 출력해보면 1번이 출력될것이다.

  • 배열은 변수들을 각각 선언하기보다 같은 자료형의 변수들을 묶어 효율적으로 코드를 작성할 수 있게 해줍니다.

컬렉션

  • 컬렉션에는 List, Map, Set 이렇게 3가지가 있다.

List

  • 리스트는 읽기전용(listOf)와 수정가능한 종류(mutableListOf)로 구분가능하고 배열과는 다르게 크기가 정해져있지 않아 동적으로 값을 추가할 수 있다.

  • 수정가능한 리스트에는 ArrayList<자료형>(값1, 값2, 값3)도 있다. 저장할 자료형을 <>안에 지정해야 사용할 수 있다.

Map

  • 맵은 키와 값의 쌍으로 이루어진 자료형으로 읽기전용(mapOf)과 수정가능한 종류(mutableMapOf)가 있다.

  • 맵은 var score = mapOf("key" to "value")와 같은 형태로 이루어져있고 key와 value 동시에 추출해서 사용할 수 있다.

Set

  • 셋은 순서가 없고 중복없이 데이터를 관리하는 집합 자료형이다. 마찬가지로 읽기전용(setOf)와 수정가능한 종류(mutableSetOf)로 두 종류가 있다.

  • 다른 컬렉션들은 요소를 찾을 수 있지만 set은 요소가 존재하는지에 집중한다.
    .
    .
    .
    .
    .

  • 오늘은 과제를 진행하면서 모자랐던 부분을 공부해봤는데 역시 보는 것보다는 직접 사용해보면서

    형태와 쓰임새를 알아보는게 제일 좋은 것 같다. 주말동안은 과제 보완을 해봐야겠다.

하루의 마무리

  • 오늘은 몸이 좀 안좋아서 좀 집중을 못한거 같은데 주말 이용해서 과제 보완하고 추가 공부 하면서 좀

    바쁘게 보내야겠다. 다음 주도 화이팅!

0개의 댓글