기술공부 167

안드로이드란?

1. 정의 - Google 이 제작한 스마트폰 OS. - 공식언어는 Kotlin 으로 사용하고 있다. 2. 특징 - 애플리케이션 프레임워크 - ART 가상머신 ( 단말기에 설치할 때 기계어로 번역되고, 실행할 땐 기계어로 실행된다.) - OPEN GL로 3D그래픽 지원 (보통 C++로 그래픽스를 구현하지만 안드로이드에는 OpenGL로 할 수 있도록 지원한다.) - SQLite 데이터베이스 - Android Studio IDE 제공 - 상위버전 OS에서 개발해도 하위버전 OS에 지원할 수 있게 라이브러리가 제공된다. - Android 8.0 기준으로 작성됨. 3. Backwards Compatibility (AppCompat)(?) - 새로운 UI요소를 OS 버전과 상관없이 쓸 수 있도록하는것. - 어플리..

코틀린 - 코틀린 컬렉션

/* 강의 1-19. 코틀린 컬렉션 여러 데이터를 효율적으로 관리하기 위해 자료구조에 나오는 다양한 기법들을 클래스로 만들어 제공. 자바와 다르게 컬렉션의 종류를 단순화 시켰다. 1. List -순서를 갖고 객체를 관리하는 컬렉션 -크기를 관리하지않고 계속 객체를 추가할 수 있다. -생성 시 관리할 객체를 정해줘야 하며 생성이후에는 관리하는 객체를 가져다 쓰는 것만 가능하고 추가, 삭제 등의 수정 작업은 불가능하다. - 배열 쓰듯이 사용하면 된다. - get, indexOf(값), subList 2. MutableList -List를 상속하고 있으며 수정 작업이 가능하다. 3. Set - 중복되지 않게 객체를 관리하는 컬렉션 - 자체적으로 객체를 가져오진 못하여 Iterator 라는 컬렉션을 이용해야 한..

Deperecated/Kotlin 2020.02.05

코틀린 - 배열

/* 강의 1-19. 배열 코틀린은 배열을 객체로 취급한다. 1.arrayOf 로 배열 생성 2.Array(사이즈, 넣을 값)으로 생성 ---관련 메서드---- 1. size : 배열의 갯수를 파악 2. get(인덱스번호) : 인덱스에 있는 값을 가져옴 3. set(인덱스번호, 값) : 값 지정 4. copyOf(사이즈) : 사이즈 만큼 배열 값 복제 5. copyOfRange(시작, 끝) : 범위를 지정해 배열 값 복제 6. sortedArray() : 오름차순으로 정렬 7. reversedArray() : 배열 순서를 뒤집음. */ fun main(args : Array) { var array1 = arrayOf(10,20,30,40); println("array1 =" + array1[1]); fo..

Deperecated/Kotlin 2020.02.05

코틀린 - 오브젝트

/* 강의 1-19. object 주로 익명 중첩 클래스를 사용할 때 쓰이게 된다. object는 클래스를 만드는 키워드가 아닌 클래스 없이 객체를 생성할 때 사용하는 키워드 이다. object는 이름이 없는 클래스를 만드는 것이 아닌 클래스 없이 객체를 생성할 때 사용한다. ---익명 객체--- 클래스 없이 바로 객체를 생성하는 개념 클래스가 없으므로 동일 타입의 객체를 생성하지는 못한다. --추상 클래스, 인터페이스--- 추상클래스를 상속받거나 인터페이스를 구현한 객체를 만들 때도 사용할 수 있다. --- object 정의 ---- object 키워드로 객체를 정의하면 바로 객체가 만들어지게 되며 객체의 이름을 통해 멤버에 접근할 수 있다. java에서의 static과 비슷한 개념이다. --- 팩토리..

Deperecated/Kotlin 2020.02.05

코틀린 - 중첩 클래스

1. 개념 - inner 키워드를 사용해 클래스 안에 클래스 생성 가능. 2. 익명 중첩 클래스 - 추상 클래스나 인터페이스에 정의된 메서드를 Overriding 하여 사용하고자 할 때 상속을 받은 클래스를 만들지 않고자 할 때 사용한다. - 주로 메서드의 매개변수로 객체를 넘길 때 사용한다. 추상 클래스나 인터페이스로는 객체를 만들 수 없으니까 이걸 사용한다. - 오버라이딩 할 함수가 1개 라면 람다식을 이용하는게 편하지만, 2개 이상일 땐 익명 중첩 클래스를 이용해야 한다. fun main(args : Array) { var t1 = TestClass2(); test_method3(t1); //익명 중첩 클래스 test_method3(object : TestClass() { override fun t..

Deperecated/Kotlin 2020.02.05

코틀린 - 제네릭

1. 개념 - 매개 변수나 반환 타입을 유동적으로 할 때 사용하는 개념. fun main(args : Array) { // 객체 생성할 때 전달해주는 타입으로 타입이 정해짐. var t1 = TestClass1() t1.testmethod1("문자열1"); var t2 = TestClass1(); t2.testmethod1(100); var t3 = TestClass2("초기화"); t3.test("문자열"); println(t3.value1); var t4 = TestClass3() t4.test2(100, "안녕"); } class TestClass1 { fun testmethod1(a1 : T) { println("a1:" + a1); } } // 생성자를 이용해서 타입 결정 class TestCl..

Deperecated/Kotlin 2020.02.05

코틀린 - 클래스

1. Init 블록 - 통하지 않고도 init {} 이라는 블록을 통해 클래스가 생성되자마자 자동으로 처리해야할 코드를 만들 수 있다. class TestClass1 { Init() { println("지금 실행되었다!"); } } 2. 생성자 - Class 선언 시 뒤에 constructor을 붙여서 만들거나, 추가 생성자를 만들 수 있다. - 코틀린의 생성자의 의미는 클래스 생성 시 매개변수를 받아 멤버변수의 값을 초기화하는 의미 이다. - 추가 생성자는 반드시 뒤에 this를 붙여서 기본 생성자를 초기화(?) 시켜줘야한다. fun main(args : Array) { var t1 = TestClass1(10, 400); println(t1.a1); } //기본 생성자 class TestClass1 ..

Deperecated/Kotlin 2020.02.05

코틀린 - 조건문, 분기문, 반복문

1. 조건문 코틀린에서 추가된 것 = in 연산자와 범위 연산자로 조건식 간략하게 만들기 1-1. in 연산자& .. 연산자(범위) 변수 이름 in 시작값..마지막값 else if ( score >= 80.0 && score 4 ,5 -> else -> } when(a2) { 33.33 -> 55.55 -> } when(a3) { "문자열" -> "문자열 2" -> "문자열 3", "문자열 4" -> else -> } when(a4) { in 1..3 -> in 4..6 -> !in 1..6 -> else -> } when(a5) { is String -> is Boolean -> } 4. when절로 함수의 매개변수의 초기화를 할 수도 있다. var a7 = f1(1) var a8 = f1(2); va..

Deperecated/Kotlin 2020.02.05