전체 글 59

[Android] TIL 17일차

심화 과제 : 키오스크 문제 : 실행 시 메뉴판을 보여주고 메뉴 번호를 입력 시 해당 메뉴의 세부 종류들을 보여주는 키오스크를 만들 것 * main 메소드 코드fun main(){ var mainmenu = Menu() var burger = Burgers() var ice = IceCream() var beverage = Drink() println("${mainmenu.menu()}") while (true) { print("원하는 종류를 선택하세요 : ") var number1 = readLine()!! if(number1=="0") { println("프로그램을 종료합니다.") break ..

[Android] TIL 16일차

유용한 기능 * 일반 자료형간의 변환숫자 자료형끼리는 to자료형() 메소드를 활용문자열을 숫자로 변경할때에는 별도의 메소드가 필요ㄴ 정수 형태의 문자열을 정수로 변경할때는 Integer.parseInt(변수명), 실수 형태의 문자열을 실수로 변경할때는 변수명.toDouble() * 일반 자료형 예제 var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) var num6 = strNum6.toDouble() println("num3:..

[Android] TIL 15일차

컬렉션 * 컬렉션 : 리스트, 맵, 집합 자료구조 세 가지 종류가 있음 * List리스트는 읽기 전용과 수정 가능한 종류로 구분 배열과 달리 크기가 정해져있지 않아 동적으로 값 추가 가능읽기 전용은 listOf 키워드를 활용수정 가능한 종류는 mutablelistOf(값1, 값2, 값3)와 ArrayList(값1, 값2, 값3) 키워드를 활용  수정 가능한 종류 중 배열 형태로 차곡차곡 저장하는 ArrayList 키워드 활용을 더 많이함 * List 구조var scores1 = listOf(값1, 값2, 값3)var scores2 = mutableListOf(값1, 값2, 값3)scores2.set(인덱스, 값)// 저장할 데이터의 자료형을 안에 지정해야 사용할 수 있어요var scores3 = Arr..

나머지가 1이 되는 수 찾기

코드카타 : 나머지가 1이 되는 수 찾기 * return 위치에 따른 반환 차이 * 예제1fun main() { print("숫자를 입력하세요 : ") var number = readLine()!!.toInt() var result = Solution() println("${result.solution(number)}")}class Solution { fun solution(n: Int): Int { var answer: Int = 0 var x: Int = 0 for(x in 2..n-1){ if(n%x==1) answer = x } return answer }} * 출..

[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 9일차

오늘은 Git 특강 내용을 복습하면서 내가 이해한 대로 내용을 정리해 보았다. 1. 필수 리눅스 명령어 pwd(print working directory) : 내가 작업하는 폴더를 보여달라는 뜻  ls(list) : 내 폴더 안의 폴더와 파일을 전부 보여주는 것 ls -a : 숨겨진 파일까지 다 보여주는 것 * 참고로 보통 숨겨진 파일들은.으로 시작한다   cd 폴더명 (change directory)- ls 명령어에서 확인된 폴더로 이동 가능- 폴더 안에 있는 다른 폴더로도 이동 가능함- 폴더명/폴더명으로 한 번에 더 깊이 들어갈 수 있음  * cd .. 을 입력할 시 해당 단계보다 한 단계 위의 폴더로 이동 가능함 mkdir 폴더명 (make directory) : 현재 경로에서 폴더를 생성하는 명령..