[Java 기초문법] by Professional Java Developer Career Starter: Java Foundations @ Udemy
자바 프로그래머라면 일반적으로 시작할 때 fields를 추가하고 1개의 constructor와 getters and setters를 각각 깔고 시작을 하는 경향이 있다.
그렇다면 왜 이런 starting point가 필요한가에 대한 의문이 생겨난다.
import java.time.LocalDate;
import java.util.Objects;
public class Weirdo {
private String lastname;
private String firstname;
private LocalDate dob;
public Weirdo() {
}
public Weirdo(String lastname, String firstname, LocalDate dob) {
this.lastname = lastname;
this.firstname = firstname;
this.dob = dob;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public LocalDate getDob() {
return dob;
}
public void setDob(LocalDate dob) {
this.dob = dob;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Weirdo weirdo = (Weirdo) o;
return Objects.equals(lastname, weirdo.lastname) && Objects.equals(firstname, weirdo.firstname) && Objects.equals(dob, weirdo.dob);
}
@Override
public int hashCode() {
return Objects.hash(lastname, firstname, dob);
}
}
=> That the true value of object orientation is the combining of data with behavior together to give you to, to allow you to model the real world or business concepts or whatever.
한편 이에 대한 불만을 해소하기 위해 등장한 것이 Records라는 것이다 : New data type of Records.
위와 같은 내용이 Records에서는 이렇게 간단하게 표현될 수 있다.
records에서 정의되는 것들은 final로 declared 된다.
반응형
'Programming > Java, Spring' 카테고리의 다른 글
[Java 기초문법] collections, list, linked list, looping with iterators (0) | 2022.10.20 |
---|---|
[Java 기초문법] 자바 람다 Lambdas, delegate method (0) | 2022.10.20 |
[Java 기초문법] 자바 객체지향 | OOP, Interfaces, Super class, Abstract class, Factory Methods, Nested class, inner class (0) | 2022.10.20 |
[Java 기초문법] 객체지향 | Gradle, Enums, Enum의 여러 기능들 (0) | 2022.10.19 |
[Java 기초문법] 자바 코드 디버깅하기 (0) | 2022.10.19 |