2014-10-10 3 views
-2

Java에 대한 질문이 있습니다.메소드 접근 제어

는 내가 너무 다른 수업을

, sayHello(), saySomething(), sayBye() 같은 ... 몇 가지 방법이있다 클래스 Say.java 있습니다. 나는 Person 클래스와 Person이라는 두 개의 서브 클래스를 가지고있다 : SeniorJunior. 할

내 직업은 다음

내가의 getInstance라는 방법, 개인이기 위하여 Say.java 클래스를 설정하고 공용 클래스 SayFactory.java을 만들어야합니다. 그런 다음 Say.java 클래스의 새 인스턴스를 만들려면 하나의 인수, 즉 Senior.java 또는 Junior.java의 인스턴스로 getInstance 메서드를 호출해야합니다. Senior.java 객체를 사용하여 Say.java의 인스턴스를 만들면 Say.java의 모든 메서드에 액세스 할 수 있어야합니다. 하지만 Junior.java를 사용하여 동일한 작업을 수행한다면 saySomething()을 제외한 Say.java의 모든 메소드에 액세스 할 수 있어야합니다.

누군가가 어떻게 수행하고 어떻게 작동하는지 설명해주십시오.

그런데 죄송합니다 - 저는 스페인 출신이므로 제 영어 실력이 그렇게 좋지 않습니다. 질문을 이해할 수 없다면 알려 주시면 더 자세히 설명하겠습니다.

+1

공개 게터/설정자를 만드시겠습니까? – user1071777

+8

* "어떻게하는지 알아?"- 예. 많은 사람들이 알고 있습니다. 그리고 프로그램을 작성하면 알게 될 것입니다! 힌트 :이 프로그램을 직접 작성하면 Java에 대해 더 많이 배울 수 있습니다. (당신은 더 많은 것을 배우려고 노력할 것입니다 ...) –

+1

@StephenC 또는 적어도 뭔가를 쓰려고 시도한 다음, 직면 한 특정 문제에 대한 도움을 요청하십시오. 현재, 이것은 본질적으로 "나에게 숙제를해라."것처럼 보이는 것처럼 너무 광범위하다. – Edd

답변

0

먼저 개인 클래스 만들기에 응답으로이 참조 : 당신이 원하는 객체의 경우 Java: Why can we define a top level class as private?

을 당신은 개인 (당신이 필요에 따라 모든 필드 아마도 그것의 방법을 만들기 위해 "개인"해야합니다). 그런 다음 @ user1071777에서 언급 한대로 공용 getter 및 setter를 설정합니다.

객체의 메소드를 호출에 대한 몇 가지 기본 정보 : http://docs.oracle.com/javase/tutorial/java/javaOO/usingobject.html

당신이 클래스를 가질 수있는 클래스 사이의 연결을 만들려면 그 정의의 일부로서 다른 클래스를 가지고 생성자 또는 공공 세터를 통해 설정할 수 있습니다.

0

Private Class을 쓸 수 없다는 것을 알고 있지만 내부 클래스를 수행 할 수 있습니다.

나는 클래스 SayFactory을 가지고이 내 나는 다른라는 Say

SayFactory가의 getInstance()를 호출하는 방법이 있고,이 방법에 내가 Say 클래스의 객체를 만들고이 객체를 반환 얻었다. 문제는 getInstance()의 매개 변수가 Junior의 객체 인 경우 메서드 saySomething()에 대한 액세스를 거부하는 방법입니다.