Android

    [코틀린 인 액션] 4장 정리

    4.1.4 내부 클래스와 중첩된 클래스 1. 클래스 A 안에 정의된 클래스 A는 중첩 클래스 - 내부 클래스 선언을 위해서는 inner 키워드 사용 class Outer { private val bar: Int = 1 class Nested { fun foo() = 3 } inner class Inner() { fun foo() = bar } } val demo = Outer.Nested().foo() val demo2 = Outer().Inner().foo() 2. Nested 클래스는 Outer 클래스의 내부 클래스가 아니므로 프로퍼티에 접근 불가능 class Outer { private val bar: Int = 1 class Nested { fun foo() = bar // ERROR } inne..

    [코틀린 인 액션] 3장 정리

    3.4.2 가변 인자 함수 1. 인자의 개수가 정해지지 않은 인자(vararg)로 메서드 호출 시 원하는 개수만큼 값을 인자로 넘겨 사용 가능 fun main(args: Array) { val ls = arrayOf(1,2,3) val ls2 = arrayOf(*ls,4,5,6) printNumbers(*ls2.toIntArray()) } fun printNumbers(vararg numbers: Int) { for (n in numbers) { println(n) } } 2. 스프레드 연산자(*)를 통해 배열을 풀어 각 원소가 인자로 전달되도록 함 fun main(args: Array) { val ls = intArrayOf(1,2,3) printNumbers(*ls) } fun printNumbers..

    [코틀린 인 액션] 2장 정리

    2.1.3 변수 기본적으로 모든 변수를 val 키워드를 사용해 불변 변수로 선언할 것, 나중에 꼭 필요할 때만 var로 변경 초기화 식을 사용하지 않고 변수를 선언하려면 변수 타입을 명시 val answer: Int answer = 42 3. val 참조 객체는 불변일지라도 그 참조가 가르키는 객체의 내부 값은 변경될 수 있음 val languages = arrayListOf("Java") languages.add("Kotlin") 2.2.2 커스텀 접근자 1. 프로퍼티 게터 선언을 통해 클라이언트가 프로퍼티에 접근할 때마다 게터가 프로퍼티 값을 매번 다시 계산 fun main(args: Array) { val rect = Rectangle(3,3) val rect2 = Rectangle(3,5) pri..

    [우아한테크코스 5기 프리코스] 안드로이드 4주 차 회고록

    드디어 마지막 미션입니다. 마지막 미션은 다리 건너기입니다. 요구 사항은 다음과 같습니다. 기능 요구 사항 위아래 둘 중 하나의 칸만 건널 수 있는 다리를 끝까지 건너가는 게임이다. 위아래 두 칸으로 이루어진 다리를 건너야 한다. 다리는 왼쪽에서 오른쪽으로 건너야 한다. 위아래 둘 중 하나의 칸만 건널 수 있다. 다리의 길이를 숫자로 입력받고 생성한다. 다리를 생성할 때 위 칸과 아래 칸 중 건널 수 있는 칸은 0과 1 중 무작위 값을 이용해서 정한다. 위 칸을 건널 수 있는 경우 U, 아래 칸을 건널 수 있는 경우 D값으로 나타낸다. 무작위 값이 0인 경우 아래 칸, 1인 경우 위 칸이 건널 수 있는 칸이 된다. 다리가 생성되면 플레이어가 이동할 칸을 선택한다. 이동할 때 위 칸은 대문자 U, 아래 칸..

    [우아한테크코스 5기 프리코스] 안드로이드 3주차 회고록

    이번 주 차 미션은 로또였습니다. 한 번도 사본적 없는 로또를 미션을 하면서 처음 구매해보네요. 기능 요구 사항은 다음과 같습니다. 기능 요구 사항 로또 게임 기능을 구현해야 한다. 로또 게임은 아래와 같은 규칙으로 진행된다. - 로또 번호의 숫자 범위는 1~45까지이다. - 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다. - 당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다. - 당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다. - 1등: 6개 번호 일치 / 2,000,000,000원 - 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원 - 3등: 5개 번호 일치 / 1,500,000원 - 4등: 4개 번호 일치 / 50,000원 - ..

    [우아한테크코스 5기 프리코스] 안드로이드 2주차 회고록

    안드로이드 분야의 2주 차 미션은 숫자 야구 게임이었습니다. 기능 요구 사항은 다음과 같습니다. 기능 요구 사항 기본적으로 1부터 9까지 서로 다른 수고 이루어진 3자리의 수를 맞추는 게임이다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다. 예) 상대방(컴퓨터)의 수가 425일 때 123을 제시한 경우 : 1스트라이크 456을 제시한 경우 : 1볼 1스트라이크 789를 제시한 경우 : 낫싱 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 서로 다른 3개의 숫자를 입..

    [우아한테크코스 5기 프리코스] 안드로이드 1주차 회고록

    우아한테크코스가 이번 기수부터 안드로이드 분야가 추가되었고, 사전에 코딩 테스트 없이 4주간의 프리코스를 진행할 수 있다고 해서 신청해보았습니다. 1주 차 미션은 출제된 7문제를 풀어 제출하는 것이었습니다. 특정 알고리즘을 알아야 풀 수 있는 문제가 아니었으며, 문법과 메서드를 잘 활용하면 풀 수 있는 문제로 구성되어 있었습니다. 코딩 테스트처럼 초반 문제는 비교적 쉬운 난이도였고, 뒤로 갈수록 생각해보아야 할 문제가 많았습니다. 저는 코딩테스트를 파이썬으로 준비하다 보니 코틀린으로 코드를 작성하기 위해서는 공부해야 할 것이 많았습니다. 당장에 for문과 리스트부터 코틀린에서는 어떻게 쓰나 찾아보아야 했습니다. 문법을 찾아보느라 초반 문제에서는 시간이 조금 걸렸지만 문법에 익숙해지니 점차 나아졌습니다. ..