Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파비콘에러
- 생성자
- 프로젝트
- MySQL
- git commit취소
- 업캐스팅
- http
- 상속
- 0으로변환
- 기초
- 스프링시큐리티
- JPA
- java기초
- 웹동작방식
- 스프링부트
- 형변환
- 레포지토리설계
- 코린이
- Git
- 다운캐스팅
- 메소드
- 자바
- 한번에insert하기
- 네트워크
- 엔티티설계
- qclass
- java
- static
- 웹스토리지 사용법
- 오버라이딩
Archives
- Today
- Total
딱콩이의 봄
static & final 💡💡 본문
사용자 정의 상수
✔️정적 필드에 final 키워드를 적용하여 값을 변경할 수 없도록 하는 것으로 사용자 정의 상수를 정의할 수 있습니다.
✔️사용자 정의 상수는 정적 필드나 메서드의 접근과 마찬가지로 클래스 이름을 통해 접근하여 사용합니다.
✔️사용자 정의 상수는 접근제한자의 범위에 따라 공유하는 범위가 결정됩니다.
static method
✔️정적 메소드는 static으로 선언된 메서드로써 인스턴스 없이(객체 생성 없이)도 호출할 수 있습니다.
- 정적 메소드는 인스턴스 필드에는 접근할 수 없고, 정적 필드에만 접근할 수 있습니다.
- 정적 메소드는 객체를 통해 사용될 수 있지만, 반드시 클래스명과 함께 사용하기 바랍니다.
✔️예시
class Employee {
private static int nextId = 1;
private int id;
...
public static int getNextId() {
return nextId; //정적 필드의 값을 리턴합니다.
}
...
}
🧐정적 메소드는 언제 사용할까?
- 객체의 상태에 접근하지 않고, 필요한 파라미터가 모두 명시적 파라미터인 경우
- 클래스의 정적 필드에만 접근하는 경우( ex) Employee.getNextId)
static method & instance method
public class StaticEx {
private static String staticMessage = "Static Message";
private String instanceMessage;
public StaticEx(){
this.instanceMessage = "Instance Message";
}
public void showInstanceMessage(){ //인스턴스 메소드에서 스태틱 필드나 스태틱 메서드 접근이 가능하다
System.out.println(instanceMessage);
System.out.println(staticMessage);
StaticEx.showStaticMessage();
}
public static void showStaticMessage() {
System.out.println(staticMessage);
System.out.println(instanceMessage); //에러
//Non-static field 'instanceMessage' cannot referenced from a static context
this.showInstanceMessage(); //에러
//showStaticMessage 메서드는 프로그램이 시작하면서 부터 호출이 가능하기 때문에
//인스턴스화가 되어야지만 호출이 되는 인스턴스 메서드는 호출 불가
StaticEx se = new StaticEx();
se.showInstanceMessage();//인스턴스화 했기 때문에, 호출 가능
StaticEx.showStaticMessage();
}
}
🧐Reference
'개발 > JAVA' 카테고리의 다른 글
상속 관계의 초기화 과정 (0) | 2022.08.30 |
---|---|
상속(Inheritance) (0) | 2022.08.29 |
static & final💡 (0) | 2022.08.29 |
JAVA 메모리 모델 (0) | 2022.08.29 |
this() Constructor (0) | 2022.08.29 |
Comments