목록전체 글 (114)
Hello, Android!

코틀린의 산술 연산자 연산자 의미 + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 사칙연산자는 일반적으로 사용하는것과 방법이 동일하다 하지만 % 나머지 연산자의 경우 나누기를 한 결과의 나머지를 반환한다 예를들어 위와 같은 경우에는 3에 2를 나눈 나머지인 1을 반환하게 된다 대입연산자 연산자 = += -= *= /= %= = 는 오른쪽의 값을 왼쪽에 대입하는 것이고 나머지 연산자는 풀어 쓰면 위의 사진처럼 풀어쓸수도 있다 하지만 풀어 쓰면 밑줄이 생기는데 확인해보면 각각의 대입 연산자를 사용하라고 나온다 증가 감소 연산자 연산자 ++ -- 증가 감소 연산자를 사용하면 해당 값에 1을 더하거나 1을 뺀다 다만 ++num1과 num1++에서 약간의 차이가 발생한다 ++를 먼저 붙이면 증가한 값을 변수에..

코틀린에서 변수를 사용할때 타입을 명시해야한다 만약 타입을 명시하지 않을 경우 할당한 값을 보고 컴파일러가 타입을 정해준다 또한 Int 타입의 값을 String에 넣을때는 캐스팅을 해야한다 하지만 자료형이 정해지지 않아 어떠한 타입이든 할당이 가능한 Any 타입이 있다 Any는 모든 클래스의 뿌리가 된다 Int, String뿐만 아니라 사용자가 만든 클래스까지 Any 타입의 자식이 된다 이 말은 코틀린의 모든 클래스는 Any를 슈퍼클래스로 갖게 된다 위의 test 함수에 값을 넘겨주면 args로 받는데, args는 Any타입이기 때문에 함수 호출시 어떠한 타입의 값이든 넘겨줄 수 있다 그리고 받은 args를 if문에서 타입 비교를 하면서 자동으로 스마트 캐스팅이 되어 Int 일때는 if문 안에서 args..

스마트 캐스트는 어떤 값이 정수가 들어올 수도 있고 실수가 들어올 수도 있을때 컴파일러가 자동으로 타입 캐스팅을 해주는 기능을 말한다 스마트 캐스트가 적용되는 자료형은 Number이 있다 Int를 할당한 num2에 정수가 아닌 1.2를 대입하려고 하니 에러가 났다 하지만 Number로 할당을 한 num4, num5에 각각 1.2와 long타입 200을 넣었는데 스마트 캐스트를 통해 아무런 문제없이 할당되었다 스마트 캐스트가 적용되는 또 다른 예를 알아보겠다 string은 null을 허용하는 문자열 변수이기 때문에 세이프콜 또는 non-null이 아닌 12번 줄에서는 에러가 났다 하지만 16번 줄의 print함수 안에서는 세이프콜, non-null도 없지만 아무런 문제가 없다 이는 if 조건에서 strin..

코틀린에서는 자료의 타입이 다르면 타입을 변환하는 함수를 통해 같은 타입으로 만들어야 한다 예를들어 자바에서는 int num1 = 1 double num2 = 2 라고 하면 double에 정수 2를 저장할때 타입이 다르지만 자동으로 캐스팅을 한다 하지만 코틀린에서는 자바와 같은 사용이 불가능 하다 코틀린에서 자바처럼 이용하는게 불가능한 이유는, 코틀린의 타입은 참조형으로 선언하여 컴파일 단계에서 Int Long Short와 같은 자료형은 기본 자료형으로 변환하고 기본형의 저장 방식과 참조형의 저장 방식이 다르기 때문이다 그래서 num2에 double타입 변수에 3 을 할당했을때 타입 불일치가 발생하는 것이다 자바와 다르게 코틀린에서 이렇게 까지 하는 이유는, 의도하지 않게 타입이 바뀌는 것을 방지하기 위..

지금까지 대부분의 언어들에서는 변수에 null이 들어가면 NullPointException(NPE)이 발생한다 하지만 코틀린에서는 필요한 경우 null을 허용하는 변수를 사용할수있다 null을 허용하는 변수를 사용하기 위해서는 null을 검사하고 null이 들어왔을때를 대비해야한다 코틀린에서는 변수 선언시 타입의 뒤에 ? 를 붙여 null을 허용할수 있다 타입 뒤의 ? 없이 null을 할당하게 되면 빨간 줄이 나오면서 null값을 넣을수 없다고 나온다 - 세이프 콜, non null ? 를 통해 널값을 허용한 값을 참조하고자 했더니 다시 빨간 줄이 나왔다 (Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver ..

기본 문자를 저장하는 타입은 Char은 기본형으로 처리가 되지만 문자열인 String은 기본형에 속하지 않는 특수한 자료형이다 다른 변수의 선언과 같이 키워드 변수명: 자료형 = 값 의 형태로 선언한다 1 2 3 var name1: String = "Kotlin" var name2: String = "java" var name3: String = "Kotlin" 한가지 특징으로는 위와 같이 1번 3번 줄에서 같은 값의 문자열을 저장하면 메모리 힙 영역의 스트링 풀에 Kotlin 이라는 문자열은 한번만 저장이 되고 스택 영역의 name1과 name3은 힙 영역의 0x10번을 같이 참조한다 문자열 표현식 코틀린에서 문자열 내에 다른 변수를 넣을때는 $ 기호를 사용한다 1 2 3 4 5 6 fun main()..
지금까지는 자바를 이용하였지만 새로운 안드로이드의 공식 언어 코틀린에서는 어떻게 사용할까?코틀린을 이용하여 TextView의 텍스트를 받아오고 설정해주고EditText를 통해 입력받는 내용을 받아오고버튼 이벤트를 통해 액티비티를 전환해보자 1234567891011121314151617181920212223242526272829303132333435363738394041424344 Colored by Color Scriptercs 메인 액티비티의 XML에는 위에서부터 Textview, EditText Button 세개를 배치하였다.우선 EditText로 사용자에게 값을 입력받고 첫번째 bt00을 누르면 토스트메시지를 보여주고두번째 버튼 bt01을 누르면 EditText에 입력받은 값을 TextView에 출..
안드로이드 화면에 텍스트, 이미지, 버튼 링크 등등 다양한 뷰 를 이용하여 화면을 만든다.텍스트를 보여주고, 텍스트를 입력받고, 이미지를 보여주고, 버튼을 만들어 클을 받는등어플리케이션에서 눈에 보여지는 모든것은 뷰를 통해 이루어진다. Object| | - - -> view - - -> TextView - - -> AutoCompleteTextView | | | | - - - - - -> Button - - - -> CompoundButton - - - -> CheckBox | | - - - - - -> Chronometer |- - -> RadioButton | | - - - - - -> DigitalClock |- - -> ToggleButton | | - - - - - -> ImageView - -..