본문 바로가기

언어23

[Kotlin 문법 종합] - 확장함수, 비동기 프로그래밍 @@@수정하기 1. 확장함수 : 기존 클래스에 쉽게 메소드 추가가 가능 //지금까지는 클래스에 원하는 메소드를 다 정의하고 시작했음 - 자바와 달리 외부에서 클래스의 메소드 추가 가능 (+) 내 목적을 위해 외부에서 관리해, 원본 클래스의 일관성 유지 가능 (-) 과도한 사용 시 가독성 해침 *주의사항 1) 확장함수는 public 멤버에만 접근 가능 2) private, protect 멤버에 접근하려면 클래스 내부 멤버함수 형태가 적합 //-> getter setter st인듯... 3) 클래스의 멤버함수처럼 상속할 수 없음 = 하위 클래스에서 확장함수를 리디파인(오버라이드) 불가능 fun String.isEmailValid(): Boolean { val pattern = "[a-zA-Z0-9._-]+@[a-z]+\\.. 2024. 3. 6.
[Kotlin 문법 종합] - 여러 인스턴스 리턴, 자신의 객체 전달 @@수정하기 1. 여러 인스턴스 리턴 : 두 개 이상의 데이터를 포함하는 데이터클래스를 만들고 인스턴스 리턴하기 //메소드는 기본적으로 하나의 데이터를 리턴함 1) Pair = 2개의 인스턴스 리턴 var chicken = Chicken() var eggs = chicken.getEggs() var listEggs = eggs.toList() // 리스트로 관리 var firstEgg = listEggs[0] // = eggs.first var secondEgg = listEggs[1] // = eggs.second println("달걀의 종류는 ${eggs} 입니다.") //(달걀, 맥반석) // Pair println("리스트 달걀의 종류는 ${listEggs} 입니다.") //[달걀, 맥반석] // toList.. 2024. 3. 6.
[Kotlin 문법 종합] - 자료형 변환, 타입확인 @@@ 수정하기 1. 자료형 변환 1) 일반 자료형간의 변환 (1) 숫자 자료형끼리 = .to자료형() var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() (2) 문자열 -> 숫자 @@@@근데 Integer.parseInt 안해도 toInt만 해도 되던데...?? 뭐지 다시보기 var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) //int로 변환 var num6 = strNum6.toDouble() //double로 변환 2) 객체 자료형간의 변환 : 상속관계에서 가능 (1) 업 캐스팅 (부모클래스의 자료형을 가지고 자식클래스의 객체 생성) .. 2024. 3. 6.