2024. 8. 12. 03:42ㆍ■ JAVA REVIEW & PRACTICE/LECTURE1 - SPROUT
오늘 배워갈 것
데이터 형을 활용한 불변 객체의 특징 학습하기
String 객체 학습하기
기본형 변수와 참조현 변수의 차이를 이해하고 설명하기
Final을 사용하여 불변을 활용할 수 있는지
불변 객체의 특징을 이해하고 설명할 수 있는지
불변의 특징을 활용해서 메모리 관리 및 효율성을 높이는 방법을 이해하고 설명할 수 있는지
데이터 타입은 두가지로 나뉨
![]() |
![]() |
아래 순서대로 클래스 나눠서 코드 작성하기
작성 순서
배운 내용 (하지만 이해 잘 못함)
Artifact를 다룬 주머니가 Chamber에 있었으니 chamber에서 final을 넣어주면 Artifact에서도 data 값 앞에 final 을 만들어 불변객체로 만들어줘야함. 이때 data 키워드가 들어간 dungeon 클래스와 labyrinth 클래스에서 숨김 해주기
private final Artifact artifact = new Artifact(1);
private final Artifact artifact = 여기 주머니에 저장될 수 있는 값이 실제데이터가 아닌 메모리주소임
즉 불변객체를 만들어주려면 객체 안에 있는 아이를 final 로 만들어 줘야함
불변객체를 fakeArtifact 로 만들어 주었는데 이것을 상족조차도 못하게 만들 수 있음
이 fakeArtifact가 지금 부모를 상속 받는데 상속을 못하게 하려면 Artifact 클래스 앞에 final 붙여주면 fakeArifact에서 사용을 못함
이 final 키워드를 사용해서 다른 클래스가 상속을 없게 만들어 고정해버리는것. 이건 절대 상속해서 쓰지 말라는 뜻
(의도치 않은 확장을 방지하기 위한 목적)
정리
1. 객체간의 관계는 생성자를 통해서 관계를 맺어줄 수 있음
2. final 키워드를 통해서 담기는 값이 실제 데이터인지 메모리 주소인지에 따라서 내가 담은 값이 변동이 될 수도 있고 안 될 수도 있음
'■ JAVA REVIEW & PRACTICE > LECTURE1 - SPROUT' 카테고리의 다른 글
동등성과 동일성의 차이 (0) | 2024.08.12 |
---|---|
코드의 흐름 직관적으로 설명해보기 (0) | 2024.08.11 |