Data Class

  • ํด๋ž˜์Šค ์ค‘ ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฐ–๋Š” ํด๋ž˜์Šค

  • ์ œ์•ฝ์‚ฌํ•ญ

    • primary constructor (default constructor)๋ฅผ ์„ ์–ธํ•ด ์ฃผ์–ด์•ผํ•œ๋‹ค.

      • ๊ทธ ์ธ์ž๋Š” 1๊ฐœ ์ด์ƒ์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋ชจ๋‘ Property์—ฌ์•ผ ํ•œ๋‹ค. ( var ํ˜น์€ val )

    • abstract, open, sealed, inner ๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•œ๋‹ค.

  • ์žฅ์ 

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ equals(), hashcode(), copy(), toString() ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

  • componentN() ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. (Destructuring)

  • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ• ์ˆ˜ ์žˆ๋‹ค.

//java
public class JavaPerson {

    private String firstName;

    private String lastName;

    private int age;

    public String getFirstName() { return firstName; }

    public void setFirstName(String firstName) { this.firstName = firstName; }

    public String getLastName() { return lastName; }

    public void setLastName(String lastName) { this.lastName = lastName; }

    public int getAge() { return age; }

    public void setAge(int age) { this.age = age; }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        JavaPerson that = (JavaPerson) o;

        if (age != that.age) {
            return false;
        }
        if (firstName != null ? !firstName.equals(that.firstName) : that.firstName != null) {
            return false;
        }
        return lastName != null ? lastName.equals(that.lastName) : that.lastName == null;
    }

    @Override
    public int hashCode() {
        int result = firstName != null ? firstName.hashCode() : 0;
        result = 31 * result + (lastName != null ? lastName.hashCode() : 0);
        return result;
    }
}

//ํ›„...

๊ฐ„-๊ฒฐ

๊ธฐ๋ณธ์ ์œผ๋กœ Property ๋“ค๋งŒ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋˜๊ณ , ๊ทธ ์™ธ์— ์ปค์Šคํ…€ํ•˜๊ฒŒ Function ์ด๋ผ๋˜์ง€ Method ๋ผ๋˜์ง€ ์–ด๋–ค ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ด ์ฃผ๋ ค๋ฉด ๊ทธ๊ฒƒ๋“ค๋งŒ ๋ณ„๋„๋กœ ๊ตฌํ˜„ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

Last updated