본문 바로가기

코틀린 문법23

13. 문자열을 다루는 법 참조: 유튜브 디모의 코틀린 코드테스트 사이트:play.kotlinlang.org //코틀린에서 문자열을 다루는 여러가지 방법 //복습 //:코틀린에서는 'String'이라는 클래스로 문자열을 다루며 // val text="문자열"처럼 쌍따옴표 사이에 문자열을 넣어 리터럴을 만들며 // 새 String 객체가 생성됨 //String클래스와 관련한 여러 속성과 함수 중 자주쓰이는 것들을 알아보자~ // fun main(){ val test1 = "Test.Kotlin.String" //테스트용 문자열 //오늘 실습은 대소문자에 유의!! //문자열길이 println(test1.length)//length라는 속성에 Int값으로 들어있음 println(test1.toLowerCase())//소문자로 변환 pr.. 2023. 5. 11.
12. 리스트 참조:유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org *J,K,L로도 방향키의 역할을 할 수 있음 //리스트(List) //:데이터를 코드에서 지정한 순서대로 저장함 // 데이터를 모아 관리하는 Collection클래스를 상속받는 // 서브클래스들(List,Set,Map)중에서 가장 단순한 형태로, // 여러개의 데이터를 원하는 순서로 넣어 관리하는 형태 // List, MutableList 두종류의 리스트 있다. // mutable(변할 수 있는) // List: 생성시에 넣은 객체를 대체,추가,삭제 할 수 없음 // MutableList: 생성시에 넣은 객체를 대체,추가,삭제가 가능함 //리스트를 만들 때는 전용 함수인 // listOf(1,2,3)나 mutableListOf.. 2023. 5. 11.
11. 제너릭 코드테스트 사이트: play.kotlinlang.org 참조: 유튜브 디모의 코틀린 *맥북 탭끼리 이동 단축키:command+shift+{ , command+shift+} //Generic:클래스나 함수에서 사용하는 자료형을 외부에서 지정할 수 있는 기능 //제너릭이란 어떤 기능? //예를 들어, 클래스 A와 이를 상속받은 클래스 B가 있을 때, //이 두클래스의 인스턴스를, 공용으로 사용하는 하나의함수에 패러미터로 받으려면? // ex.fun castingExam(var a:A) ->B를 넣어도 자동A로 캐스팅됨 // ->두 클래스 모두 함수의 ₩ㅌ패러미터로 사용할 수 있음!(?) //but, 캐스팅 연산을 거치는 것은 프로그램의 속도를 저하시킬 수 있음! //sol)제너릭! //제너릭이란? 함수나 클.. 2023. 5. 11.
10. 클래스의 다형성 코드테스트 사이트: play.kotlinlang.org 참조:유튜브 디모의 코틀린 *맥북에서 스크린샷을 클립보드에 바로 복사하는 법 :컨트롤을 누른 상태로 스크린샷 단축키를 누른다 //복습:클래스의 상속을 통해 클래스를 '확장'할 수 있다. //예를 들어, 콜라를 콜라 뿐만 아니라 '음료'라는 특성으로도 볼 수 있게 하는 게 //'다형성'의 개념이다.(?) //'음료'클래스와, 음료클래스를 상속받은 '콜라'클래스가 있을 때 //콜라클래스의 인스턴스를 만들면 //상속관계에 있는 수퍼클래스인 '음료'의 내용을 담는 공간에 //'콜라'의 내용을 담는 '추가공간'이 생성된다 //(흠... 그럼 콜라 클래스가 음료클래스에 포함관계인건가?아닌것같은데..) //이렇게 만들어진 콜라의 인스턴스는 음료를 담는 변수에 저.. 2023. 5. 4.
9. 상속, 오버라이딩과 추상화 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 상속 fun main() { //상속 //필요한 경우 //1.이미 존재하는 클래스를 확장하여 새로운 속성이나 새로운 클래스 만들기 //2.여러개의 클래스 만들었는데 클래스끼리 공통점 뽑아 코드관리 용이하게 //속성,함수 물려주면 수퍼클래스, 물려받으면 서브클래스 //애완동물 관리하는 클래스 만들어보기 var a = Animal("별이",5,"개")//animal 클래스에 속성 다 기입함 var b = Dog("별이",5)//dog 클래스에 종 빼고 속성 기입함 //->둘다 같은 속성과 기능을 갖게 됨 a.introduce()//자기소개함수 호출 b.introduce() //a인스턴스와 b인스턴스의 함수호출결과가 동일함 } o.. 2023. 4. 30.
8. 클래스, 생성자, 보조생성자 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 클래스의 기본구조 fun main() { //클래스:'값'과 그 값을 사용하는 '기능'들을 묶어놓은 것. //속성(고유의 특징값)과, 함수(기능의 구현)으로 이루어져 있음 var a = Person("박보영",1990) //변수선언,할당연산자 적은 후 클래스 이름 적은 뒤 //클래스 선언시 적은 순서대로 괄호안에 객체 속성 기입 var b = Person("전정국",1997) var c = Person("장원영",2004) //이 인스턴스를 담은 변수를 어떻게 사용?? //변수명.(참조연산자 점)속성명(참조하려는 속성의 이름) println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다.") //자주사용.. 2023. 4. 30.
7. 조건문과 비교연산자, 흐름제어와 논리연산자 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 조건문과 비교연산자 fun main(){ //조건문,비교연산자 var a =11 //조건문 테스트 위해 변수 만들고 정수 대입 if(a > 10) { println("a는 10보다 크다.") //조건문 하나면 중괄호 생략 가능 } else{ println("a는 10보다 작거나 같다.") //거짓일 경우의 조건문 } a is int //자료형 맞는지 체크하는 연산자 a !is int //자료형 틀린지 체크 //when //다중비교문, 하나의 변수를 여러 개의 값과 비교 가능, //다른 언어의 switch문을 개편 fun doWhen (a:Any){ //Any자료형:어떤 자료형이든 호환되는 코틀린 최상위 자료형! when(a).. 2023. 4. 30.
6. 형변환과 배열, 타입추론과 함수 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 fun main(){ // 형변환 // 형변환함수 // toByte() // toInt() 등 var a:Int = 123 //var b:Long = a //코틀린에서는 할당만 해서는 변환되지 않음 var b:Long = a.toLong() //형변환 위해서는 형변환 함수 필요! // int형 변수의 toLong() 함수를 호출하여 Long 값으로 변환된 값을 // 반환받아 Long변수에 할당해줘야한다 (명시적 형변환,변환될 자료형을 // 개발자가 직접 지정), 다른언어들이 지원하는 암시적형변환(변수할당시 // 자료형 지정 안해도 자동 형변환)을 지원하지 않음 ​ // 배열 : 변수이름 저장하고 arrayOf 함수 통해 배열.. 2023. 4. 30.
5. 변수와 자료형-코틀린 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 클래스 이름은 파스칼 표기법:모든 단어를 대문자로 시작 ClassName처럼 함수나 변수 이름은 카멜 표기법:첫단어만 소문자 functionName처럼 변수 선언하는 걸 권장! ​ 구문 끝에 ;(세미콜론)안붙임! ​ 주석 // 쓰거나 /*여러줄 *주석 *달기*/ ​ /** * You can edit, run, and share this code. * play.kotlinlang.org */ fun main() { println("Hello, world!!!") //끝에 세미콜론 안붙음 /*여러줄주석 * 쓸 수 있음 */ var //일반적으로 통용되는 변수, 언제든 읽기쓰기 가능 val //선언시에만 초기화 가능, 중간에 값 .. 2023. 4. 30.
4. 익명객체와 옵저버 패턴-코틀린 7일차 코드테스트 사이트:play.kotlinlang.org 참조:유튜브 디모의 코틀린 //observer(옵저버):이벤트가 일어나는 것을 감시하는 감시자 //이벤트: ex.안드로이드에서, 키의 입력, 터치의 발생, 데이터의 수신 등 // 함수로 직접 요청하지 않았지만 시스템 또는 루틴에 의해서 발생하게 되는 // 동작들 //옵저버 패턴:이벤트가 발생할 때마다 '즉각적으로 처리'할 수 있도록 만드는 // 프로그래밍 패턴 //이벤트 수신하는 클래스와 이벤트 발생 및 전달하는 클래스,총 두개 클래스 필요 //후자 클래스는 전자 클래스를 참조할 수 없어서 둘을 매개하는 // '인터페이스'를 사용함 //후자에서는 자신의 이벤트를 받을 수 있는 인터페이스를 만들어 공개하고, // 전자는 이를 구현하여 후자에 넘겨줌. 이.. 2023. 4. 11.