티스토리 뷰

기타/TIL

210210 수 TIL

bong-f 2021. 2. 10. 10:28

Done

  • 미션 및 수업 복습 비공개
  • cherry-pick 처음 성공!
  • 미션 수행 및 관련 궁금했던 부분 학습

Learned

1. 접근제어자

(1-1) 왜공부?

  • 분명 자바의 정석에서 공부했지만 실제 코드를 짤 때 적용하지 못했다.

  • 적용하지 못한 가장 큰 부분은 생성자의 파라미터로 받아 값을 할당해주는 final 필드에 대해서

    class A{
       private final String a;
       public A(String a){ this. a = a; }
  • 했을 때 private을 빠트렸다.

(1-2) 학습내용

  • 자바의 정석은 복습해보았지만 기존지식에서 추가되는 점이 없어 혹시 놓치고 있는 것이 있나 해서 생활코딩 접근제어자 파트를 들었다.

    • 새롭게 알게 된 내용(or 학습했지만 기억에서 삭제된..)
      • 접근제어자 5 : 클래스의 접근 제어자
        • public과 default만을 갖고 있다
        • default는 같은 패키지 내에서만 사용 가능
        • 다른 패키지에서 (import하고도) 사용하려고 하면 불가능
        • 단, public은 제약 사항이 있다.public class의 이름은 해당 파일 명과 반드시 동일해야 함
          == 하나의소스코드 안에는 하나의 public class만 존재 가능
  • 여러 자료를 찾다가 알게된, 메소드(final String a)의 의미

    final

    • 메소드에 파라미터로 final 변수를 전달하면?
    • 클래스 a의 메소드 a-를 final을 붙이면 다른 클래스 b가 a를 상속받는다 할 때 메소드 -a를 오버라이딩 하지 못한다.
    • 클래스에서 fianl class C {} : 상속 금지
      • 다른 클래스 D extends C 불가

    abstract

    • 멤버 중에 하나라도 abastract이면 해당 클래스는 abstract이다
    • 구체적인 로직을 가진 메서드가 가질 수 있다. (구현부있는)

2. enum

(2-1) 왜 공부?

  • 생성자에 파라미터를 넘겨 받을 때, 해당 파라미터가 특정 값을 가질 때만 유효한 경우를 만들고 싶었다.

(2-2) 학습내용

  • 출처 : 생활코딩 - enum (동영상 4개 시청 완료) https://bong-f.tistory.com/174
  • enum은 사용목적이 분명한 '클래스'다.
    출처 생활코딩 https://www.youtube.com/watch?v=3Xwko1gOjZQ&feature=emb_logo
  • 위와 아래의 의미가 같다. 그래서 APPLE() 이런 의미는 Fruit 객체를 생성한다는 말과 같다.
    • 그렇기 때문에 APPLE("red")해준다면 생성자로 String을받아 어떤 작업을 해준다는 말과 같다. 자세한 내용 https://bong-f.tistory.com/174
  • enum의 효과
    • 상수를 배열처럼 활용 가능하다. for(Fruit f ; Fruit.values()) 처럼 배열에서 꺼내 오는 것으로 사용 가능
    • 코드가 간결해진다
    • 인스턴스의 생성과 상속을 방지할 수 있다
    • 목적(열거를 위한 코드)을 코드만 봐도 알 수 있다.

(2-3) 더 학습할 내용

(2-4) 좋았던 블로그 (210212 추가)

  • https://velog.io/@kyle/%EC%9E%90%EB%B0%94-Enum-%EA%B8%B0%EB%B3%B8-%EB%B0%8F-%ED%99%9C%EC%9A%A9 enum에 대해서 정리를 잘해두셨다.

    • enum == 관련이 있는 상수들의 집합

      • 클래스 내에서 상수를 선언하거나 인터페이스로 관리하면 네이밍이 겹치거나 / 다른 분류의 상수 값이더라도 같은 데이터 타입이라면 이 둘을 비교하는 것이 가능한 문제점 (생활코딩 enum 강의에서 배웠던 내용)을 해결 하기 위해 enum 등장 // 나는 이렇게 이해하고 있었는데 위 블로그에서는

        기존에는 인터페이스나 클래스 내에서 상수를 선언함으로써 상수를 관리 하였는데 클래스 내에서 선언하는 부분은 네이밍이 겹칠 수 있고 불 필요하게 상수가 많아지는 단점이 있다.
        인터페이스로 관리하는 경우 이런 부분은 줄어들지만 여전히 IDE의 지원을 적극적으로 받을 수 없고 타입 안정성이 떨어지는 단점을 가지고 있었다. 이를 보완하며 나온 것이 Enum이다.

      • 이렇게 깔끔하게 정리하셨다.

3. 기타


Good

  • 게임 한 시간 보충 및 연휴에 다른 일정을 위한 시간을 위해 늦게까지 공부함

Bad

  • 게임을 조금 했다.

Feeling

  • 공부하면서 천천히 하나하나 배워가면서 공부하는 방식을 택하고 있는데 과연 맞는 것인지,, 한 번 쭉 훑고 아니면 코드를 작성하면서 죽쭉 나가야 하는 것인지 고민이 된다.

'기타 > TIL' 카테고리의 다른 글

210213 토 TIL  (0) 2021.02.13
210212 금 TIL  (0) 2021.02.12
210209 화 TIL  (0) 2021.02.09
210208 월 TIL  (0) 2021.02.08
210206 - 07 토일 TIL  (1) 2021.02.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함