생성자 class Person(var name:String, val birth Year:Int) 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수 -> 생성자를 호출하면 클래스의 인스턴스를 만들어 반환 받을 수 있다. 생성자의 역할 인스턴스의 속성을 초기화 인스턴스 생성시 구문을 수행 기본생성자 fun main() { var a = Person("박보영", 1990) var b = Person("김수미", 1997) var c = Person("정장수", 1994) } class Person(var name: String, val birthYear: Int) { init { println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.") } } 보조생성자 여러 값 겹쳐..
클래스 '값'과 그 값을 사용하는 '기능' 들을 묶어놓은 것 구성은 고유의특징 값을 가진 속성 기능의 구현을 담당하는 함수 로 이루어져 있습니다. 인스턴스 우선 클래스는 인스턴스를 만드는 틀이라는 것을 이해 해야 한다 클래스를 이용해서 만들어내는 서로다른 속성의 객체를 지칭 같은 클래스로 여러 인스턴스를 만들어 사용하게 됨 fun main() { var a = Person("박보영",1900) var b = Person("전정국",1997) var c = Person("장원영",2004) //전체 감싼다, 문자로 오해 방지 //매번 쓰는건 비효율 -> 공통 기능 함수로 넣어준 println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다.") a.introduce() b.introdu..
흐름 제어 키워드 return '함수를 종료' 값을 반환하는 역할 break 반복문 내의 구문이 실행되는 중간에 즉시 반복문을 '종료' 하고 다음 반복문으로 넘어감 continue 다음 반복 조건으로 즉시 넘어가는 역할(종료가 아니다) fun main() { for (i in 1..10) { if (i == 3) break print(i) } println() for (i in 1..10) { if (i == 3) continue print(i) } println() //label 달아주면 한번에 break 가능 //고전적 문법에서는 내부에서 break 걸려도 밖에서 계속 돈다 loop@ for (i in 1..10) { for (j in 1..10) { if (i == 1 && j == 2) break..
조건문 var a = 7 if (a > 10) println("OK") else println("NO") when 하나의 변수를 여러개의 값과 비교가능(switch와 유사**) 등호나 부등호의 사용은 불가함 조건을 만족하는 것이 여러개 라면 가장 상단의 것이 실행 됨 fun main() { dowhen(1) dowhen("XXX") dowhen(12L) dowhen(3.1415) dowhen("Kotlin") } //Any : 어떤 자료형이든 상관 없음 , 최상위 자료형 fun dowhen (a: Any) { when(a) { 1 -> println("정수 1 입니다.") "Dobby" -> println("문자 입니다.") is Long -> println("Long 타입입니다.") !is String..
명시적 형변환 명시적 형변환 : 변환될 자료형을 개발자가 직접 지정함 코틀린은 암시적 형변환을 지원하지 않는다 var a: Int = 54321 var b: Long = a.toLong() 배열 배열은 처음 선언했을때 전체크기를 변경할 수 없지만 한번 선언 해놓으면 다른 자료형보다 빠른 입출력을 가능하게 하는게 장점이다. //일반적 배열 var intArr = arrayOf(1,2,3,4,5) //Null로 채워진 배열 //꺽쇠안에는 제너릭 Int형 var nullArr = arrayOfNulls(5) intArr[2] = 8 println(intArr[2]) 타입추론 자료형을 코드에 명시하지 않아도 연산 이루어질 때 자동으로 추론해주는 기능 변수 선언될 때도 마찬가지 이다. 대부분은 타입추론해서 코드량..
파스칼 표기법 : 모든 단어를 대문자로 시작 ClassName 함수나 변수 이름 카멜 표기법 : 첫 단어만 소문자로 시작 functionName 변수 선언 val -> Runtime시 변경되지 말아야할 값을 val로 선언 선언시에만 초기화 가능 중간에 값을 변경할 수 없음 var 일반적으로 통용되는 변수 언제든지 읽기 쓰기 가능 코틀린의 특징 기존의 Java 코드 보다 안전성이 높아 졌다. null pointer exception 방지 예외적으로 null 자체를 하나의 정보로 사용할때는 nullable 변수로 만들어서 사용(꼭 필요한 경우만 사용) var a: Int? = null 초기화 필수