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

김은채님의 프로필 이미지
김은채

작성한 질문수

김영한의 실전 자바 - 기본편

참조형과 메서드 호출 - 활용

[method] static vs public static

작성

·

548

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요.
참조형과 메서드 호출 강의를 듣다 궁금점이 생겨서 문의 남깁니다.

MethodChange2.java

package ref;

public class MethodChange2 {
    public static void main(String[] args) {
        Data dataA = new Data();
        dataA.value = 10;
        System.out.println("메서드 호출 전: dataA.value = " + dataA.value); 
        changeReference(dataA);
        System.out.println("메서드 호출 후: dataA.value = " + dataA.value);
    }

    private static void changeReference(Data dataX) {
        dataX.value = 20; 
}

Method2.java

package ref;

public class Method2 {
    public static void main(String[] args) {
        Student student1 = createStudent("학생1", 15, 90);
        Student student2 = createStudent("학생2", 16, 80);
        printStudent(student1);
        printStudent(student2);
    }

    static Student createStudent(String name, int age, int grade) {
        Student student = new Student();
        student.name = name;
        student.age = age;
        student.grade = grade;
        return student;
    }

    static void printStudent(Student student1) {
        System.out.println("이름:" + student1.name + " 나이:" + student1.age + " 성적:" + student1.grade);
    }
}

MethodChange2의 changeReference 메소드는 private static인데, 왜 Method2의 printStudent 메소드는 static인지 이유가 궁금합니다.

답변 1

0

안녕하세요. 이혜빈님, 공식 서포터즈 David입니다.

혹시 private이 붙은 것은 강의 어디를 보신걸까요?

기본형 vs 참조형3 - 메서드 호출편 8:22 기준으로 보시면, private 없이 사용하고 있습니다. 참고해 주세요:)

image

감사합니다.

 

 

김은채님의 프로필 이미지
김은채
질문자

앗 제가 잘못 확인했나봅니다!
그럼 혹시 private이 있는 것과 없는 것의 차이를 알 수 있을까요?
실행 결과는 private이 있어도 동일하게 나와서 궁금하네요...

(늦은 시간인데도 답변 감사합니다!!)

q&a 구경하다 우연히 발견하여 댓글 적어봅니다!

섹션6 에서 다루는 내용으로 private은 접근 제어자 종류 중 하나로 모든 외부에서의 호출을 막지만 위 상황의 경우 내부에서의 호출이므로 실행 결과는 동일합니다 :)

김은채님의 프로필 이미지
김은채

작성한 질문수

질문하기