컴퓨터 언어 83

[Kotiln] 코틀린 중첩 클래스와 내부 클래스

안녕하세요. 훈츠 입니다. 금일은 중첩 클래스와 내부클래스에 대해 알아보도록 하겠습니다. 중첩 클래스 외부 클래스와 내부에 다른 클래스와 강하게 연결되어 있다는 의미를 전달하기 위해 만들어진 클래스 입니다. 하지만 외부 클래스와 내부 클래스는 내용을 공유 할수 없다는 특징도 있습니다. 외부 클래스와 내용을 공유 할수 없습니다. 사용시에는 중첩 클래스에 인스턴스를 만들어서 사용해야 합니다. var nested = Outer.Nested() class Outer(){ var text = "Outer class" class Nested(){ fun introduce(){ println("nested class") } } } fun main() { var outerNested = Outer.Nested() ou..

[C#] C# 컬렉션 함수 List

안녕하세요. 훈츠 입니다. 금일은 List 사용법에 대해 알아보도록 하겠습니다. Console app 으로 만들었을때 바로 종료되는것을 방지 하기 위해서는 다음 명령어를 추가해야 합니다. Console.ReadKey(); 컬렉션 함수 리스트 (List) List 는 Generic이나 구조체로 간주합니다. 그래서 사이에 자료형을 선언 해야합니다. List list = new List(); add, Count, Clear, AddRange, ForEach, ToArray, remove, revmoveat..etc 함수를 사용 할수 있습니다 String.Join 을 이용해서 단어 사이에 ';'가 찍히는 문자열을 만들수 있습니다. List에서 문자열을 추출할 때는 , ToArray를 이용 합니다. 인수에 대한 ..

컴퓨터 언어/C# 2020.02.20

[Kotiln] 코틀린 함수의 활용 Vararg

안녕하세요. 훈츠 입니다. 금일은 함수에 대해 알아보겠습니다. 코틀린에서 함수를 사용할때 유용한 사항에 대해 정리 해보겠습니다. 함수 오버로딩 (Overloading) 함수의 이름이 같더라도, 속성값의 자료형이 다르거나 속성값의 갯수가 다르다면 오버로딩이 가능합니다. fun main(){ userPrint("testString") userPrint(100) } fun userPrint(data:String) { println("userPrint String : ${data}") } fun userPrint(data:Int) { println("userPrint Value : ${data}") } //출력화면 userPrint String : testString //오버로딩 확인 userPrint Valu..

[Kotiln] 코틀린 nullable 변수 처리

안녕하세요. 훈츠 입니다. 금일은 nullable 변수에 대한 처리에 대해 알아보도록 하겠습니다. Nullable 연산자 종류 [ ?. null safe , ?: 엘비스 , !! null 어소션] ?. null safe 연산자 (마치 if 문 처럼 동작합니다.) 스코프 함수와 같이 사용하면 편리합니다. ?: 엘비스 연산자 null이면 대체 되어서 동작 합니다. !!. 논 null 어소션 연산자 (일부러 null값이 오면 익셉션 에러를 발생 시킵니다.) val a : String? = "test" a?.run {println(a)} // null safe 연산자 a?:println("null입니다.") // 엘비스 연산자 println(a!!.toUpperCase()) // null 어소션 연산자 //출력..

[Kotlin] 코틀린 String 문자 클래스 객체 활용

안녕하세요. 훈츠 입니다. 오늘은 문자열 클래스에 대해 알아보도록 하겠습니다. 문자열 : 나누기, 대체하기, 합치기 val telnumber ="010-9898-8989" var telSplite = telnumber.split("-") //split 나누기 println(telSplite) println(telSplite.joinToString("-")) //joinToString 합치기 var tel = telnumber.replace("-","") //replace 대체하기 println(tel) println(tel.substring(3..10)) //원하는 영역 보기 //출력화면 [010, 9898, 8989] //split 나누기 010-9898-8989 //joinToString 합치기 01..

[Kotiln] 코틀린 컬렉션 함수 : 리스트, 셋, 맵(List, Set, Map)

var list = listOf(1,2,3,4,5) var mutablelist :MutableList = mutableListOf() 안녕하세요. 훈츠 입니다. 오늘은 컬렉션 함수중 리스트에 대해 설명 드리도록 하겠습니다. 컬렉션 함수 리스트 (List) List 는 가장 단순한 형태로 데이터의 집합 입니다. List = listOf() : 생성시에 넣은 객체를 대체, 추가, 삭제 할수 없습니다. MutableList = mutablelistOf() : 생성시에 넣은 객체를 대체, 추가, 삭제가 가능합니다. add, shuffle, remove, revmoveat 함수를 사용할수 있습니다. var list = listOf(1,2,3,4,5) var mutablelist :MutableList = mut..

[Kotlin] 코틀린 제너릭 Generic

안녕하세요. 훈츠 입니다. 오늘은 제너릭 Generic 에 대해 알아보도록 하겠습니다. 제너릭 클래스를 구현 하는 방법과 제너릭 펑션을 구현 하는 방법에 대해 알아보겠습니다. 제너릭 (Generic) 제너릭은 클래스나 함수에서 사용하는 자료형을 외부에서 지정할수 있는 기능입니다. 제너릭은 함수나 클래스를 선언 할때, 고정적인 자료형 대신 실제 자료형으로 대체되는 '타입 패러미터'를 받아 사용하는 방법입니다. 제너릭을 이용하면, 다형성에서 배운 is, as연산자 없이 타입변경 없이 사용이 가능합니다. 타입 파라미터의 이름은 클래스 이름과 규칙이 같지만 일반적으로 'TYPE' 의 이니셜인 'T' 를 사용하는 것이 관례입니다. 만약 여러개의 제너릭을 사용할 경우 T의 다음 알파벳인 를 추가적으로 사용 하기도 ..

[Kotlin] 코틀린 다형성의 개념과 사용방법 is, as 연산자

안녕하세요. 훈츠 입니다. 오늘은 다형성의 개념과 Downcasting 할때 사용되는 is와 as 연산자에 대해 알아보도록 하겠습니다. 다형성 (Polymorphism) 클래스를 상속하다보면 하위 클래스에서 상위 클래스와 똑같은 이름의 프로퍼티나 메서드를 지정 할일이 생깁니다. 하위 클래스에서 이름은 같지만 호출 매개변수가 다르거나 전혀 다른 동작의 메서드를 정의할 필요가 있습니다. 이렇게 이름은 같지만 매개변수가 다르거나 다른 동작을 하도록 하는것을 다형성(Polymorphism) 이라고 합니다. 다형성에 대해 클래스로 예를 들어 보겠습니다. Class Animal : super class Class Tiger : sub class (eat 함수를 override 하고, tiger 클래스만의 shout..

[Kotlin] 코틀린 옵저버 패턴 리스너

안녕하세요. 훈츠 입니다. 오늘은 코틀린에서 광범위하게 사용되는 옵저버 패턴을 구현 하는 방법에 대해 설명 드리겠습니다. 옵저버 패턴을 구현하는 방법은 두가지 입니다. 한가지는 인터페이스를 상속하는 방법과, 두번째는 익명 함수를 통해서 익명 클래스를 구현하는 방법입니다. 옵저버 패턴 키의 입력, 터치의 발생 같은 시스템 또는 루틴에 의해 발생되는 동작들을 이벤트라고 부릅니다. 이벤트가 발생 했을때 상호 작용 할수있는 패턴을 옵저버 패턴이라고 합니다. 코틀린에서는 리스너라고 부르기도 합니다. 옵저버 패턴을 구현하는 방법 [class A - - class B ] 인터페이스 구현 두개의 클래스 class A, class B class A : 인터페이스를 속성값으로 받는 펑션 클래스 class B : 인터페이스..

[Kotlin] 코틀린 오브젝트 싱글톤 패턴 object

안녕하세요. 훈츠 입니다. 오늘은 오브젝트 object 에 대해 이야기 해 보겠습니다. 여러 인스턴스를 생성할 필요 없이 하나의 객체만으로 공통적인 속성과 함수를 사용해야 할때는 class 가 아닌 object로 선언하여 사용 할수 있습니다. 오브젝트 Object 클래스 대신 object 라는 키워드를 사용합니다. 생성자는 허용하지 않습니다. 싱글톤 패턴 : Singleton Pattern 싱글톤 패턴 : 클래스의 인스턴스를 단하나만 만들어 사용하도록 하는 코딩 아키텍쳐 패턴 object Calculator{ fun add(a:Int,b:Int) = a + b fun sub(a:Int,b:Int) = a - b fun multiply(a:Int,b:Int) = a * b fun divide(a:Int,b..