티스토리 뷰
*정적 (static) 멤버
- 클래스에 고정된 멤버로서 객체 생성하지 않고 사용할 수 있는 필드와 메소드
public class Calculator{
static double pi = 3.14159;
static int plus(int x, int y){ return x+y};
static int minus(int x, int y){ return x-y};
}
double result1 = 10 * 10 * Calculator.pi;
int result2 = Calculator.plus(10,5);
int result3 = Calculator.minus(10,5);
// Calculator.멤버네임(pi,plus,minus를 써서 사용가능)
*인스턴스 멤버와 정적 멤버 사용 기준
- 객체마다 다를 수 있는 필드값은 인스턴스 필드
- 객체마다 다를 필요가 없는 필드값은 정적 필드로 선언
public class Calculator{
String color; // 계산기 별로 색상이 다를 수 있음
static double pi = 3.14159; // 계산기에서 사용되는 파이값은 동일함
}
// 그렇기 때문에 항상 동일하냐 동일하지않냐에 따라 사용기준을 정하면된다.
*정적 메소드 선언 시 주의할점
- 정적 메소드 선언 시 그 내부에 인스턴트 필드 및 메소드 사용 불가
- 정적 메소드 선언 시 그 객체 자신 참조인 this 키워드 사용 불가
public class ClassName{
// 인스턴스 필드와 메소드
int field1;
void method1(){};
// 정적 필드와 메소드
static int field2;
static void method2(){};
//정적 메소드
static void method3{
this.field1 = 10; //(x)
this.method1(); //(x)
field2 = 10; //(o)
method2(); //(o)
}
}
*정적 메소드에서 인스턴스 멤버 사용하려는 경우
- 객체를 생성후 참조 변수로 접근
static void method3{
ClassName obj = new ClassName();
obj.field1 = 10;
obj.method1(); //이렇게 사용해야함
}
*접근 제어자(access modifier)
:접근 제어자는 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 함
1.private : 같은 클래스 내에서만 접근가능
2.default(nothing):같은 패키지 내에서 접근가능
3.protected:같은 패키지 내에서, 그리고 다른 패키지의 자손에서 접근가능
4.public:접근 제한 없음
'개발 > Java' 카테고리의 다른 글
| List 컬렉션 (0) | 2022.09.05 |
|---|---|
| 인스턴스 멤버와 this (0) | 2022.09.04 |
| 오버로딩, 오버라이딩 (0) | 2022.09.04 |
| 생성자 (0) | 2022.09.01 |
| 클래스와 인스턴스 그리고 객체 (0) | 2022.09.01 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- instance
- JPA
- JPQL
- 항해99
- IOC
- DI
- EntitiyManagerFactory
- 김영한
- joinfetch
- 협업
- EC2
- ssl
- 풀텍스트
- .jks
- DTO
- backoffice
- ajax
- 알고리즘
- Spring
- wil
- java
- this
- 환경세팅
- python
- method
- badrequest
- 코드해석
- JWT토큰
- querydsl
- POI
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함