본문 바로가기

Kotlin/Kotlin 문법30

한글 또는 다른언어 설정 2022. 8. 16.
코틀린 기본 문법 복습 코틀린 기본 문법 복습 package com.monosoft.monopractice fun main() { //helloWorld() //println(add(4,5)) //3.String Template //val name = "wonho" //val name1 = "kim" //println("안녕하세요 ${name+name1}요" ) //println("지금 달러는 \$aaaa ") /*주석 */ //주석 블럭지정 후 컨트롤 / 키 //forAndWhile() //nullcheck() ignoreNulls("kimwonho") } //1. 함수 fun helloWorld() : Unit { //Unit은 리턴이 없을경우 println("Hello world") } fun add(a:Int, b:In.. 2022. 8. 9.
코틀린 lateinit 와 속성 참조 더블 콜론 코틀린 lateinit 와 속성 참조 더블 콜론 코틀린은 기본적으로 Non-null 타입을 가진다. 그러므로 항상 값을 초기화를 시켜주거나 null 값을 가질 수 있게 따로 처리해야합니다. lateinit 키워드는 초기화를 나중에 할 수 있게 미루는 키워드입니다. val은 final 특징을 가지기 때문에 값 수정을 할수 없으므로 lateinit 키워드랑 같이 사용할 수 없습니다. primitive type(원시 타입)에서는 사용이 불가능합니다. ex) Double, Float, ... 변수에 선택사항인 getter, setter 정의 불가 변수의 유형은 null 이 아니어야하기에 null로 초기화 불가 타입 뒤에 ? 사용해도 불가합니다. isInitialized 속성을 이용한 초기화 확인 2022. 8. 8.
contains와 startsWith 차이점 contains와 startsWith 차이점 startsWith() 함수 원형 : boolean startsWith(String prefix) 대상 문자열이 특정 문자 또는 문자열로 시작하는지 체크하는 함수이다. 해당 문자열로 시작되는지 여부를 확인하고 boolean에 맞춰 true/false 값을 반환한다. String s = "I have a book" s.startsWith("I") // 1. true s.startWith("book") // 2. false 첫 번째 문장은 "I have a book"이라는 문자열 s가 매개 변수 문자열인 "I"로 시작하는지 확인한다. 따라서 결과는 true를 반환한다. 두 번째 문장은 "book"으로 시작하는지 확인하므로 이는 false를 반환한다. contain.. 2022. 8. 5.
시간형식 리턴값 받기 시간형식 리턴값 받기 //포맷을 설정 후 포맷에 맞게 리턴받음 val sdf = SimpleDateFormat("yyyy/mm/dd hh:mm") val datetime = sdf.format(memo.datetime) 현재 시간과 UTC(협정세계시)인 1970년 1월 1일 자정과의 차이로 밀리세컨드(1/1000초) 값을 반환합니다. System.currentTimeMillis() 2022. 8. 4.
안드로이드 True False 존재 유무 체크 함수 안드로이드 True False 존재 유무 체크 함수 exists() 2022. 8. 3.
안드로이드 트랜잭션 사용방법 안드로이드 트랜잭션 사용방법 package com.monosoft.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setFragment() //함수 실행 } fun setFragment() { //1. 삽입할 프래그먼트 생성 val fragment = ListFragment() //2. 삽입 트랜잭션.. 2022. 8. 2.
안드로이드 ViewHolder 안드로이드 ViewHolder ViewHolder란 파일철에 필요한 파일들만 보관 해둔 것이라고 보면됩니다. 즉, 객체들을 보관해 두는 공간이라고 보면된다 이렇게 하는 이유는 무엇일까요? 우선 프로그램을 가볍게 하기 위해서 입니다. 예를 들어, 버튼을 추가하려고 한다면 우리는 안드로이드에서 액티비티를 만들고(자바 클래스파일을 생성하고) 거기에 버튼을 추가하기 위해 버튼 객체를 선언하고 findViewById(...)로 xml상의 버튼을 가져오는 작업을 할 것입니다. 하지만 이런 객체를 선언하는 작업이 누적 되면 하나의 프로그램은 무거워집니다. 2022. 8. 1.
어댑터(adapter)란? 어댑터(adapter)란? 어댑터(adapter)는 보여지는 뷰와 그 뷰에 올릴 데이터를 연결하는 일종의 다리 역할을 하는 객체를 말합니다. 어댑터가 데이터소스(배열, ArrayList, LinkedList, DB ...)와 어댑터 뷰(ListView, GridView) 사이에 있으면서 데이터 소스에 있는 데이터에 맞춰 어댑터 뷰를 변경합니다. 이번 글에서 다룰 ArrayAdapter는 ListView와 데이터(ArrayList)를 연결하는 역할을 담당합니다. ​ ​ 2022. 7. 29.
리스터 이해 리스터 이해 버튼을 내려놓는다.. package com.monosoft.myapplication import android.app.Activity import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.DeadObjectException import android.util.Log import android.view.View import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super... 2022. 7. 25.
null 값을 안정적으로 처리 방법 null 값을 안정적으로 처리 방법 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //null값을 안정적으로 처리 방법 //1.변수 선언시 nullable 해서 Null을 입력할수있는 변수를 선언 //2.nullable 선언되었다면 safe Call 강제해서 null pointer exception 안나게 한다. //3.null일 경우 대체값을 꼭 입력한다면 엘비스 익스프리스( ?: 값 )를 써서 디폴트값 지정 var myName : String = .. 2022. 7. 22.
클래스 클래스 1. 클래스 기본 개념 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //클래스 사용하는 방법 //1.초기화 //var cls = 클래스() //인스턴스 = 메모리에 로드되어 있는 클래스 //cls.variable //cls.function() //2. companion object 로 만들기 Log.d("태그","메시지") } } class Log { companion object { var variable = "난 누구" fun d(tag:.. 2022. 7. 21.
함수 함수 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //함수를 사용하는 용도는 코드를 분류하기 위해서 사용 //함수사용 functionName() functionparam("문자형값",111) var pi:Double = getPi() Log.d("getPi","getPi=${pi}") var functionparamreturn : String = functionparam_return("p1",222) Log.d("functionparam_return.. 2022. 7. 19.
반복문 (for, while , do..while, break) 반복문 (for, while , do..while, break) var intArray = intArrayOf(0,10,20,30,40,50,60,70,80) //for 문 //일반적으로 몇 번의 횟수를 반복하는 형태 //for ( 시작값..종료값) { //코드블럭 //} //for (index in 1..10) { //for (index in 1 until 10) { //마지막값은 제외 //for (index in 1 until 10 step 2 ) { //짝수만 제외 후 출력 //for (index in 10 downTo 1 step 2) { //반대로 반복문 , 짝수만 출력 for (value in intArray) { //배열 반복문 Log.d("반복문","index=${value}") } //w.. 2022. 7. 18.
배열 / 컬렉션 / 맵 배열 / 컬렉션 / 맵 //*****************************************배열 (정적배열) //Int -> IntArray var intArr:IntArray = IntArray(10) //index = 0 부터 시작 intArr[0] = 10 intArr[1] = 20 intArr[2] = 30 intArr[3] = 40 intArr[4] = 50 intArr[5] = 60 intArr[6] = 70 intArr[7] = 80 intArr[8] = 90 intArr[9] = 100 //intArr[10] = 110 Log.d("intArr","9번 인텍스의 값=${intArr[9]}") var weekArray = CharArray(7) weekArray[0] = '월' we.. 2022. 7. 13.
조건문 조건문 //****************************조건문**************************** //**************비교연산자 , >= , 2 var result = "홍길동" != "김숙자" Log.d("compare","결과는 = ${result}") var result2 = second < 500 Log.d("compare","두번째 결과=${result2}") //**************논리연산자 var logic1 = result && result2 //AND 연산자 Log.d("compare","논리연산 && 결과 = ${logic1}") var logic2 = result || result2 //OR 연산자 Log.d("compare","논리연산 |.. 2022. 7. 12.
변수와상수 변수와상수 package com.MonoSoft.SayHello import android.os.Bundle import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var variable : String = "홍길동" //*********코틀린의 기본타입 //실수형 var doublevalue : Double = 35.6 //자주씀 var floatvalue : Float =.. 2022. 7. 11.
앱 개발을 위해서 꼭 알아야할 코틀린 문법 3가지 앱 개발을 위해서 꼭 알아야할 코틀린 문법 3가지 package com.MonoSoft.SayHello import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_.. 2022. 7. 5.
코틀린 기본 문법 5 - 기타기능 코틀린 기본 문법 5 - 기타기능 //******************************* 확장 함수 //쉽게 기존 클래스에 함수를 추가할수 있다 //확장함수를 추가할 클래스에 점을 찍고 함수이름 작성 //확장 함수 내부에서는 이 객를 this로 접근할수 있다 //이러한 객체를 리시버 객체라고 함 fun Int.isEven() = this % 2 == 0 val aa = 5 val bb = 6 println(aa.isEven()) println(bb.isEven()) //******************************* 형변환 //숫자형 자료형끼리는 to자료형() 메서드를 사용하여 형변환 가능 val a = 10L val b = 20 val c = a.toInt() val d = b.toDou.. 2022. 6. 14.
코틀린 기본 문법 4 코틀린 기본 문법 4 //******************************* 람다식 //하나의 함수를 표현하는 방법으로 익명 클래스나 익명함수를 간결하게 표현함 //코드를 간결하게 해주는 장점,디버깅이 어렵고 남발할경우 오히려 단점됨 fun add(x : Int , y : Int) : Int { return x + y } println(add(1,2)) //또는 fun add1(x : Int, y : Int) = x + y println(add1(1,2)) //또는 val add2 = { x : Int, y : Int -> x + y} println(add2(1,2)) //******************************* Sam 변환 //자바로 작성된 메소드가 하나인 인터페이스를 구현할때 대.. 2022. 6. 2.