코틀린 시작(2)

이재민·2022년 5월 14일
0

kotlin

목록 보기
2/5

문법(2)

array , list


다음과 같이 array와 달리 list는 원소를 바꿀 수가 없다.

다음과 같이 list를 꺼내서 사용가능 하다.
arrayList는 주소값 개념으로 생각하면 된다. 따라서 var을 쓴다.

반복문

for


for (타입, 범위, 증가나 감소량) 이런 형식으로 사용한다. 위의 사진처럼
downTo를 이용하여 역으로도 표현할 수 있으며

다음과 같이 step을 이용하여 증가량이나 감소량을 설정 할 수도 있다.

다음과 같이 until을 사용할 시 10을 포함하지 않는다.

다음과 같이 인자를 두개 받고 함께 사용할 수 있다.

while


다음과 같이 다른언어와 매우 유사하게 사용된다.

Nullable / NonNull


다음과 같이 null을 사용하고 싶을땐 ?를 타입뒤에 붙여주면 된다.
보통 var name = "jaemin"과 같이 쓰면 자동을 타입이 정해지는데 이때 사용되는 것이 Nonnull 타입이다.

nullNameInUpperCase에서 만약 nullname이면 null을 반환하고 아니면 대문자를 반환함.

엘비스연산자 "?:"


다음과 같이 null값을 지정하고 fullName을 쓸때 만약 lastName이 null이면 뒤에 "No lastName"문구를 출력하고 있으면 그 lastName을 출력함.


위의 결과와 같이 나옴.

"!!"


확실하게 null이 아닌 것을 알때 사용! 기본적으로 NonNull타입이지만 저렇게 명시적으로 사용가능 하지만 지양하는게 좋음.

클래스 Class


다음과 같이 기본적으로 클래스 생성 후 property(클래스 내 변수)나 method(클래스 내 함수)를 정의해주고 메인문에서 자바와 다르게 new를 사용하지 않고 바로 객체를 만들어 사용가능 하다.

생성자

기본생성자

다음과 같이 constructor를 이용하여 (형식을 지정해 줄 수 있음)
참고로 위의 사진에서는 val name을 생성자 매개변수에서 정의하여 바로사용함.
constructor 생략가능!!

다음과 같이 디폴트로 객체를 생성하고 싶을때 어떻게 해줘야할까?

다음과 같이 뒤에 디폴트값을 넣어주면 된다.


다음과 같이 만약 클래스가 사용될때 마다 코드블럭을 돌도록 하기위해 init을 사용 할 수 있다.

부생성자


다음과 같이 constructor을 이용하여 부생성자 생성 가능.
생성할 때는 꼭 this를 이용.

상속

자바는 extends를 통해 상속을 받았지만 코틀린의 경우 :를 이용한다.


다음과 같이 상속을 받을 수 있는데 오류가 발생한다. 발생이유는 Human클래스가 final상태이기 때문이다.
쉽게 말하면 private상태이기에 public상태로 만들어줘야한다. 따라서 Human클래스앞에 open을 붙여준다.

오버라이딩

만약 상속받은 Human클래스의 메소드를 사용할 수 있는데 같은 이름으로 이 클래스에서만의 특색을 넣고 싶으면 어떻게 해야할까?
바로 오버라이딩을 사용하면된다.

다음과 같이 사용하면된다. 기본적으로 Human클래스에서 상속을 받았기 때문에 Human클래스의 기본 생성자가 생성된다.

따라서 New human~!문구가 나오는 것을 확인 할 수 있다.

Human클래스의 sing메소드도 사용하고 싶으면

다음과 같이 super.sing()을 사용해주면 된다.


다음과 같이 Korean클래스를 Human의 디폴트 생성자가 아닌 값을 주어서 상속받아주면 부 생성자가 출력되는 것을 볼 수 있다.

1강 1:08:29초까지의 내용 https://www.youtube.com/watch?v=IDVnZPjRCYg

다음 2강 https://www.youtube.com/watch?v=Q5noYbbc9uc

profile
재민

0개의 댓글