본문 바로가기
Programming/Java, Spring

[Java 기초문법] 자바 records

by Renechoi 2022. 10. 20.

[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 된다. 

 

 

 

 

 

 

 

 

반응형