목록Computer/Kotlin (43)
안드로이드 개발자의 창고
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 FileOutputStream 프로그램에서 파일로 데이터를 전송할 때 사용하는 스트림이다. 데이터를 보내고자 하는 파일이 없으면 자동으로 생성된다. ✔️ 주요 메서드 생성자(파일이름) : 파일 이름의 파일을 열고 출력 스트림을 추출한다. 이 때 데이터를 덮어 씌워진다. 생성자(파일이름, boolean) : 파일이름의 파일을 열고 출력 스트림을 추출한다. 이 때 boolean 값을 true로 주면 쓰고자하는 내용이 뒤에 추가가 된다. write : 바이트 형태의 데이터를 파일로 쓴다. close : 스트림을 닫는다. flush : 메모리에 남겨진 데이터를 모두 송출한다. 📖 FileInputStream 파일의 데이터를 수신할 때 사용하는 스트림..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 스레드(Thread) 스레드(Thread)란? 쓰레드는 동시에 여러 개의 작업을 하고 싶을 때 사용하는 개념 스레드(Thread) 사용방법 Thread 클래스 상속 : start 메서드를 상속 받았기 때문에 객체 생성하고 start를 호출한다. Runnable 인터페이스 구현 : start 메서드가 없기 때문에 Thread 클래스의 객체를 생성하여 이를 통해 가동한다. Thread 고차 함수 사용 run 메서드에 들어갈 코드(스레드로 처리될 코드)를 익명함수나 람다식으로 작성해서 넣으면 해당 코드를 스레드로 운영해준다. start도 자동으로 호출하기 때문에 개발자가 명시적으로 호출하지 않아도 된다. 📖 예제 코드 ✔️ Thread 클래스 상속..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 예외처리 예외 프로그램 실행 중 예측이 가능한 오류들을 예외라고 부른다. 예외가 발생하면 코드의 수행이 중단된다. 예외 처리는 예외가 발생했을 때 프로그램이 수행되는 것을 막고 예외 발생 시 동작해야 하는 코드를 수행시켜 프로그램이 문제없이 동작하게 하기 위한 목적을 가지고 있다. 예외 처리 기본 코드 try{ 예외가 발생할 가능성이 있는 코드 }catch (e:예외클래스) { 예외가 발생했을 때 수행할 코드 }finally { 예외 발생 여부에 관계없이 수행해야 하는 코드 } 📖 예제 코드 fun main() { try { val a1 = 10 / 0 // val str:String? = null // println(str!!.length)..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Map 객체를 이름을 통해 관리하는 컬렉션 map은 순서 개념이 없다. 메모리에 저장할 때 순차적으로 저장되어 출력해보면 그대로 출력되지만 사용할 때 인덱스의 개념이 없기 때문에 순서의 개념이 없다고 정의한다. 📖 예제 코드 1. Map 생성 fun main(){ val map1 = mapOf("key1" to 10, "key2" to 20, "key3" to 30) println("map1 : $map1") // {key1=10, key2=20, key3=30} val map2 = mapOf(10 to "str1", 20 to "str2", 30 to "str3") println("map2 : $map2") // {10=str1, 20=st..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Set 1. Set이란? 객체를 이름이나 순서 등으로 관리하는 주체가 없는 컬렉션이다. 중복된 객체를 담을 수 없다. 순서에 관계 없고 중복된 객체를 담지 않을 경우 사용한다. 2. Set의 메서드 setOf() mutableSetOf() size : 관리하는 요소의 개수 add() remove() toSet() toMutableSet() toList() toMutableList() 📖 예제 코드 1. Set 생성 fun main(){ val set1 = setOf(10, 20, 30, 10, 20, 30) // [10, 20, 30] val set2 = mutableSetOf(10, 20, 30, 10, 20, 30) // [10, 20, ..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Collection 자료구조에 나오는 다양한 데이터 관리 기법을 사용할 수 있도록 제공하고 있는 라이브러리 List : 순서를 통해 관리한다. Map : 이름을 통해 관리한다. Set : 집합 관리 📖 List 배열과 동일하게 인덱스 번호를 통해 객체를 관리한다. 배열을 크기가 정해지면 변경할 수 없지만 List는 추가, 삭제 등이 가능하다. 📖 예제 코드 리스트 생성 fun main(){ val list1 = listOf(10, 20, 30, 40, 50) val list2 = listOf(100, 11.11, "문자열", true) val list3 = mutableListOf() // [] val list4 = mutableListOf(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWxmoE/btshar1mLRs/HSr3k2UcxUv0RUVJkH6sJK/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 String " " 로 묶어서 관리하는 문자열을 의미한다. Kotlin은 문자열을 Java에 동일하게 String 클래스의 객체를 생성해서 관리한다. Java와 거의 동일하게 제공되며 몇가지 메서드를 추가하였다. Kotlin은 문자열을 배열 형태로 관리한다. 문자열의 글자를 0부터 시작하는 인덱스 번호로 관리할 수 있어 Java 보다 편리하게 사용할 수 있다. 문자열은 불변형으로 가져다 사용하는 것만 가능하다. 제공 메서드 compareTo : 문자열을 비교하여 같으면 0, 음수나 양수면 다른 문자열이다. 두 번째 값으로 true를 넣어주면 대소문자를 무시하고 비교한다. split : 문자열을 지정된 구분자를 이용해 잘라낸다. substrin..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 배열(Arrray) 연속된 기억공간을 확보하여 값 들을 저장하고 관리하는 자료 구조를 의미한다. 배열은 0 부터 시작되는 인덱스 번호로 관리한다. Kotlin에서는 다양한 타입의 값을 배열에 담을 수 있으며 한 가지 타입으로 제한하여 값을 담을 수도 있다. 📖 예제 코드 arrayOf()를 이용한 배열 생성 fun main() { val array1 = arrayOf(10, 20, 30, 40, 50) println("array1 : $array1") // array1의 ID 값 println("array1 : ${array1.contentToString()}") // [10, 20, 30, 40, 50] var array2 = arrayOf..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 리플렉션 프로그램 실행 중에 프로그램의 구조(객체, 함수, 프로퍼티)를 분석하는 기법 객체의 클래스 타입, 클래스 정보, 생성자 정보, 프로퍼티 정보 등을 실행 중에 파악할 수 있다. 📖 예제 코드 객체를 생성할 TestClass class TestClass(var number1:Int, var number2:Int, var number3:Int){ var number4:Int = 0 var number5:Int = 0 constructor(a1:Int) : this(100, 200, 300) constructor(a1:Int, a2:Int) : this(100, 200, 300) fun testMethod1(){ } fun testMetho..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Infix 함수 함수를 연산자처럼 사용할 수 있는 함수이다. 값1 함수이름 값2 형태로 호출한다. 값1 객체를 통해 함수를 호출하고 매개변수로 값2를 전달한다. infix fun 값1의 타입.함수이름(값2를 담을 매개변수) : 반환타입 📖 예제 코드 fun main() { val v1 = 100 val r1 = v1.add2(50) println("r1 : $r1") // 150 var r2 = v1 add2 50 println("r2 : $r2") // 150 var obj1 = TestClass1() var obj2 = TestClass1() obj1.number1 = 100 obj2.number1 = 200 val r3 = obj1 ad..