Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차]한상윤 학습 PR 제출합니다! #5

Closed
wants to merge 23 commits into from

Conversation

0702Yoon
Copy link
Contributor

추가 Q & A

한번도 final이라는 개념을 제가 직접 써본 적이 없어서 언제 사용하는 지 궁금합니다. Enum도 비슷한 맥락으로 왜 써야하는 지에 대한 예시가 조금 궁금해요!
🤔 잘 모르겠거나, 더 궁금한 내용이 있었나요?
일단 fork나 git 자체에 대한 이해도가 아직은 살짝 부족한 것 같아서 혼자 더 공부하고 여쭤보겠습니다! 특히 한글파일로 작성하다가 markdown이라는 것도 처음 접해서 어떻게 사용하는 지 공부하곘습니다. 또 제가 정리하는 것에 약해서 어떻게 써야 가독성이 좋게 쓸 수 있는 지 궁금해요!

@seongje00416
Copy link

seongje00416 commented Sep 24, 2023

  1. final 키워드에 대해서
  • final 키워드의 핵심 포인트는 "만들어짐과 동시에 변경이 불가능하다"는 점입니다.
  • final 변수의 경우, 선언할 때에만 값을 지정할 수 있습니다.
  • final 메서드의 경우, 자식 클래스에서 오버라이딩이 불가능합니다.
  • final 클래스의 경우에는 상속이 불가능합니다.

예를 들어, Summer라는 클래스를 만들고 그 안에 temperature, name, humidity 라는 변수가 있다고 합시다.
여름은 매일매일 기온과 습도는 달라지지만 계절이 "여름"이라는 사실은 변화가 없습니다.
이런 경우, private final name = "여름"; 이라고 한 번 선언을 해서 사용하면 이후에 name이라는 변수의 값을 변경할 수 없으니 코드를 작성하다가 실수로 name이라는 변수를 바꿔버리는 경우가 생기지 않습니다.

이처럼 final 키워드는 최초에 "단 한 번" 값을 정하고 그 후에 변경할 일 없는 객체들에 대해 정의할 때, 추후 코드를 작성하거나 프로그램이 작동하는 과정에서 변경되는 불상사를 막기 위해 자주 사용합니다.


  1. enum 클래스에 대해
  • enum은 '열거형'이라는 의미로 비슷한 종류의 객체를 여러 개 표현하기 위해 사용할 때 필요합니다.

예를 들어, 어떤 클래스에 다음과 같은 변수들을 정의했다고 해보겠습니다.

private final String spring = "봄";
private final String summer = "여름";
private final String autumn = "가을";
private final String winter = "겨울";

지금은 4개뿐이라 간단하게 보일 수 있어도 코드가 길어지거나 변수가 많아지게 되면 굉장히 보기 불편해집니다.
4개의 변수는 "계절"이라는 공통점이 있으며 모두 같은 String 타입이라는 특징이 있습니다.
이런 경우,

public enum Season {
    SPRING( "봄" ), SUMMER( "여름" ), AUTUMN( "가을" ), WINTER( "겨울" );

    private final String name;
    public Season( String korean ){
        this.name = korean;
    }
    public String getName(){
        return this.name;
    }
}

이런 식으로 표현해 가독성을 올리고 변수 추가에 용이함을 더하며, 해당 변수를 사용해야 하는 곳에서 다른 타입의 변수를 사용하지 않도록 제한도 할 수 있다는 장점이 있습니다.

TaetaetaE01 and others added 17 commits September 29, 2023 17:11
1주차 고태현 학습 PR
[1주차] 김지나 학습 PR 제출합니다
* Update and rename 1주차.md to 임준용.md

* Update 임준용.md

* Update 임준용.md
* Update and rename week01/1주차.md to 홍정우.md

* Delete 홍정우.md

* week01 Assignment 홍정우

week01 Assignment 제출입니다!
* 1주차 과제_심규창

* 1주차 심규창 학습 PR
1주차 과제입니다! 
한글로 작성해서 옮긴거여서 사진이나 가독성이 좀 떨어질 것 같아요.
@0702Yoon 0702Yoon closed this Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants