인프런 커뮤니티 질문&답변
static이 뭐였는지 기억이 안나요 ㅜㅜ
작성
·
25
답변 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으로 선언된 변수나 메소드는 클래스의 모든 인스턴스에서 공유됩니다. 이는 각 인스턴스마다 개별적으로 존재하는 것이 아니라, 클래스 자체에 속해 단 하나만 존재한다는 의미입니다.
클래스 변수:
static변수는 클래스가 메모리에 로딩될 때 초기화되며, 모든 인스턴스에서 공유됩니다.클래스 메소드:
static메소드는 객체 없이 호출할 수 있으며, 클래스의 다른 static 멤버들만 사용할 수 있습니다.
이 내용과 관련된 강의 내용을 찾기 위해서는 나도코딩 자바 기본편 강의의 클래스와 메소드 관련 챕터를 확인해 보시는 것이 좋습니다. 아래의 질문과 답변이 참고가 될 수 있습니다:
- 클래스 변수, 메소드 // 인스턴스 변수, 메소드 static 유뮤로 단순하게 나타나나요?
- 이 링크에서는 static이 붙은 경우와 그렇지 않은 경우에 대해 설명하고 있습니다.
- 이 링크에서는 static이 붙은 경우와 그렇지 않은 경우에 대해 설명하고 있습니다.
추가적으로 이해가 필요한 부분이 있으시면 강의 자료를 반복적으로 보며 학습하시면 좋을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





