본문 바로가기

Java3

자바 객체 타입 변수에 final의 이해 원시타입에 final을 붙여서 초기화하면 값을 변경할 수 없다. 다음과 같이 오류가 뜨는 것을 확인할 수 있다. 이런 사례가 눈에 익어서 그런지, 이전부터 보통 자바에서 변수에 final을 붙이면 변경불가로 알고 있었다. 그런데 일급컬렉션을 공부하면서 안정성을 위해 객체에 final로 지정해주는 경우를 보았고, 객체의 내부는 계속 변경되었다. 변경 불가인데 왜 변경이 되는지 의문이 들었다. 알고보니 원시타입과 객체에 final이 붙었을 경우는 다르게 생각해야 했다. final을 객체타입에 붙였을 경우, 객체 자체가 변경 불가능한 것은 아니다. 밑줄친 부분을 보면, "final 변수가 객체를 참조하는 경우, 객체의 상태는 변경될 수 있지만, 변수는 같은 객체를 참조한다." 라고 말하면서 배열에도 동일하게 .. 2022. 7. 2.
Pattern, Matcher를 matches()를 이용한 간단한 정규표현식 대조 (Java 11) 시작 맨날 Pattern을 사용할때마다 까먹고 다시 찾아보는 것 같다. 넥스트 스텝 미션을 하면서 Pattern과 Matcher를 사용할 일이 생겼는데, 이참에 정리해봐야겠다. 우선 정규표현식과 대조하는 기능을 간단히 알아보고, 다음에 다른 메서드들도 정리할 생각이다. 1. Pattern이란? 자바 11 공식문서이다. Pattern에 대해 "정규표현식의 컴파일된 표현"이라고 한다. 간단히 말해서 정규표현식을 사용하고 싶은데, 문자열 그대로 사용할 수 없기때문에, Pattern의 compile메서드를 사용하여 Pattern객체로 만들어서 사용해야 한다. 재사용과 일회성이라고 적어놨는데, 밑에서 알아보자. 2. 간단한 사용법 1) Matcher의 matches() 활용 처음 캡쳐본에 빨간색 네모 부분의 코드.. 2022. 3. 27.
메서드 오버라이딩 리턴 타입이 다른 경우 (Java) 1. 오버로딩, 오버라이딩 프로그래밍 언어 기초 공부를 할 때, 수업이나 책에서 상속을 배우면서 보통 오버로딩과 오버라이딩을 같이 배운다. 보통 이런 식으로 배운다. 메서드 오버로딩 : 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능 -> 사용 조건 : 이름 동일, 매개변수 개수 다름 or 타입 다름, 반환형 무관 메서드 오버라이딩 : 상속 관계에 있을 때, 하위 클래스에서 상위 클래스 메서드를 재정의 하는 것 -> 사용 조건 : 메서드 이름 동일, 매개변수 개수, 데이터 타입 동일, 반환형 동일 이 중 오늘 기록할 내용은 오버라이딩의 반환형에 대해서다. 2. 이전에 들었던 의문 혼자 공부를 할 때 오버라이딩은 반환형이 동일해야 한다는 내용을 책에서 봤었는데, 막상 수업에서는 .. 2021. 10. 4.