상수

final 을 붙이면 상수로 a가 선언되고 이제 한번 값을 정해주면 a는 더이상 값을 정해줄수없다.
그래서 위에 코드 처럼 a에 20 으로 바꿔주려고 할때 오류가 뜬다.
static
static 을 붙이면 클래스에서 객체화 없이 바로 변수나 함수(메서드)를 꺼내서 쓸 수 있다.
단 남용하면 안된다.
모든 객체에 대해서 해당 속성이 다르지 않을 경우에만 써야한다.

사람의 특성에 대한 값을 알려주는 함수가 있을때
그 함수는 static 을 쓰면 안된다.
사람 마다 특성은 각각 다르기 때문이다.
하지만 수학 에서 파이나 더하기는 항상 정해져있는 값과 공식이다.
그래서 그럴때는 static을 써도 된다.
만약 class 사람이 있고
그 클래스 안에 static 을 쓰지 않고 String 이름; 이렇게 하면 이름은 객체를 만들어주기 전까지는
존재하지 않는다. new 사람(); 이렇게 해야 비로소 이름 한개가 만들어진다.
new 사람 (); new 사람 (); new 사람 (); 이렇게 하면 이름3개가 만들어지고 ,
그런데 여기서 static String 이름; 을 하고 new 사람 (); new 사람 (); new 사람 (); 이렇게 하면
이름은 몇개 일까??
바로! 한개 이다. 이미 static String 이름; 이 자체로 이름은 존재하게 되고 다른 객체가 만들어지더라고
다른 객체들은 이 이름 하나를 공유 하는 것이다.
'자바' 카테고리의 다른 글
| 2023-06-28 substring 쓰기 (0) | 2023.06.28 |
|---|---|
| 2023-06-27 static, 수동 변환, 자동변환 (0) | 2023.06.27 |
| 20203 -6 -24 다차원 배열 ,배열에 쓰이는 함수 (0) | 2023.06.24 |
| 2023-06-22 클래스 예제 문제 풀이 (사람 인력관리소) (0) | 2023.06.22 |
| 2023-06-21 추상 클래스, interfacce, 올바른 리턴 타입으로 메서드 만들기 예제 문제 (0) | 2023.06.21 |