[JAVA] 자바 중첩 클래스(Nested Class), 지역클래스의 변수 캡처(Capture)와 함께 정리하며 람다의 출생 이유까지 알아보기
·
Java & Kotlin
들어가며클래스 안에 클래스를 두는 것을 중첩 클래스라고 하는데, 정의 자체만 알고 이를 어떨 때 사용하고 어떤 방식으로 클래스를 중첩시키는지 명확하게 알고 있지 않다. 그래서 이번 기회에 깊게 정리해보고자 한다!본문으로보통은 코테 문제에서 Node 구조체가 필요할 때 내부에 static class를 두었던 기억이 있다. 이때는 자바의 메인함수는 static이니 Node클래스도 static으로 올려야 활용할 수 있으니.. 그렇게 하자! 정도로 외우고 작성했었다.public class Main { static class Node { int x; int y; Node(int x, int y) { this.x = x; this.y..
[JAVA] split() 메서드 정복하기 (나는 왜 split(delimiter, -1)을 썻을까?)
·
Java & Kotlin
들어가며문자열을 쪼개야겠다 생각이 들면 split() 메서드가 떠오르기 마련이다. 우아한테크코스 프리코스 1주차 문제도 split() 메서드를 절묘하게 이용해야하는 문제였다. 그래서 이번 기회에 split() 메서드에 대해서 깊게 알아보고, 내가 코드에 인자로 -1을 넣은 이유도 블로그에 작성해볼까 한다. 본론으로자바의 String.split()은 정규식(regex) 을 기준으로 문자열을 잘라 문자열 배열을 반환한다.시그니처String[] split(String regex)String[] split(String regex, int limit)여기서 첫 번째 인자 regex는 정규표현식이다.두 번째 인자인 limit은 결과 배열의 길이/후행 빈 토큰 처리에 영향을 준다.limit > 0 : 최대 limit..
[JAVA] 정적 팩토리 메서드(Static Factory Method)란? (버거 먹고싶은 작성자와 스프링의 반환 방식을 곁들인)
·
Java & Kotlin
들어가며현재 우아한테크코스 8기 1주차 문제를 열심히 풀어보는 중이다! 1주차라 그런지 문제 자체의 난이도는 크게 어렵지 않다(?). 그래서 앞으로 어려워질 것을 대비해서 자바의 객체지향을 적극 활용할 수 있게끔 다양한 개념들을 적용해보며 구현중이다. 그 개념들을 내 것으로 만들 수 있게 자세하게 정리해본다!! 그중 가장 첫번째로 적용해본 개념이 정적 팩토리 메서드이다. 사실 전 기수의 코드들을 참고하며 작성하면서 되게 좋은 객체 생성 방법이다...!! 하고 썻었는데, 알고보니 엄청 유명한 객체 생성 패턴이었다. 이 개념을 적용해보면서 "객체 생성의 역할 자체가 중요한 경우" 라면 정적 팩토리 메서드를 고려해볼만 하구나!를 느꼈다. 정적 팩토리 메서드가 무엇인지 자세하게 적어보며 단점까지 알아보자!! ..