개발(Android) 78

[Kotlin syntax] Higher-Order Functions, Lambda Functions, Unit

[코틀린 문법] 고차함수와 람다함수와 Unit Higher-Order Function(고차함수) // Higher-order Function(고차함수) // // 일반 함수를 인자나 반환값으로 사용 // 함수를 클래스에서 만들어낸 인스턴스처럼 취급하는 방법 // 함수를 파라미터로 넘겨주거나 결과값으로 반환 받을 수 있음 fun main() { // 일반 인자 val res1 = sum1(3, 2) // 3 + 2 -> 5 println(res1) // 5 // 인자에 함수 사용 val res2 = mul1(sum1(3,3), 3) // (3 + 3) * 3 -> 18 println(res2) // 18 // 함수의 반환값으로 함수 사용 println("funcFunc: ${funcFunc()}") // ..

[Kotlin syntax] Scope, Access Modifier(Public/Internal/Private/Protected)

[코틀린 문법] 스코프와 접근제한자 Scope(스코프) // Scope(범위) // // 언어 차원에서 멤버(변수, 함수, 클래스)를 서로 공유하여 사용할 수 있는 범위를 지정해 둔 단위 // 1. 스코프 외부에서는 스코프 내부의 멤버를 참조연산자로만 참조 가능 // 2. 동일 스코프 내에서는 멤버 공유 가능 // 3. 하위 스코프에서 상위 스코프의 멤버 재정의 가능 // 2. 예시 val a = "패키지 스코프" class B { // 3. 예시 val a = "클래스 스코프" fun print() { println(a) } } fun main() { // 3. 예시 val a = "함수 스코프" println(a) B().print() } Access Modifier(접근제한자) // Access M..

[Kotlin syntax] Overriding, Abstract Class, Interface

[코틀린 문법] 오버라이딩, 추상 클래스, 인터페이스 Overriding(오버라이딩) // Overriding(오버라이딩) // // 기본적으로 서브 클래스에서는 수퍼 클래스와 동일한 함수를 만들 수 없으나 // -> 오버라이딩 -> 부모클래스의 메소드를 자식클래스에서 재정의 및 사용 가능 // 이미 구현이 끝난 함수를 서브 클래스에서 변경해야 할 때 사용 fun main() { var t = Tiger() t.eat() // 오버라이딩 전 // 음식을 먹습니다 // 오버라이딩 후 // 고기를 먹습니다 } // 수퍼 클래스 내 함수 앞에 open 붙이고 open class Animal2 { open fun eat() { println("음식을 먹습니다") } } class Tiger : Animal2()..

[Kotlin syntax] Class

[코틀린 문법] 클래스 // Class(클래스) // // 인스턴스를 만드는 틀 // Instance(인스턴스) // // 클래스를 이용해 만들어내는 서로 다른 속성의 객체 // 클래스 == 값(속성) + 기능(함수) // 함수 == 기능 fun main() { var bts = Singer("정국", 1997) var txt = Singer("연준", 1999) println("안녕하세요, ${bts.birthYear}년생 ${bts.name}입니다.") println("안녕하세요, ${txt.birthYear}년생 ${txt.name}입니다.") // 안녕하세요, 1997년생 정국입니다. // 안녕하세요, 1999년생 연준입니다. } // 클래스 속성(생성자) 선언 class Singer (var n..

[Kotlin syntax] Break, Continue, Logical Operators

[코틀린 문법] 흐름제어와 논리연산자 흐름제어 // break // // 반복문 종료 -> 다음 구문으로 넘어감 for (n in 11..20) { if(n == 13) break // n == 11 -> 11 출력 // n == 12 -> 12 출력 // n == 13 -> 종료 println(n) } // 11 // 12 // continue // // 다음 반복 조건으로 넘어감 for (o in 11..20) { if(o == 13) continue // o == 11 -> 11 출력 // o == 12 -> 12 출력 // o == 13 -> 14로 넘어감 println(o) } // 11 // 12 // 14 // 15 // 16 // 17 // 18 // 19 // 20 // 다중 반복문에서 ..

[Kotlin syntax] While, Do While, For, Increment Operators, Decrement Operators

[코틀린 문법] 반복문과 증감연산자 While, Do While(조건형 반복문) // 조건형 반복문 // // 조건이 참인 경우(즉 변수가 false 될 때까지) 반복 유지 // 변수가 false 될 때까지 // while, do...while // while // // a는 0부터 시작 var a = 0 // a가 3보다 작으면 해당 구문 반복 while (a < 3) { // a는 1씩 증가 println(++a) } // 1

[Kotlin syntax] Conditional expressions(If, When), Comparison Operators

[코틀린 문법] 조건식과 비교연산자 If // If Expression(If 표현식) // // 참/거짓 판별 var a = 3 var b = 5 var aIsBigger = false // if -> 조건을 만족할 때 if (a > b) { // a가 b보다 크면 true 출력 aIsBigger = true // else -> 조건을 만족하지 못할 때 } else { // a가 b보다 크지 않으면 false 출력 aIsBigger = false } println(aIsBigger) // false // 변수 설정 val aIsBigger2 = if (a > b) { true } else { false } println(aIsBigger2) // false // 실행할 구문이 하나라면 // 이렇게 축약 ..

[Kotlin syntax] Type Inference, Functions, Arithmetic Operators

[코틀린 문법] 타입추론과 함수 Type Inference(타입 추론) // 코틀린은 똑똑하기 때문에 알아서 자료형(변수 타입)을 때려맞춤 // -> 정수는 Int, 실수는 Double이 기본값 // -> 자료형을 코드에 명시하지 않아도 됨 // (Byte, Short 등을 사용하려면 자료형을 명시하면 됨) var apple = 1234 // var apple: Int = 1234 // 기본적으로 정수는 Int형으로 추론 var banana = 1234L // var apple: Long = 1234L // 정수에 L 붙어있으면 Long형으로 추론 var cherry = 12.45 // var apple: Double = 12.45 // 기본적으로 실수는 Double형으로 추론 var dragonFrui..

[Kotlin syntax] Type Casting, Arrays

[코틀린 문법] 형변환과 배열 Type Casting(형변환) // Type Casting(형변환) // // 자료형을 변경하는 기능 // 논리형은 형변환 불가능 // Explicit Type Casting(명시적 형변환) // -> 코틀린에서 사용하는 형변환 // 변환될 자료형을 개발자가 직접 지정함 // Implicit Type Casting(암시적/묵시적 형변환) // -> 코틀린에서 지원 안 함 // 자료형 지정하지 않아도 변수 할당시 자동으로 형변환됨 var a: Int = 321 var b: Long = a.toLong() // var b: Long = a // Kotlin: Type mismatch: inferred type is Int but Long was expected // a는 In..

[Kotlin syntax] Variables, Data Types

[코틀린 문법] 변수와 자료형 Variable(변수) - 값을 저장하는 메모리 공간 // Declaration of a Variable(변수 선언) // // var 변수명: 변수타입 = 변수값 // 이런 형태로 작성 var greeting: String = "Hello World!" // : String 생략해도 OK // (자세한 내용은 자료형에서 추가 설명) var greeting2 = "Hello World!" // 변수를 초기화 할 때는 var 필수 // -> 값 수정할 때는 var를 생략 var greeting3 = "Hello World!" greeting3 = "Hello Kotlin!" // 변수명은 camelCase(카멜표기법)으로 작성 // -> 아래와 같이 띄어쓰기를 대문자로 대체함..

[Android Studio] Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.7351085', please retry with version 2021.1.1 or newer.

[안드로이드 스튜디오] 프로젝트 버전 또는 그래들 버전 충돌 문제 Gradle sync failed: Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.7351085', please retry with version 2021.1.1 or newer. (16 s 319 ms) Android Studio is using the following JDK location when running Gradle: C:\Program Files\Android\Android Studio\jre Using different JDK locations on different processes might..

[Android Studio] java.lang.RuntimeException: Unable to start activity ComponentInfo{패키지명/패키지명.MainActivity}: android.view.InflateException: Binary XML file line #숫자: Error inflating class ImageView

[안드로이드 스튜디오] 실행 예외(코드에 문제가 없다면 안드로이드 스튜디오 자체 에러일 가능성이 높음) 문제 02/12 20:12:25: Launching 'app' on test device. Install successfully finished in 3 s 183 ms. $ adb shell am start -n "com.shinyelee.myfirstfile/com.shinyelee.myfirstfile.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Connected to process 4490 on device 'test_device [emulator-5554]'. Capturing and displa..

[Android Studio] Missing Constraint in ConstraintLayout

[안드로이드 스튜디오] 컨스트레인트 레이아웃 설정 오류 문제 Missing Constraints in ConstraintLayout This view is not constrained. It only has designtime positions, so it will jump to (0,0) at runtime unless you add the constraints The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as layout_editor_absoluteX). These attributes are not ..

반응형