Kotlin - Class 간단

이동수·2024년 9월 3일

Kotlin

목록 보기
14/33
post-thumbnail

클래스

  • 고유의 특징값(속성)
  • 기능의 구현(함수)
  • 함수없이 속성만 갖춘 클래스class P(var name : String, val birth :Int) 이렇게 끝낼수있다
  • 해더와 바디는 옵션임. 바디가 없으면 {}도 생략가능
class Lotto

property

  • 클래스 내의 변수를 프로퍼티라 함 (정보은닉, 외부에서 접근하지 못하게 하려고)
  • 일반 변수와 달리 접근자 getter/setter함수를 내장하고있음 - 일반 변수와 다른점(다른언어는 직접 만들어야함)
  • 접근자 재정의(오버라이딩 가능)
  • 최상위 변수와 클래스 프로퍼티만 get/set을 가질 수 있다.
  • 초기화
    • init에서 초기화하면 초기화 하지 않아도됨
    • null 허용으로 선언
  • by Deledgates.observable (프로퍼티 값 변경감지)
    • 언제 프로퍼티가 변경되나 확인하려고
    • 프로퍼티값 변경하는걸 감지하는 코드
    • exception추가해서 호출 경로도 알 수 있다

클래스 컨벤션

//클래서 컨벤션    
class Kotlin{
        // - 프로퍼티

        // - init블록

        // - 부 생성자

        // - 메서드

        // - 동반객체
    }

클래스는 인스턴스를 만드는 틀
인스턴스 - 클래스를 이용해 만들어내는 서로다른 속성의 객체를 지칭하는 용어

자주 사용하는 공통적 기능은 클래스내에 함수로 넣자



클래스 파라미터에 var,val를 붙이고 안붙이고는 아예 다르다.

  • var,val 붙이면 속성이된다
  • 밑에있는 두 코드는 같은 코드이다
class A(var a: Int, var b: Int){}
class A(var b: Int){
	var a: Int
	}
  • 파라미터에 var,val이 붙이면 속성이 된다
  • var를 안붙이면 아예 달라진다.
    • 밑에 있는 코드는 가능한 코드이다
class A(a: Int){
	var a = 5
}

class 생성자에 var,val은 꼭붙이자. 안붙이면 지역변수가 된다. (그렇게 안쓰임)

class에 올수 있는것

  • 생성자, init블록
  • 함수
  • 프로퍼티
  • nested & inner class
  • object

0개의 댓글