코틀린/코틀린 문법

Git Book 문법 [코딩컨벤션 변수 함수 클래스]

정혜현 2024. 5. 29. 09:07

코딩컨벤션 Coding Convention

코드 작성규칙

 

  • 명명규칙
  • 카멜 표기법 camel Case : 첫글자 소문자. 이후 새로운 단어의 첫글자 대문자로 표기. 변수명, 함수명
    상수명은 모두 대문자로 표기
  • 파스칼 표기법 Pascal Case (또는 camel case with an uppercase first letter) : 첫글자는 대문자. 이후 새로운 단어의 첫글자 대문자로 표기. 클래스명
  • 스네이크 표기법 SNAKE_CASE : 언더스코어로 단어구분. 상수명(원래 소문자. 상수명만 대문자로 한다.) 
  • 케밥 표기법 kebab-case : 모두 소문자. 하이픈으로 단어구분. 스프링의 yml파일이나 url주소에서 사용
  • 들여쓰기 Indent
    새로운 코드 블록이 시작되면 들여쓰기. 일반적으로 4칸씩 들여쓴다.

 

 

 

 

변수 Var

선언 : var,val 변수명 : 타입 = 값

정의 : 값을 임시로 메모리에 저장하고 그 메모리에 이름을 부여한 것.

특징 : 이름과 값으로 구성. 값으로 타입 추론가능. 값 없이 타입만 입력가능. 최초 선언시 타입이 결정되며 한 번 설정된 타입의 값만 담을 수 있다. val(value)는 읽기전용으로 한 번 입력된 값 변경불가

  • 데이터타입
  • 숫자형 : 정수 Long(64) Int(32) Short(16) Byte(8),  실수 Double(64) Float(32) 같은 숫자형이라도 정수형 변수에 실수형 값을 넣을 수 없다. 숫자형은 가독성을 높이기 위해 언더바_로 자릿수 구분이 가능하다. 
  • 문자형 : Char('글') String('글자') 더하기+연산자로 문자를 합칠 수 있다. 문자열 내부에 달러기호$를 넣으면 해당영역은 문자가 아닌 코드로 인식한다.
  • 불리언형 : Boolean(true/false)
기본타입이란?
저장되는 값의 크기가 미리 정해져있는 타입. String은 글자수 지정되어 있지 않으므로 기본타입이 아니다.

상수 const : 기준이 되는 변하지 않는 값. const val로 선언

 

 

 

 

 

함수 function

선언 : fun 함수명(파라미터) : 타입 {값}

호출 : 함수명() 반드시 괄호를 붙여야 한다. 괄호 없으면 값처럼 인식된다.

정의 : 코드를 사용할 수 있는 최소 단위

특징 : 인자와 파라미터는 타입이 일치해야한다. 파라미터는 val가 생략된 형태로 변경불가. 함수 내 변수는 지역변수라고 한다. 

함수 이해하기

var 변수명 = 함수명(인자argument)
fun 함수명(매개변수parameter) : 반환타입 {반환값}

1. 입력 : 인자가 매개변수로 전달된다.
2. 변환 : 함수에서 결과가 반환된다.
3. 출력 : 변수에 담는다.

 

 

 

 

 

클래스 Class

선언 : class 클래스명 {클래스 범위}

사용 : 클래스명() 생성자 호출

정의 : 그룹화된 변수와 함수의 모음

특징 : 클래스 내 변수는 속성(프로퍼티)Property 함수는 메서드Method라고 한다. 

생성자와 인스턴스 이해하기

생성자constructor() {} 
클래스를 사용하기 위해 필요한 함수. 키워드는 주로 생략해서 쓴다. 
class 클래스명 primary() {secondary()}
프라이머리(하나만 가능)와 세컨더리(복수 가능)가 있다. 클래스를 만들 때 생성자를 작성하지 않을 경우 디폴트로 프라이머리 생성자 하나가 생략되어있다. init블록이 가장 먼저 실행되고 세컨더리 생성자 블록이 실행된다. 파라미터에 val을 붙여주면 클래스 스코프 전체에서 사용가능하다.

인스턴스Instance
생성자로 만든 결과. 변수에 담아 사용할 수 있다. 변수명에 도트연산자를 붙여서 클래스의 프로퍼티와 메서드를 사용할 수 있다.

object

생성자가 없이(인스턴스화 하지 않아도) 프로퍼티와 메서드를 사용할 수 있다. 클래스명에 도트연산자를 붙여 호출한다. 앱 전체에 1개만 생성된다.

 

companion object

클래스 스코프 내부를 컴패니언 오브젝트 블록으로 감싸주면 object 기능이 추가된다. 

 

데이터클래스data class 

간단한 값을 저장하여 데이터를 다루기 위한 용도의 클래스. 파라미터에 var/val 생략불가. 일반 클래스에서는 toString() 호출시 인스턴스 주소 값을 반환하나 데이터 클래스에서는 값을 반환하므로 실제 값을 확인할 때 좋다. copy()로 간단하게 복사가능. 작성 및 사용방법은 일반클래스와 동일.