전체 글(472)
-
[ES6]자바스크립트 ES6 1편
ES6 자바스크립트 자바스크립트도 시대가 변하면서 새로운 버전을 소개하고 있는데 이번에는 2009년에 5.0이 발표되고 2015년까지 EcmaScript6라고 공식 표준이된 Es6에 대해 공부해보려고 한다. let, const 자바 스크립트에서는 원래 var라는 변수 선언 문이 있었다. 하지만 es6에서 부터는 let을 사용하고 있고 대부분의 기능은 같지만 조금 다른점이 있는데 이것을 소개시켜 보겠다. 그리고 원래는 컴파일 타임 상수를 선언하는 문이 없었는데 es6부터는 지원하기 시작했다. var x = 21; function f(){ console.log(x)//21 x = 31; if(true){ x= 71; console.log(x);//71 } console.log(x); //71 } functi..
2018.06.23 -
[kotlin] Object Declarations
Object Declarations 객체선언 용도 1. 싱글턴을 사용하기 위해 2. Object Expression을 이용해서 만들 수 있음 사용 문법 1. object 키워드 뒤에 항상 이름이 있어야한다. 2. object Expression이 아니기 때문에 변수에 바로 대입할 수 없다. 3. 여러개의 클래스나 인터페이스를 상속 혹은 구현할 수 있다. 예시) 출력)123 Companion Object(동반자) object declaration은 companion 키워드를 붙일 수 있다. 붙여주면 Companion 기능을 사용할 수 있다. 참고. 이름은 써도되고 안써도 된다. 그리고 원래 같았으면 호출할 때 MyClass.object이름.함수명 이런식으로 사용할 수 있다. Myclass.create() ..
2018.06.18 -
[kotlin]Object Expression
Object Expression and Declarations Object의 용도 - 어떤 클래스에서 조금 변형된 객체를 생성할 때 - 새로운 subclass의 명시적인 선언 없이 객체생성 Object Expression -Java의 익명객체와 같은 역활을 한다. object:Runnable을 쓰는 순간 바로 객체가 생성되는 것이고 변수에도 집어 넣을 수 있다. object Expression이 없을 때는 클래스를 만들어서 사용했지만 하지만 object Expression을 사용하면 클래스의 생성없이 아래와 같이 사용할 수 있다. 그리고 여기서 람다식을 사용해주면 훨씬 간단하게 사용할 수 있다. 그리고 꼭 상속을 받을 필요는 없다. 객체명.a 객체명.b와 같이 접근할 수 있다. Object Express..
2018.06.18 -
[kotlin] Nested Class And Inner Class
Nested Class And Inner Class Nested Class(중첩 클래스) 중첩 클래스는 클래스안에 한개의 클래스를 또 선언하는 것을 말한다. fun main(args: Array) { println(OuterClass.InnerClass().foo()) } class OuterClass{ var bar:Int = 2 class InnerClass{ fun foo() = 2 } }이와 같이 사용할 수 있는데 덮고 있는 클래스의 멤버에는 도달 할 수 없는 것 같다. 따로 값을 전해주고 싶다면 생성자를 통해 전해주어야 한다. Inner Class(내부 클래스) 내부 클래스는 클래스안에 한개의 클래스를 또 선언하는 것을 말한다. 하지만 위와 달리 덮고 있는 클래스의 멤버 변수에 접근할 수 있다...
2018.06.18 -
[kotlin]Data Class
Data Class Data Class데이터 클래스란 클래스가 data를 보유하면서 아무것도 하지 않는 클래스이다. 사용법 data class User(var name:String, var age:Int) 하지만 데이터 클래스는 데이터를 조금 더 편하게 사용하라고 컴파일러가 컴파일 할 때 equals()hashCode()copy()toString()componentsN() 등의 함수를 제공해주고 있다. 명시적으로 제공해주는 경우에는 컴파일러가 자동으로 생성해주지 않는다. 좋은 데이터 클래스의 조건기본 생성자에 1개 이상의 파라메터 기본 생성자의 파라미터가 var, val로 생성 Data Class는 abstract, open, sealed, Inner를 사용하지 못함 코틀린 1.1버전 이후에 바뀐 dat..
2018.06.18 -
[kotlin] kotlin 강의 properties2
kotlin 강의 properties2 프로퍼티의 가시성의 변경이나 어노테이션이 필요한 경우 기본 accessor의 수정 없이 body없는 accessor를 통해 정의가능 var abc:String = "asdg" private set var seet:String = "abcd" @Logger get 위와 같은 방법으로 바꾸어 줄 수 있다. body를 작성해도 상관 없다. Backing Field setter와 getter에 단순히 field라는 변수를 사용하는 경우를 본적이 있을 것이다. 이것은 setter와 getter내에서만 사용한 특별한 변수인데. 사실상 이 setter와 getter를 사용하는 객체가 field인 것 이다. 하지만 이필드를 사용하기 위해서는 몇가지 조건이 있는데 알아보자!!! 1..
2018.06.17