1. 객체란?

    1. 객체

      코틀린은 모든 것을 객체로 처리

      객체에는 해당하는 클래스가 있음

    2. 클래스

      객체를 만들려면 클래스가 필요

      먼저 클래스를 정의하고 이 정의된 클래스 내의 생성자를 호출해서 객체를 생성

      클래스(class) : 클래스를 정의하는 예약어이며 객체를 생성하는 템플릿 도구

      생성자(constuctor) : 클래스 정의 이후 객체를 생성하는 기능

      • 보통 클래스 이름으로 호출
      • 생성자를 실행하면 객체 내의 속성들을 초기화 처리
      • 클래스 정의

        class Hello {
        	val hello = "Hello"
        }
        
      • 객체 생성

        val h = Hello()
        
      • 객체의 속성이나 메소드 접근 → 점 연산자 사용

        println(h.hello)
        
  2. 객체 표현과 주석

    1. 리터럴, 연산자, 표현식

      리터럴 : 하나의 값

      • 보통 숫자, 문자, 문자열
      • 클래스를 만들어 객체로 만든 값은 모두 리터럴
      • 숫자, 문자, 문자열은 객체

      연산자 : 두 개의 리터럴을 연산할 때 사용하는 도구

      • 코틀린에서는 기호가 아닌 메소드로 처리

      표현식 : 여러 리터럴과 연산자가 연결된 수식

    2. 리터럴과 표현식 처리

      • 정수 : Byte, Short, Int, Long
      • 실수 : Float, Double
      val intVar = 100          // 정수 기본은 Int
      val longVar = 100L        // Long
      val doubleVar = 100.0     // 실수 기본은 Double
      val floatVar = 100.0F     // Float
      
      val charVar = 'a'           //char
      val stringVar = "String"    //String
      val boolVar = true          //Boolean
      

      메서드 : 클래스 내부에 정의한 함수

      • 함수는 함수 이름과 호출연산자로 실행

      연산자를 표기하면 내부에서 해당하는 메서드로 변환해 처리

      println( 100 + 100 )
      println( 100.plus(100) )
      
    3. 주석 처리

      // 한 줄 주석
      
      /*
      여러 줄 주석
      */
      
      /**
      * KDoc 주석
      */
      
    4. 문자열

      • 문자열 템플릿

        val date = "20220101"
        val a = 100
        val b = 200
        
        println(" 날짜 : $date ")           //$변수명
        println(" 100 + 200 = ${a+b} ")     //${표현식}
        
  3. 변수와 상수

    1. 식별자 이름 작성 방법

      • 카멜 표기법 : 첫 글자는 소문자, 다음 단어의 첫 글자는 대문자
      • 파스칼 표기법 : 단어들의 첫 글자를 대문자
      • 팟홀 표기법 : 단어를 _로 연결해서 사용
    2. 변수 정의

      val 불변변수 = "불변변수"
      var 가변변수 = "가변변수"
      
      val 변수정의 : String = "초기값"
      
    3. 속성

      • 코틀린에서는 지역변수를 제외하고 모두 속성임.

        실제 변수를 정의하면 변수를 참조하는 메서드(게터, 세터)를 내부적으로 제공

        변수 이름으로 참조하면 메서드 실행

  4. 식별자

  5. 표준 입출력

    val a = readLine()!!.toInt()   //정수 입력
    
    print(" a= $a ")               //출력
    
    val input = readLine()!!.split(" ").map { it.toInt() }  //한 줄에 여러 정수 입력