강의

멘토링

커뮤니티

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

kmch0802님의 프로필 이미지
kmch0802

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

함수형 인터페이스 (전반전)

static이 뭐였는지 기억이 안나요 ㅜㅜ

작성

·

25

0

 static이 뭐였는지 기억이 안나요 ㅜㅜ강의에서 어떤경우에 쓰는지 말씀해주셨던거 같은데 어디인지 기억이 안나요 ㅠㅠ

 

답변 2

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

staitc 은 누구나 자바에 입문할 때 거의 다 한 번씩 헷갈리는 포인트입니다.

한 줄 요약하자면 이렇습니다.

👉 객체를 만들지 않아도 바로 사용할 수 있게 해주는 키워드

아래 예시를 볼까요?

class Person {
    public String name;
    public void sayHello() {
        System.out.println(name + "님, 안녕하세요");
    }
}

이 클래스의 sayHello 메소드는 객체를 만들어야만 사용 가능합니다.

이렇게 말이죠.

Person p1 = new Person();
p1.name = "나도코딩";
p1.sayHello();

Person p2 = new Person();
p2.name = "어제코딩";
p2.sayHello();

<실행 결과>

나도코딩님, 안녕하세요
어제코딩님, 안녕하세요

여기서 p1 은 name 변수에 "나도코딩" 이라는 값이 적용된 객체, p2 는 "어제코딩" 이라는 값이 적용된 객체입니다. 둘은 서로 다르죠!

 

그런데 이런 경우는 어떨까요?

class Calculator {
    public static int add(int a, int b) {
        return a + b;
    }
}

메소드(또는 클래스 내 변수) 앞에 static 이 붙으면 이 경우에는 객체를 만들 필요 없이 바로 사용 가능합니다. 이때는 객체 이름 대신 클래스 이름을 바로 쓰면 되지요.

int result = Calculator.add(3, 5);
System.out.println(result);

<실행 결과>

8

즉 static 키워드는 모두가 공통으로 쓰는 기능 또는 변수라고 생각을 하시면 좋습니다.

학습에 도움되길 바라겠습니다 😊

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. kmch0802님.

Java에서 static 키워드에 대해 이해하는 것은 매우 중요합니다. static은 클래스 레벨에서 변수를 선언하거나 메소드를 정의할 때 사용됩니다. static으로 선언된 변수나 메소드는 클래스의 모든 인스턴스에서 공유됩니다. 이는 각 인스턴스마다 개별적으로 존재하는 것이 아니라, 클래스 자체에 속해 단 하나만 존재한다는 의미입니다.

  1. 클래스 변수: static 변수는 클래스가 메모리에 로딩될 때 초기화되며, 모든 인스턴스에서 공유됩니다.

  2. 클래스 메소드: static 메소드는 객체 없이 호출할 수 있으며, 클래스의 다른 static 멤버들만 사용할 수 있습니다.

이 내용과 관련된 강의 내용을 찾기 위해서는 나도코딩 자바 기본편 강의의 클래스와 메소드 관련 챕터를 확인해 보시는 것이 좋습니다. 아래의 질문과 답변이 참고가 될 수 있습니다:

추가적으로 이해가 필요한 부분이 있으시면 강의 자료를 반복적으로 보며 학습하시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kmch0802님의 프로필 이미지
kmch0802

작성한 질문수

질문하기