Java Static

nero·2022년 5월 28일
0

Java-Basics

목록 보기
3/4
post-thumbnail

Static이란

  • Static은 (변화 움직임이 없이 )‘고정된’이라는 의미를 가지고 있다
  • 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다.
  • 정적 멤버는 객체에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 멤버라고도 한다.

멤버란?

  • OOP 에서 하나의 클래스를 구성하는 개별적인 구성 요소를 말한다
  • 변수, 메소드

✨정적 멤버와 인스턴스 맴버의 차이

  • 쉽게 생각하면 클래스는 일종에 설계도인데 그 설계도를 바탕으로 만든 것이 인스턴스다
  • 즉, 인스턴스와 클래스는 다르다
  • 인스턴스도 멤버를 가지고 클래스도 멤버를 가진다
  • 한 클래스를 바탕으로 만든 인스턴스는 모두 동일한 클래스의 멤버를 가진다.

언제 사용?

정적필드

  • 객체마다 가지고 있어야 할 데이터라면 인스턴스 필드로 선언 객체마다 필요한 데이터라면 정적 필드로

메소드

  • 인스턴스 필드를 이용한다면 인스턴스 메소드

선언법

//Calculator.java
public class Calculator{
	static in plus(int x, int y){...}
}

// Example.java
int restult = Calculator.plus(10,20);

정적 메소드는 객체가 없어도 실행되기 때문에 인스턴스 필드, 메소드를 사용할 수 없다

사용하려면 객체를 선언하고 접근해야 된다 main() 메소드도 정적 메소드기 때문에 동일한 규칙이다

Static 메모리

  • Runtime Data Area 에 Method Area에 멤버 값들이 할당
  • 한번 선언되면 프로그램의 시작하는 동안에는 메모리내에 존재하기 때문에 계속쌓임
    • 메모리 점유율이 늘어남 주의할 것
profile
겸손하게 배우는 개발자입니다

0개의 댓글