(Kotlin/Java) data class
Data Class data class User( val name: String, val age: Int ) 코틀린에서는 data 키워드를 붙여주면 equals() / hashCode() 같은 메소드를 자동으로 오버라이드해준다! equals()/hashCode() pair 코틀린에...
Data Class data class User( val name: String, val age: Int ) 코틀린에서는 data 키워드를 붙여주면 equals() / hashCode() 같은 메소드를 자동으로 오버라이드해준다! equals()/hashCode() pair 코틀린에...
프로퍼티 = 필드 + 접근자 클래스 내부의 변수 선언은 자바에서는 필드 선언을 의미하지만 코틀린에서는 프로퍼티 선언을 의미한다. 즉, 필드 뿐만 아니라 접근자 메서드도 알아서 생성해준다. class Person( val name: String, // val은 읽기 전용 프로퍼티. private 필드와 getter. ...
extends / implements구분 없이 그냥 kt :붙이고 적는데, 클래스 상속인 경우 super class의 생성자를 호출해야 하므로 ()를 붙여주어야 하고 인터페이스 구현인 경우 생성자가 없기 때문에 붙이지 않아야 하므로 이를 보면 둘을 구분할 수 있다. 주 생성자(primary constructor) 주 생성자는 클래스 이름 뒤에 오는 ...
enum 자바처럼 enum 클래스 안에 프로퍼티나 메소드를 정의할 수 있다. enum class Color(val r: Int, val g: Int, val b: Int) { RED(255, 0, 0), ORANGE(255, 165, 0), YELLOW(255, 255, 0), GREEN(0, 255, 0), BLUE(0, 0, 255...
Kotlin 중첩 클래스 / 내부 클래스 아무 변경자를 붙이지 않고 클래스의 내부에 다시 정의된 클래스는 자바의 static 중첩 클래스와 동일하다. 내부 클래스로 변경해 바깥쪽 클래스에 대한 참조를 포함하도록 하려면 inner 변경자를 붙여준다. 내부 클래스에서 바깥쪽 클래스의 인스턴스에 접근하기 위해서는 this@를 붙여주어야 한다. class ...
어떤 언어를 사용하든 변수에 담기는 데이터는 크게 Value와 Address 두 가지로 구분할 수 있다. 포인터, 객체 변수 등등은 변수 자체에 담기는 데이터가 Address다. 문제는 객체를 저장/전송하려고 할 때 발생하는데, 객체 변수에 들어있는 Address를 저장/전송한다면 받는 측에서 그 Address를 참조해봐도 아무런 데이터가 없기 때문에...
Kotlin 정규식 간단히 만들기 println("12.345-6.A".split("""\.|-""".toRegex())) 그냥 "를 하나만 적으면 escape를 위해 \\를 사용해야 하기 때문에, 정규식을 사용하는 경우 """를 사용하는 편이 좋다. 사실 이런 경우 굳이 정규식 쓰지 않아도 된다. println("12.345-6.A".spl...
확장 함수 / 확장 프로퍼티 Note ) 코틀린의 최상위 객체는 Any이기 때문에, 여기에 추가하면 모든 객체에 확장 함수를 추가할 수 있다. 확장 함수를 사용하면 좋은 경우는 String 같은 기본 타입을 확장하고 싶을 때. e.g., String.appendSignature (public으로 쓰는 경우도 많고, 시그니...
PreparedStatement란? 일반 statement String userId = "user123"; String sql = "SELECT * FROM users WHERE id = '" + userId + "'"; Statement stmt = connection.createStatement(); // 구문 분석 & 컴파일 Result...
Padding_Oracle_Attack_by_laughfool.pdf length가 나누어 떨어지더라도 padding이 올바르지 않으면 Error 암/복호화에 사용되는 IV는 같다. TRIPLE DES는 고려하지 않아도 되는게, 이미 그 부분에 대한 연산이 끝난 이후의 Intermediary Value(중간 값)를 구하는 것이기 때문.