접근제어자에 대하여..
public class BlackBoxRefurbish {
String modelName;
String resolution;
private int price;
String color;
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
}
1.접근 제어자는 변수, 메서드, 성생자에 대한 접근 권한을 지정할 수 있고, getter와 setter는 메소드이기 때문에
public String getModelName() {} 처럼
"public을 통해 메소드인 게터와 스케터를 접근을 제어할 수 있다" 고 알고있으면 되는 걸까요?
2. 접근제어자(후반전) 강의 중 6분에서 alt + enter를 누르면 import class를 하셨는데 이거는 어떤 기능인가요? 맨 위에 import chap_07.A; 라고 뜨는데 뒤에서 배우는 부분인가요?
3.동일 강의 5분 38초 쯤에서 class A를 입력한 직후 기존 BlackBoxRefurbish 파일이 끝에 .java가 붙었습니다. 파일에 변화가 생긴건가요? 아니면 원래 클래스와 .java는 같은 건가요?
그리고 이후 자바 파일 내에서는 클래스를 여러 개 만들 수 있다고 하셨는데, 일반적인 클래스 파일 내에서는 여러 개의 클래스를 만들 수 없나요? 설명이 빈약하지만..
(새로운 강의를 시작할 때 마다) 패키지에 만드는 새로운 클래스 내부에 또다른 새로운 class를 적용할 수 없는 건지 궁금합니다..
감사합니다 ^^
답변 1
1
안녕하세요?
각 질문에 대해 다음과 같이 답변 드립니다.
1. 접근 제어자
맞습니다. 변수, 메소드, 생성자를 외부에서 접근하도록 허용할지 말지를 접근 제어자 (public, private 등)를 통해 컨트롤 할 수 있습니다. getter 와 setter 메소드를 public 으로 정의하면 어디에서든 접근 가능해집니다.
2. import
import 는 다른 코드의 내용을 가져다가 사용하기 위해 사용합니다. 작성해주신 코드 import chap_07.A; 는 chap_07 패키지에 있는 A 클래스를 가져다가 현재 코드에서 쓰겠다는 의미가 됩니다. import 구문 없이 A 클래스를 사용하려면 에러가 발생합니다. 이에 대해서는 뒤의 '패키지' 단원에서 배울 예정입니다.
3. .java 확장자
파일은 동일합니다. 다만 BlackBoxRefurbish.java 라는 파일에 A 라는 클래스가 새로 추가됨으로써 Project 뷰에서 BlackBoxRefurbish 및 A 클래스를 모두 확인할 수 있도록 하기 위해 화면이 변경되는 것일 뿐입니다. 모든 자바 파일은 .java 로 확장자가 만들어집니다.
3-1. 파일 하나에 여러 클래스
하나의 .java 파일 내에서 여러 개의 클래스를 정의할 수 있습니다. 단, public 으로 정의되는 클래스는 하나만 존재할 수 있으며 이때 클래스 이름은 반드시 파일명과 같아야 합니다.
// 파일명이 A.java 인 경우
public class A { ... }
class B { ... }
class C { ... }3-2. 내부 클래스
클래스 내부에 또다른 클래스를 생성할 수 있습니다. 이를 내부 클래스 (Inner Class) 라고 합니다.
public class OuterClass { // 외부 클래스
private int x = 5;
class InnerClass { // 내부 클래스
public void printVariable() {
System.out.println("Variable X : " + x);
}
}
}이때, InnerClass 의 사용법은 다음과 같습니다.
public class Main {
public static void main(String[] args) {
OuterClass out = new OuterClass();
OuterClass.InnerClass in = out.new InnerClass();
in.printVariable();
}
}궁금증 해결에 도움되셨기를 바라겠습니다 😊
감사합니다.
자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?
0
136
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
112
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
70
1
사고력 키우는 법이 어떤게 있나요?
0
92
2
getter setter
0
101
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
78
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
75
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
114
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
167
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
115
2
응용이 어렵습니다.
0
203
2
IntelliJ가 보이지 않습니다.
0
182
3
JDK 버전 문의
0
128
2
BlackBox 파일 내에서 메소드 정의
0
136
1
동기화
0
120
2
Iterator 문의
0
104
1
코드 순서 문의
0
139
1
클래스 메소드
0
149
2
Quiz_05 관련 질문드립니다 !
0
117
2
다운로드가 안됩니다
0
165
2
다형성
0
119
2
HashMap
0
80
2





