인프런 커뮤니티 질문&답변

growing224님의 프로필 이미지
growing224

작성한 질문수

프리다(Frida)를 이용한 안드로이드 앱 모의해킹

Static 메소드

챌린지 02번 문제와 static 메소드 강의 질문 사항

작성

·

321

0

챌린지 02번 문제와 static 메소드 강의 질문 사항

강의 문제풀이 두번째 영상(챌린지 02번, 챌린지 03번)과 static 메소드 질문 사항

안녕하세요 강의를 듣고 있는데 내용이 헷갈려서 질문하려고 합니다.

챌린지 2번 문제를 풀 때 아래 소스코드를 보자면

private void chall02( ) {

this.completeArr[1] = 1;

}

프리다 문제 풀이 강의 중 두번째 강의 소스코드에 private void로 선언되어 있으므로

static method로 선언되지 않는 경우로 instance method로 선언되는 경우라서

인스턴스화된 객체를 찾기 위해서는 java.choose를 사용해야한다고 나와 있었습니다.

그런데 static 메소드 질문에 대한 답변에 강의를 들어보면

private staic, public staic으로 선언된 경우에는 java.choose를 사용하고

static 메소드가 선언되지 않는 일반적인 private, public 형태는 java.use 형식으로 사용하라고 적어 주셨는데

이게 제가 이해하는 것과 내용이 반대되게 설명하신거 같습니다.

혹시 제가 이해한 내용이 맞을까요?

staic 메소드로 선언된 메소드(함수)들은 예) private staic, public staic으로 선언된 경우

인스턴스가 생성 없이 호출이 가능하기에 java.use를 사용해야하고

static 메소드가 선언되지 않는 일반적인 경우 예) private, public 형태로 선언된 경우

인스턴스가 생성 없이 호출이 불가능 하므로 java.choose를 사용하여 호출을 할 수 있으며

챌린지 03번에 대한 문제는 호출에 대한 문제가 아닌 반환 값만 변경하고 있으며 호출은

MainActivity에서 하고 있으므로 java.use를 활용하여 문제를 풀 수 있음

만약 문제 풀이와 관계없이 챌린지 03번 변수를 직접 호출하고 싶다면

static으로 선언된 메소드가 아니기 때문에 Java.choose를 사용하여 문제를 해결 가능함

이렇게 이해를 하면 되는건가요?

제가 이해한 내용이 맞다면 챌린지 2번에 대한 문제 풀이가 이해되는데

이해한 내용이 틀린다면 챌린지 2번 문제는 java.use로 풀 수 있을꺼 같은데

강의를 들으면서 혼동이 와서 다시 한번 재 질문 드립니다,

감사합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

챌린지 02번 문제와 static 메소드 강의에 대한 질문이셨군요. 먼저 제가 설명드린 static 메소드 부분이 이해가 되신 것 같아서 다행이에요. 말씀하신 대로 private static, public static으로 선언된 메소드는 인스턴스를 생성하지 않아도 호출이 가능하기 때문에 java.use를 사용하셔야 하고, 그렇지 않은 일반적인 메소드는 java.choose를 사용하셔야 한다는 것이 맞습니다.

그리고 챌린지 02번 문제 부분에 대해서는 private void로 선언되어 있지만 해당 클래스 안에서 호출이 가능하기 때문에 인스턴스화된 객체를 찾아내기 위해서 Java.choose를 사용할 필요는 없습니다. 이 부분은 강의 내용이 설명이 부족했던 것 같아서 죄송합니다.

제가 잘못 설명한 부분이 있었다면 죄송합니다. 이번에도 궁금하신 점이 있으시다면 언제든지 물어보세요. 감사합니다.

growing224님의 프로필 이미지
growing224

작성한 질문수

질문하기