TIL9. 자바 기초를 공부하면서(1)

2025. 2. 28. 19:37·TIL

오늘은 1주, 2주차 강의를 빠르게 한 번 들으면서 헷갈렸던 부분을 체크해두고 그 부분에 대해서 다시 한 번 정리하려고 한다!

 

1. getter와 setter를 사용하는 이유

객체지향에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다.
그 이유는 객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성이 깨질 수 있기 때문이다.
예를 들면 자동차의 속도는 음수가 될 수 없는데 외부에서 음수로 변경하면 객체의 무결성이 깨진다.
이러한 문제를 해결하기 위해 객체지향 프로그래밍에서는 메소드를 통해서 데이터를 변경하는 것을 선호한다. 

 

2. 왜 문자열 비교에 equals() 메소드를 써야하는가 ? 

일반적인 경우

String name1 = new String("");
String name2 = new String("");

 

- new연산자는 힙 영역에 새로운 객체를 만든다.
- 이 경우 서로 다른 String 객체를 참조하게 된다.

 

 

new 연산자 사용

String name1 = new String("");
String name2 = new String("");

 

- new연산자는 힙 영역에 새로운 객체를 만든다.
- 이 경우 서로 다른 String 객체를 참조하게 된다.

 

 

1. == 연산자는 참조(주소)를 비교

== 연산자는 객체의 메모리 주소(참조값)를 비교하기 때문에, 같은 문자열이라도 **서로 다른 객체라면 false**를 반환한다.
> name1 == name2 의 결과는 true 
name3 == name4 의 결과는 false

 

2. equals() 메서드는 문자열의 내용(value)을 비교

 

equals() 메서드는 문자열의 실제 값(내용)을 비교한다.
> boolean result = name3.euqls(name4); 의 결과는 true

JVM 메모리 사용영역에 대해 공부를 하다보니까 왜 문자열 비교하는 부분에서 ==가 아닌 equals()를 사용하는가? 에 대해서 자연스럽게 깨닫게 되었다.

 

 

3. this

 

4. super

 

5. implements VS extends

 

 

--블로그 이동중...---

'TIL' 카테고리의 다른 글

TIL11. 키오스크 Lv2,3 진행  (1) 2025.03.12
TIL10. 자바 기초를 공부하면서(2)  (0) 2025.02.28
TIL8. 깃, 브랜치 전략  (0) 2025.02.28
TIL7. 1주차를 마치며.. KPT회고  (0) 2025.02.28
TIL6. 1주차 - 상세 페이지 만들기  (0) 2025.02.28
'TIL' 카테고리의 다른 글
  • TIL11. 키오스크 Lv2,3 진행
  • TIL10. 자바 기초를 공부하면서(2)
  • TIL8. 깃, 브랜치 전략
  • TIL7. 1주차를 마치며.. KPT회고
에그마요샌드위츼
에그마요샌드위츼
  • 에그마요샌드위츼
    아자아자
    에그마요샌드위츼
  • 전체
    오늘
    어제
    • 분류 전체보기
      • java
      • sql
      • TIL
      • spring
      • JPA
      • spring-security
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    GIT
    til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
에그마요샌드위츼
TIL9. 자바 기초를 공부하면서(1)
상단으로

티스토리툴바