클래스

코틀린 컴파일러는 equals, hashCode, toString 등의 메소드를 기계적으로 생성하는 작업을 보이지 않는 곳에서 해준다. 따라서 필수 메소드로 인한 잡음 없이 소스코드를 깔끔하게 유지할 수 있다. 이제 코틀린 컴파일러가 데이터 클래스에 유용한 메소드를 자동으로 만들어주는 예와 클래스 위임 패턴을 아주 간단하게 쓸 수 있게 해주는 예를 살펴보자. 모든 클래스가 정의해야 하는 메소드 자바와 마찬가지로 코틀린 클래스도 toString, equals, hashCode 등을 오버라이드할 수 있다. // 고객 이름과 우편번호를 저장하는 간단한 Client 클래스 class Client(val name: String, val postalCode: Int) 문자열 표현: toString() class C..
코틀린 인터페이스 코틀린 인터페이스 안에는 추상 메소드뿐 아니라 구현이 있는 메소드도 정의할 수 있다. (자바8 디폴트 메소드처럼) interface Clickable{ fun click() } class Button: Clickable{ override fun click() = println("I was clicked") } >> Button().click() I was clicked 자바에서는 extends와 implements 키워드를 사용하지만, 코틀린에서는 클래스 이름 뒤에 콜론(:)를 붙이고 인터페이스와 클래스 이름을 적는 것으로 클래스 확장과 인터페이스 구현을 모두 처리한다. 코틀린에서는 override 변경자를 꼭 사용해야 한다. interface Clickable{ fun click() ..
2.2 클래스와 프로퍼티 Java Bean 은 프로퍼티(필드)가 늘어나면 생성자의 본문에서 파라미터를 이름이 같은 필드에 대입하는 대입문의 수도 늘어난다. ex) Peron(String name) public class Person{ private final String name; public Person(String name){ this.name = name; } public String getName(){ return name; } } 코틀린에서는 그런 필드 대입 로직을 훨씬 더 적은 코드로 작성할 수 있다. class Person(val name:String) 이런 유형의 클래스(코드가 없이 데이터만 저장하는 클래스)를 값 객체(value object)라 부르며, 다양한 언어가 값 객체를 간결하게 ..
Class 클래스 자바는 클래스와 인터페이스의 메타데이터를 java.lang 패키지에 소속된 Class 클래스로 관리한다. (메타 데이터 : 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보) Class 객체 얻기(getClass(), forName()) 최상위 클래스인 Object의 getClass()메소드를 이용해서 Class 객체를 얻을 수 잇다. // 해당 클래스로 객체를 생성했을 때 Class clazz = obj.getClass(); // 객체를 생성하기전 Class 객체 얻기 try{ Class clazz = Class.forName(String className); }catch(ClassNotFoundException e){ } 예제코드 package basic; public clas..
깡냉쓰
'클래스' 태그의 글 목록