일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 버전일치
- degit
- Spinner
- 스타일보험
- webpack
- java
- 쿠키
- 함수
- parcel
- 상속
- 답글
- snowpack
- sub query
- 시큐어코딩
- 스프링
- React
- Android
- SQL
- 오버라이드
- kotlin
- java#왕초보
- git
- 안드로이드
- FIle
- Spring
- 게시판
- 왕초보
- 미니게임
- 숫자
- 코틀린
- Today
- Total
목록Coding (130)
YSHUSH

interface Foo interface Foo{ val bar:Int fun method(qux:String) } class createFoo class createFoo(val _bar:Int) :Foo{ override var bar: Int = _bar override fun method(qux: String) { println("$bar $qux") } } 함수출력부 fun main(args: Array) { var cf = createFoo(123) cf.bar = 234 println(cf.method("hi")) } 클래스는 다중상속이 되지 않지만 인터페이스는 다중 상속이 가능하다. interface Bird interface Bird{ val wings:Int fun fly() fun ..

추상클래스는 일반 메소드와 추상 메소드 모두 포함시킬 수 있다. 예제1 Printer class와 myPrinter 두 개의 클래스가 있을때 객체 생성 방법으로 달리 적어보면 abstract class Printer{ abstract fun print() fun method() = println("Printer method()") } class myPrinter:Printer(){ override fun print() { println("출력합니다") } } 이렇게 적을 수 있다. abstract class Printer{ abstract fun print() fun method() = println("Printer method()") } val myPrinter = object : Printer(){ ..

예제1 Base class open class Base(var firstname:String = "코니", val lastName:String = "김", var age:Int){ /* class Base{ var firstname:String val lastName:String var age:Int constructor(firstname:String, lastName:String, age:Int){ this.firstname = firstname this.lastName = lastName this.age = age } */ open val fullName:String get() = "$firstname $lastName" } 주석처리된 부분이 축약되어 Base class의 생성자로 들어가면 이런 형태..

컴퓨터와 가위바위보 게임을 해보도록 하자 컴퓨터는 랜덤으로 내고 유저는 숫자를 입력하여 게임한다. 몇승 몇패 몇무인지 결과값도 출력해보자. 변수 정의 fun main(args: Array) { var userNum: Int var comNum: Int var win: Int var lose: Int var draw: Int var result: Int win = 0.also{ draw = it }.also { lose = it } /* win = 0 lose = 0 draw = 0 */ println("가위 바위 보 게임입니다.") } win = 0.also{ draw = it }.also { lose = it } → 0으로 초기화 하는 부분 랜덤값 얻기 // random comNum = (Math.ra..

lazy는 느긋한 계산법이라는 뜻으로 필요한 때(호출될 때)까지 계산을 늦추는 기법이다. fun main(args: Array) { val lazyTest = LazyTest() // (1) lazyTest.flow() // (3) } // lateinit class LazyTest{ init { println("init block") // (2) } val subject by lazy { println("lazy initialized") // (6) "subject value" // (7) } fun flow(){ println("subject not initialized") // (4) println("subject: $subject") // (5) -> 최초 초기화 } } println("subje..

게터와 세터 형식 - field의 사용 (변수 자신을 가리킨다.) class User(_id:Int, _name:String, _age:Int){ var id:Int = _id get() = field var name:String = _name get() = field set(value){ println("name setter") field = value.toUpperCase() } var age:Int = _age get(){ return field } set(v){ field = v } } 커스텀 setter class FakeAge{ var age:Int = 0 set(value){ field = when{ value 18 value in 18..30 -> value else -> v..

class Base(val id:String, val pwd:String, val age:Int){ // -> 기본생성자 constructor(id:String, pwd:String) : this(id, pwd, 22){ // -> 보조 생성자 println("constructor($id:String, $pwd:String, $age:Int)") } constructor(id:String) : this(id, "1004", 22){ // -> 보조 생성자 println("constructor($id:String, $pwd:String, $age:Int)") } override fun toString(): String { return "Base(id='$id', pwd='$pwd', age=$age)" }..

상속 open class Person{ val firstName:String = "" val lastName:String = "" private var age:Int = 24 protected var protectVar:Int = 12 internal var interVar:Int = 20 // internal은 패키지가 다르면 접근이 안됨 /* constructor(firstName: String, lastName:String, age:Int) { this.firstName = firstName this.lastName = lastName this.age = age } */ private fun privateFunc(){ } override fun toString(): String { privateFu..

클래스의 기본형태 class Person{ var firstName:String var lastName:String var age:Int constructor(firstName:String, lastName:String, age:Int){ this.firstName = firstName this.lastName = lastName this.age = age } fun getFullName():String{ return "$firstName $lastName $age" } } class Bird{ // property(속성) var name:String = "mybird" var wing:Int = 2 var vol:String = "short" var color:String = "blue" fun fly..

fun sum(a:Int, b:Int) = a + b fun text(a:String, b:String) = "Hi! $a $b" fun funcParam(a:Int, b:Int, c:(Int, Int) -> Int):Int{ return c(a, b) } fun hello(body:(String, String) -> String){ println(body("Hello", "World!")) } 함수 호출부 형식에 맞는 파라미터 + ::함수명 으로 파라미터에 함수를 대입할 수 있다. var global = 10 fun main(args: Array) { val res1 = funcParam(3, 4, ::sum) println(res1)// 결과값 = 7 hello(::text) hello({a, b -..