옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트
  • 혼자 공부하는 자바
  • continue문
  • 타입변환
  • 변수선언
  • break문
  • 코드스플리팅
  • map() 함수
  • java.lang패키지
  • 정적멤버
  • 자바스트립트
  • 리액트
  • js
  • java
  • TypeScript
  • toFixed
  • 자바
  • 리액트를다루는기술
  • join()
  • useCallback
  • 백준
  • 기본api클래스
  • 함수선언
  • 템플릿리터럴
  • 노마드코더
  • 접근제한자
  • do-while문
  • JavaScript
  • reverse() 메서드
  • useRef
  • match()
  • java.util패키지
  • ==
  • Node.js
  • While문
  • 타입스크립트
  • indexOf()
  • template literal
  • map
  • fillter
  • switch문
  • useState
  • join() 메서드
  • useMemo
  • 혼자공부하는자바
  • sort() 메서드
  • 인스턴스멤버
  • reduce
  • 화살표함수
  • useEffect

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

JAVA

패키지와 접근 제한자

2022. 10. 13. 13:44

패키지 선언

 해당 클래스가 어떤 패키지에 속할 것인지를 선언하는 것

package 상위패키지.하위패키지;

public class ClassName { ••• }
  • 패키지 이름 규칙
    • 숫자로 시작해서는 안 되고 $를 제외한 특수 문자를 사용해서는 안된다.
    •  java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다.
    • 모두 소문자로 작성하는 것이 관례이다
  • import문
    • 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, import문으로 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알려줘야 한다.
    • 상위 패키지를 import했다고 해서 하위 패키지까지 import되는 것은 아니다.
import 상위패키지. 하위패키지. 클래스이름;
import 상위패키지.하위패키지.*;

접근 제한자

접근(클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근)을 제한하기 위해 사용된다.

• public 접근 제한자: 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있도록 한다.
• protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다.
• private 접근 제한자: 단어 뜻 그대로 개인적인 것이라 외부에서 사용될 수 없도록 한다.

• default 접근 제한: 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 합니다.

클래스의 접근 제한

  • default 접근 제한
    • 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가짐
    • 다른 패키지에서는 사용할 수 없도록 제한
  • public 접근 제한
    • 같은 패키지뿐만 아니라 다른 패키지에서도 아무런 제한 없이 사용 가능

생성자의 접근 제한

객체를 생성하기 위해서는 new 연산자로 생성자를 호출 

  • public 접근 제한
    • public 접근 제한은 모든 패키지에서 아무런 제한 없이 생성자를 호출할 수 있도록 한다.
  •  protected 접근 제한
    • protected 접근 제한은 default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 생성자를 호출할 수 있도록 한다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 생성자를 호출할 수 있다.
  •  default 접근 제한
    • default 접근 제한은 같은 패키지에서는 아무런 제한 없이 생성자를 호출할 수 있으나, 다른 패키지에서는 생성자를 호출할 수 없도록 한다.
  • private 접근 제한
    • private 접근 제한은 동일한 패키지이건 다른 패키지이건 상관없이 생성자를 호출하지 못하도록 제한. 오로지 클래스 내부에서만 생성자를 호출할 수 있고 객체를 만들 수 있다.

필드와 메소드의 접근 제한

  • public 접근 제한
    • public 접근 제한은 모든 패키지에서 아무런 제한 없이 필드와 메소드를 사용할 수 있도록 해준다.
  •  protected 접근 제한
    • protected 접근 제한은 default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 필드와 메소드를 사용할 수 있도록 한다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 필드와 메소드를 사용할 수 있다.
  • default 접근 제한
    • 필드와 메소드를 선언할 때 접근 제한자를 생략하면 default 접근 제한을 가집니다. default 접근 제한은 같은 패키지에서는 아무런 제한 없이 필드와 메소드를 사용할 수 있으나 다른 패키지에서는 필드와 메소드를 사용할 수 없도록 한다.
  •  private 접근 제한
    • private 접근 제한은 동일한 패키지이건 다른 패키지이건 상관없이 필드와 메소드를 사용하지 못하도록 제한. 오로지 클래스 내부에서만 사용할 수 있습니다.

Getter와 Setter 메소드

  • Setter : 매개값을 검증해서 유효한 값만 객체의 필드로 저장하는 메소드
  • Getter : 필드값을 가공한 후 외부로 전달해주는 메소드
  • 클래스를 선언할 때 가능하다면 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Setter와 Getter 메소드를 작성해서 필드값을 안전하게 변경/사용하는 것이 좋다.
  • 필드 타입이 boolean일 경우에는 Gettei는get= 시작하지 않고 is로 시작하는 것이 관례
private 타입 fieldName; // <--------필드 접근 저한자: private

//Getter
// 접근 제한자 : public, 리턴타입: 필드타입, 메소드 이름: get+필드이름(첫글자는 대문자)     
public 리턴 타입 getFieldName() {       
	return fieldName;								
}


//Setter 
// 접근 제한자 : public, 리턴타입: 필드타입, 메소드 이름: set+필드이름(첫글자는 대문자)     
public void setFieldName(타입 fieldName) {
	this.fieldName = fieldName;
}

1. 접근 제한에 대한 설명으로 틀린 것은 무엇입니까?
① 접근 제한자는 클래스, 필드, 생성자, 메소드의 사용을 제한한다.
②  public 접근 제한은 아무런 제한 없이 해당 요소를 사용할 수 있게 한다. 

③ default 접근 제한은 해당 클래스 내부에서만 사용을 허가한다.  (x)

-> default는 같은 패키지내에서 사용가능하며 다른 패키지에서는 사용이 불가능 하다. 해당 클래스 내부에서만 사용을 허가하는 접근제한자는 private이다.

④ 외부에서 접근하지 못하도록 하려면 private 접근 제한을 해야 한다.

저작자표시 비영리 변경금지 (새창열림)

'JAVA' 카테고리의 다른 글

타입 변환과 다형성  (1) 2022.10.31
상속  (1) 2022.10.31
인스턴스 멤버와 정적 멤버  (0) 2022.10.13
메소드  (0) 2022.10.13
생성자  (1) 2022.10.12
    'JAVA' 카테고리의 다른 글
    • 타입 변환과 다형성
    • 상속
    • 인스턴스 멤버와 정적 멤버
    • 메소드
    옝옹
    옝옹

    티스토리툴바