Kotlin 28

[Android] TIL 14일차

접근 제한자 접근 제한자란? : 변수나 메소드의 접근을 제한접근이란? : 객체를 이용해서 변수나 메소드를 호출할 수 있는지의 여부 프로젝트: 최상단 개념이고 모듈, 패키지, 클래스를 포함모듈 : 프로젝트 아래의 개념이고 패키지, 클래스를 포함패키지 : 모듈 아래의 개념이고 클래스를 포함 public: 명시하지 않으면 기본적으로 public(어디서나 접근 가능)private: 동일한 클래스 내부에서만 접근 가능internal: 같은 모듈 내부에서만 접근 가능protected: 기본적으로 private이지만 상속을 받은 경우에 타 모듈에서 접근 가능   예외 처리의 활용* 예외 처리의 활용 : 프로그램 실행도중에 발생하는 예외를 적절하게 처리하기 위함프로그램을 실행하기 전에 알 수 있는 컴파일 에러를 오류라..

[Android] TIL 13일차

계산기 만들기Lv.1  더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들고, 클래스를 이용하여 연산을 진행하고 출력하기 * 첫 번째 작성 코드package com.example.myproject1fun main(){ print("첫 번째 숫자를 입력하세요 : ") var number1 = readLine()!!.toInt() print("두 번째 숫자를 입력하세요 : ") var number2 = readLine()!!.toInt() var test = Calculator(number1,number2) println("number1 + number2 = ${test.plusResult}") println("number1 - nu..

[Android] TIL 12일차

인터페이스* 인터페이스코틀린은 반드시 부모 클래스는 한 개라서 모두 상속으로 처리할 수 없음-> 따라서 근본적인 공통점을 상속받고, 추가적인 기능들은 인터페이스로 추가-> 코틀린은 인터페이스를 만들기 위해 interface 키워드를 사용 인터페이스는 추상메소드만 허용(최근에는 추상메소드가 아니어도 괜찮지만 그래도 추상메소드 위주로 작성할 것)(추상메소드란? : 메소드 안에 로직이 없고 메소드 이름만 있는 것) * 인터페이스 구조interface 인터페이스이름 { fun 메소드이름()} * 인터페이스 예제interface WaterBirdBehavior { fun swim()}fun main() { var bird = Bird("새") var chicken = Chicken("닭") ..

[Android] TIL 11일차

메소드 설계 * 메소드 설계- 특정한 로직을 가지는 소스코드에 별명(이름)을 붙일 수 있음- 이름이 붙은 로직을 메소드라고 칭함 메소드 사용 이유- 로직을 추상화해 놓고 상황에 맞게 실행할 수 있음- 코드의 재사용성을 높임  * 메소드 구조fun 메소드이름(변수명:자료형, 변수명:자료형 ....) : 반환자료형 { 소스코드 로직}-> fun : function의 약자  * 메소드 예제fun main() { var num1 = readLine()!!.toInt() var num2 = readLine()!!.toInt() // sum이라는 이름의 메소드를 호출! sum(num1, num2)}fun sum(num1:Int, num2:Int) { var result = num1 + ..

[Android] TIL 10일차

강의 1주 차 내용 정리 프로그래밍이란? 프로그램 제작하는 것, 컴퓨터와 소통 사람과 컴퓨터 간의 소통을 목적으로 함, 특정한 목적에 적절하게 사용하기 위해 분야마다 사용하는 언어가 다름 Kotlin : 안드로이드 앱 개발 언어로 채택됨 * Java 단점을 개선함(3가지)자료형(타입)을 꼭 명시하지 않아도 추론할 수 있다.보다 간결하게 코드를 작성할 수 있다.Null 예외를 컴파일 시점에 미리 방지할 수 있어 더욱 안정적인 프로그램을 만들 수 있다-> Null 예외에 대해서 자바보다 코틀린이 더 안전하다 * kotiln 특징JVM언어와 100% 호환되는 프로그래밍 언어입니다.직관적이고 간결한 문법Null처리에 높은 안정성을 가진다.JVM이란? 간단하게 말하면 소스코드를 작성하고 JVM이라는 단계를 거쳐서..

[Android] TIL 8일차

MBTI 테스트 만들기 어제 마무리하지 못한 MBTI 테스트를 마저 작업하였다. 어제 발생한 오류가 어디에서 발생하였는지 감이 잡히지 않아 다시 완전히 지우고 처음부터 강의 순서대로 천천히 진행하면서 중간중간 Build를 계속해줘서 틀린 부분이 없는지 계속 확인하였다. 이렇게 작업한 결과 결과화면인 ResultActivity 작업 전까지 오류 발생없이 제대로 작동되는 걸 확인할 수 있었다. 그렇게 마지막으로 ResultActivity 부분까지 작업하고 실행했더니 결과 화면이 출력되지 않고 keeps stopping이라는 문구가 뜨게 되었다. 어제와 달리 Build 부분에서 오류가 발생하지 않았고 ResultActivity 작업 전까지 문제 없이 출력되었기에 많이 당황스러웠다. 오류도 안뜨는데 처음부터 다..

[Android] TIL 7일차

원래 MBTI 앱 만들기를 끝내려고 했는데 코드양이 많아서 따라쓰기 힘들어서 그런지 오류가 많이 발생하여 완성하지 못했다. 오류를 해결하려는 조급한 마음에 제대로 공부하지 못했다.. 대신 나름대로 오류 원인 분석이랑 해결하려고 했던 방법들을 TIL에 적어보려고 한다.  [오류 원인 분석 1번]단순 오타 : 1주차에도 오타로 인해 몇 시간 동안 완성하지 못한 적이 있어서 가장 유력한 원인으로 꼽았다. [해결방법]작성했던 모든 코드들을 다시 재확인하고 실행하였다. 그럼에도 오류가 고쳐지지 않아 MBTI 작성한 Project 자체를 전부 지우고 처음부터 새로 작성하였으나 이 역시 해결되지 않았음.  [오류 원인 분석 2번]API 버전 : 오타를 고치고나서 밑에 문구가 발생하였는데 Pixel 3a API 34 ..

[Android] TIL 6일차

로또 번호 생성기 만들기  private val clearButton by lazy { findViewById(R.id.btn_clear) } private val addButton by lazy { findViewById(R.id.btn_add) } private val runButton by lazy { findViewById(R.id.btn_run) } private val numPick by lazy { findViewById(R.id.np_num) } clearButton by lazy{} : 초기화 버튼(btn_clear) 지정addButton by lazy{} : 번호 추가하기 버튼(btn_add) 지정runButton by lazy{} : 자동 생성 시작 버튼(btn_run) 지정n..