환경 설정이 매우매우 어려웠다.또한 패키지, 클래스, 파일에 대한 관계가 복잡하다.패키지 속 클래스와 파일..인듯? (정확하지 않음)변수는 val, var 키워드를 통해 선언할 수 있다. val로 선언하면 변수를 더 이상 바꿀 수 없는 "읽기 전용 변수"가 된다. va
함수의 구조는 fun + 함수 이름 + 매개 변수 + 반환 값의 자료형으로 이루어진다. 함수의 본문의 내용을 쓰고 return 값을 명시해준다. 만약 return 값이 없다면 return을 생략한다. (void로 선언하는 C언어와의 차이) 또한 매개변수가 필요 없다면
변수에 return 값을 할당한다. 마지막에 적힌 a와 b가 max에 할당되는 값이다.print도 적용이 되는 것 같다. 우선 readLine은 콘솔로부터 문자열을 입력받는다. (파이썬의 input, C의 scanf와 비슷) 입력 받은 값은 문자열이므로 toDouble
객체 지향 프로그래밍은 프로그램의 구조를 객체 간 상호작용으로서 표현하는 프로그래밍 방식이다.추상화 : 특정 클래스를 만들 때 기본 형식을 규정하는 방법인스턴스 : 클래스로부터 생성한 객체상속 : 부모 클래스의 내용을 자식 클래스가 그대로 물려받음다형성 : 하나의 이름
정보 은닉 캡슐화 클래스를 작성할 때 숨겨야 하는 속성이나 기능이 있을 수 있다. 이러한 개념을 캡슐화라고 한다. 가시성 지시자 각 클래스나 메서드, 프로퍼티의 접근 범위를 가시성이라고 한다. 클래스나 메서드, 프로퍼티에서 가시성 지시자에 의해 공개할 부분과 숨길 부
코틀린에서 클래스 내에 선언한 변수를 '프로퍼티'라고 부른다. 자바에서는 이런 변수를 '필드'라고 부른다. 자바의 필드는 단순한 변수 선언 부분만을 가지므로 접근하기 위한 메서드를 일일이 만들어야한다. 하지만 코틀린에서는 변수 선언 부분과 기본적인 접근 메서드를 모두
추상 클래스(Abstract Class)는 선언 등의 대략적인 설계 명세와 공통의 기능을 구현한 클래스다. 이를 상속하려면 하위 클래스에서 추상 클래스의 내용을 구체화해야한다.인터페이스는 대략적인 설계 명세를 가지고 몇 가지 기본적인 부분은 구현할 수 있지만, 하위 클
만약 특정 동작을 가지지 않고 오로지 데이터 저장을 위해서 사용한다면 일반적인 클래스가 가지는 구현부가 필요없을 수 있다. 메모리를 아낄 수 있다. 따라서 데이터 클래스라는 특별히 고안된 클래스가 존재한다. 그 외에도 실드 클래스, 이너 클래스, 열거형 클래스 등을 사
제네릭은 클래스 내부에서 사용할 자료형을 나중에 인스턴스 생성할 때 확정한다. 자료형을 검사해 적당한 자료형을 선택할 수 있도록 한다. 객체 자료형의 안정성을 높이고 형 변환의 번거로움을 줄일 수 있다.앵글 브래킷 사이에 형식 매개변수를 넣어 선언한다. 장점 중 하나는
컬렉션 컬렉션이란 자주 사용하는 기초적인 자료구조를 모아놓은 프레임워크로 표준 라이브러리로 제공된다. >컬렉션 - 불변형(읽기 전용) - 가변형 List - listOf - mutableListOf, arrayListOf Set - setOf - mutableSetO
외부 변수를 호출하고 싶을 때 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념이다.내부의 람다식에서 외부 함수의 변수에 접근하여 처리할 수 있다.함수 이름 - 람다식의 접근 방법 - 반환 방법T.let - it - block 결과T.al
apply : 수신객체 (this), 수신객체 리턴also : 수신객체 (it), 수신객체 리턴run : this, 람다 식의 마지막 행 리턴let : it, 람다 식의 마지막 행 리턴with : this, 람다 식의 마지막 행 리턴let : null 체크를 해야할 때