method(2)
-
3장 : 함수 정의와 호출
- const 추가 시 public static final 필드로 컴파일 됨 # 확장함수 - 어떤 클래스의 맴버 메서드인 것 처럼 호출할 수 있지만 그 클래스 밖에 선언된 함수 package strings fun String.lastChar() : Char = this.get(this.length - 1) - 클래스 이름(String) -- 수신 객체 타입 - 확장 함수가 호출되는 대상이 되는 값(객체, this) -- 수신 객체 - 위 코드에서 this 생략 가능 - 확장함수 안에서는 클래스 내부에서만 사용할 수 있는 private, protected 맴버를 사용할 수 없다. - 확장함수는 오버라이드 할 수 없음 - 확장한 함수와 그 클래스 맴버 함수의 이름이 같으면 확장 함수가 아니라 맴버 함수가 호..
2023.04.10 -
8장 : 메서드
아이템 49. 매개변수가 유효한지 검사하라 - 매개변수 값이 잘못됐을 때 던지는 예외를 문서화해야 - 나중에 쓰기 위해 저장하는 매개변수는 특히 더 신경 써서 검사해야 - 유효성 검사 비용이 지나치게 높거나 실용적이지 않을 때, 혹은 계산 과정에서 암묵적으로 검사가 수행될 때는 검사 패스해도 됨 아이템 50. 적시에 방어적 복사본을 만들라 - 클라이언트가 여러분의 불변식을 깨뜨리려 혈안이 되어 있다고 가정하고 방어적으로 프로그래밍해야 - 생성자에서 받은 가변 매개변수를 각각 방어적으로 복사해야 - 매개변수가 제 3자에 의해 확장될 수 있는 타입이라면 방어적 복사본을 만들 때 clone 사용해서는 안 됨 - 인스턴스를 복사하는 데는 일반적으로 생성자나 정적 팩터리를 쓰는 것이 좋음 - 그 객체가 잠재적으로..
2023.04.06