클래스는 public과 default를 접근 제한자로 가질 수 있잖아요?
근데 protected가 default보다 넓은 범위잖아요?
근데 왜 protected는 접근 제한자로 가질 수가 없는검니까!!
옹아들 자바 질문점여
섀내기(explorer7312)
2024-03-14 15:36
추천 0
댓글 7
다른 게시글
-
지금 이 괴로움도 언젠가는 추억이 될까 [2]익명(14.51) | 24.03.14추천 0
-
AWS 자격증들 딸만함? [1]익명(118.235) | 24.03.14추천 0
-
Ai는 사람을 바보로 만들것임♥슬기로운..(re2002) | 24.03.14추천 0
-
도서관 갔다가 집왔다익명(14.51) | 24.03.14추천 0
-
코테 스터디 같은거 어디서구함? [1]익명(115.22) | 24.03.14추천 0
-
외향적 성격은 장애다외척(ext527) | 24.03.14추천 0
-
27살 4600 초봉 IT기업에 입사하는데요 [5]익명(106.101) | 24.03.14추천 0
-
뜬금없지만 내 장래희망 말해봄.txt [1]메쿠이로(drain3484) | 24.03.14추천 1
-
c랑 php를 열심히해서 너희들을 이겨주겠어!!!! [2]40대 프린..(118.235) | 24.03.14추천 0
-
노베이스 풀스택 배우는거 비추임?? [4]익명(211.241) | 24.03.14추천 0
Java에서 클래스의 접근 제한자는 public, default (아무것도 지정하지 않은 경우), 그리고 final 또는 abstract와 같은 다른 키워드를 사용할 수 있습니다. protected 접근 제한자는 클래스에 대해서는 사용할 수 없으며, 주로 클래스 멤버(필드, 메소드)에 대해 사용됩니다. protected 접근 제한자의 범위는 '같은 패키지 내' 또는 '다른 패키지이지만 상속받는 자식 클래스'입니다. 이는 default (package-private) 접근 제한자보다 범위가 넓다고 할 수 있습니다. default 접근 제한자는 같은 패키지 내에서만 접근이 가능합니다. 그럼에도 불구하고 protected를 클래스에 사용할 수 없는 이유는 Java의 설계 원칙 때문입니다. 클래스의 접근성은 두
가지로 제한됩니다: 완전히 공개하거나 (public) 패키지 내부로 제한하기 위함입니다 (default). 클래스를 protected로 선언하게 되면 '다른 패키지의 자식 클래스에서만 접근 가능'이라는 뜻이 될 텐데, 이는 클래스의 접근 범위를 너무 제한적으로 만듭니다. 왜냐하면 클래스는 다른 패키지에서 상속을 통해 확장되는 것이 일반적이기 때문입니다. 그래서 클래스는 public 또는 default 접근 제한자만을 사용하여 더 넓은 접근성을 가질 수 있게 설계되었습니다. 간단히 말해, 클래스를 protected로 선언하는 것은 Java의 접근 제어 철학에 맞지 않으며, 이는 클래스를 사용하고 상속하는 방식에 제약을 두는 것이 되기 때문입니다.
결국 철학과 설계 측면에서 결정나있는거군요. 근데 형님 질문을 어떻게 ai한테 주면 이렇게 설명해주나요.. 제가 질문하면 이상한 말만 늘어놓던데
클래스는 public과 default를 접근 제한자로 가질 수 있잖아요? 근데 protected가 default보다 넓은 범위잖아요? 근데 왜 protected는 접근 제한자로 가질 수가 없는검니까!! 이거 복붙했는뎅...
ㅅㅂ 사람 차별하노
protected 모델링에서 JPA 때문에 자주 쓸텐데
1. 클래스의 접근성은 2가지로 제한됨: 완전히 공개하거나(public), 패키지 내부로 제한하기 위함(defalut) 2. protected는 상속을 통해 클래스를 확장하는 것(많이 사용)을 제한하기 때문