기본적인 뷰 살펴보기 안드로이드는 화면을 구성하는 대 필요한 다양한 뷰 클래스를 제공합니다. 텍스트 뷰(TextView) 문자열을 화면에 출력하는 뷰입니다. android:text : TextView에 출력할 문자열/문자열 리소스 지정합니다. / ex) android:text="Hello World!" android:textColor : 문자열의 색상 지정(16진수 RGB 형식)합니다. / ex) android:textColor="#FF0000" android:textSize : 문자열의 크기 지정(숫자 사용, 단위 생략 불가) , 단위는 px, dp, sp 등을 사용합니다. / ex) android:textSize="20sp" android:textStyle : 문자열의 스타일을 지정, bold, it..
화명을 구성하는 방법 안드로이드 앱의 구조는 컴포넌트를 기반으로 적절하게 조합해서 만듭니다. 여러 컴포넌트가 있지만 화면을 출력하는 컴포넌트는 액티비티뿐입니다. 화면에서 내용을 표시하려면 뷰클래스를 이용해 구성해야 합니다. 뷰로 화면을 구성하는 방법은 두 가지가 있습니다. 액티비티 코드로 작성하는 방법 레이아웃 XML파일로 작성하는 방법 package com.example.testing_project01 import android.graphics.Typeface import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.Gravity import android.view.ViewGroup.Layout..
널 안정성 널(null)이란 객체가 선언되었지만 초기화되지 않은 상태, 주소를 가지지 못한 상태를 의미합니다. val data1: String = "hello" /* "hello"라는 문자열 데이터가 저장된 주소가 대입되며 그주소로 문자열 데이터를 이용합니다 */ val data2: String? = null /* 변수가 선언되었지만 이용할 수 없는 상태 */ 널인 상태의 객체를 이용하면 널 포인트 예외가 발생합니다. 널 안정성이란 널 포인트 예외가 발생하지 않도록 코드를 작성하는 것을 말합니다. fun main(){ var data : String? = null val length = if(data == null){ 0 } else{ data.length } println("data.length:$le..
람다 함수 람다 함수는 코틀린뿐만 아니라 많은 프로그래밍 언어에서 제공하는 익명 함수 정의 기법입니다. 코틀린으로 프로그램을 작성하다 보면 람다 함수를 많이 쓰는데, 이는 코틀린에서 고차 함수를 지원하기 때문입니다. 일반 함수는 fun키워드로 선언합니다. 그렇지만 람다 함수는 fun키워드를 이용하지 않으며 함수 이름이 없습니다. { 매개변수 -> 함수 본문 } 람다 함수는 {} 로 표현합니다. {} 안에 화살표(->)가 있으며 화살표 왼쪽은 매개변수, 오른쪽은 함수 본문입니다. 함수의 반환 값은 함수 본문의 마지막 표현식입니다. val sum = { no1:Int,no2:Int -> no1 + no2 } print(sum(2,5))//7 람다 함수는 이름이 없으므로 함수명으로 호출할 수 없습니다. 그래서..
데이터 클래스 데이터 클래스는 data키워드로 선언하면 자주 사용하는 데이터를 객체로 묶어 줍니다. 데이터 클래스는 VO클래스를 편리하게 이용할 수 있게 해 줍니다. class NonDataClass(val name : String, val email : String , val age : Int) data class DataClass(val name : String, val email : String , val age : Int){ lateinit var address : String constructor( name : String, email : String , age : Int) : this(name , email, age){ this.address = address } } fun main(){ va..
상속과 생성자 상속 : 클래스를 선언할 때 다른 클래스를 참조해서 선언하는 것을 말함 상속관계에서 상속 대상이 되는 클래스를 상위 클래스 상속받는 클래스를 하위 클래스 open class Super{ } class Sub: Super(){ } 코틀린의 클래스는 기본적으로 다른 클래스가 상속할 수 없습니다. 만약 다른 클래스에서 상속할수 있게 선언하려면 open키워드를 사용하면 됩니다. 하위 클래스를 선언할 때는 이름 뒤에 콜론(:)을 입력하고 상속받을 상위 클래스 이름을 입력하면 됩니다. open class Super(name: String){ } class Sub1(name: String): Super(name){ // 주 생성자의 경우 } class Sub2: Super{ // 보조 생성자의 경우 c..
클래스와 생성자 class Data{ // 선언부 //본문 내용이 업다면 생략가능 } fun main(){ val data = Data() data.함수() } 클래스의 멤버는 생성자, 변수, 함수, 클래스로 구성됩니다. 코틀린에서 객체를 생성할 때 new키워드를 사용하지 않습니다. 코틀린에서는 생성자를 주생성자와 보조 생성자로 구분합니다. 한 클래스에서 주 생성자만으로도 보조 생성자만으로도 또는 둘 다 선언할 수 있습니다. 코틀린의 생성자는 constructor키워드로 선언하는 함수입니다. 주 생성자 class Data constructor(name:String){ } 위코드는 주 생성자를 선언하는 코드입니다. 주 생성자는 한 클래스에 하나만 존재할 수 있습니다. 주 생성자 constructor 키워드..
조건문 if~else 표현식 다른 언어와 비슷하다 그렇지만 코틀린의 if문은 표현식으로도 사용할 수 있다는 것이 특이합니다 표현식은 결괏값을 반화하는 계산식을 말합니다. fun main(){ var data = 10 var result = if(data>0){ println("data > 0") true// 반환값 } else{ //생략불가 print("data
함수 선언하기 fun 함수명(매개변수명: 타입): 반환타입{ 코드 } 함수의 매개변수(parameter)는 val이 자동으로 적용되며 매개 변숫값을 변경할 수 없음 매개변수에는 기본값을 선언할 수 있습니다. 기본값으로 정해진 값들은 호출시 인자를 전달하지 않아도 되며 인자 전달 방식은 매개변수를 순서대로 할당하는 방법과 매개변수명을 지정하여 호출하는 방법이 있습니다. fun main(){ fun add(data1 : Int, data2 : Int = 10) : Int { //오류 -> data1 = 20 return data1 + data2 } println(add(10))//20 println(add(10,20))//30 println(add(data1=10))//20 println(add(data2=..
코틀린 => 자바의 가상 머신인 JVM에 기반을 둔 언어. 즉, JVM에서 실행할 수 있습니다. 자바의 확장자 => .java 코틀린의 확장자 =>. kt 확장자는 달라도. kt파일을 컴파일하면 자바 바이트 코드가 만들어집니다. 즉 JVM이 실행함 코틀린의 이점 표현력과 간결함(expressive and concise) 최신 언어 기법을 이용하면 훨씬 간결하게 프로그램을 작성할 수 있습니다. 자바 코드와 비교해보면 코틀리 코드가 훨씬 간결하다 안전한 코드(safer code) 널(null) 안정성을 지원, 객체지향 프로그래밍에서 객체가 널 상태일수 있으며 널 포인트 예외가 발생할 수 있음. 그래서 널 일 때를 고려하여 개발하여야 하지만 코틀린에서는 널 허용 널 불허용으로 구분하여 선언 따라서 널 관련된 ..