💻 개발/언어
[JAVA] 헷갈렸던거 정리(static, 생성자, 기본생성자, 초기화)
foodev
2022. 9. 9. 17:55
728x90
반응형
1. static
[static 변수]
1. static 한 변수는 공유된다.
2. static 한 변수는 값을 저장할 수 있는 하나의 공간이 생성된다. -> 인스턴스가 여러 개 생성해도 static 한 값은 마지막의 값으로 결정된다.
[static 메소드]
1. static 한 메서드는 Class가 인스턴스화 되지 않아도 사용할 수 있다.
2. static 한 메서드에서는 static 한 변수만을 사용할 수 있다.
public class VariableScopeExam {
int globalScope = 10;
public void scopeTest(int value){
int localScope = 20;
System.out.println(globalScope);
System.out.println(localScope);
System.out.println(value);
}
public static void main(String[] args) {
System.out.println(globalScope); //오류
System.out.println(localScope); //오류
System.out.println(value); //오류
}
}
2. 생성자
클래스 변수명 = new 생성자()
[모든 클래스는 인스턴스화 될 때 생성자를 사용한다.]
- 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다.
- 매개변수가 없는 생성자를 기본 생성자라고 한다.
- 생성자를 하나라도 프로그래머가 만들었다면 기본 생성자는 자동으로 만들어지지 않는다.
728x90
[생성자의 역할]
- 객체를 생성하면서. 하고 싶은일들, 해야할 일들을 정의한다.(객체가 될 때 필드를 초기화하는 역할을 수행한다.)
//this.를 활용한 초기화 - Person 생성자 생성
class Person{
int age;
Person(int number) {
this.age = number;
}
}
Person 클래스에서 Person 생성자를 만들어주었으며 이는 Person 클래스를 생성할 때 number 값을 정의하도록 세팅해둔것
[디폴트 생성자]
클래스가 생성될 때 프리 컴파일 단계에서 jvm이 생성자 존재 유무를 판단해서 디폴드 생성자를 만들어준다.
그러나 생성자를 하나라도 만들었다면, jvm이 디폴트 생성자를 만들지 않는다.
[자기 자신을 호출하는 생성자 키워드]
기본 생성자를 호출하였을 때 name을 "이름 없음" , 숫자를 0으로 초기화 하기
이렇게 하면 중복으로 오류 발생
public Car(){
this.name = "이름없음";
this.number = 0;
}
[this 키워드를 사용하여 기본 생성자 호출 및 초기화 하기]
public Car(){
this("이름없음", 0);
}
- this괄호로 시작하면 자신의 생성자를 호출하는 것이다.
- 자기 자신의 생성자를 호출함으로써 비슷한 코드가 중복돼서 나오는 것을 방지할 수 있다.
3. enum타입 열거형과, 상수(Final) 변수 선언의 차이
[상수 선언 방법의 문제점]
public class EnumExam {
public static final String MALE = "MALE";
public static final String FEMALE = "FEMALE";
public static void main(String[] args) {
String gender1;
genter1 = "나는 빡빡이"; //이게 가능해서 상수키워드 변수 선언은 사용을 잘 안함
gender1 = EnumExam.MALE;
gender1 = EnumExam.FEMALE;
}
}
[enum타입 사용]
enum Gender{
MALE, FEMAIL;
}
Gender gender2;
gender2 = Gender.MALE;
gender2 = Gender.FEMALE;
특정 값만 가져야 한다면 열거형을 사용하는 것이 좋다.
혹시 더 좋은 방법이 있다면 댓글로 피드백 부탁드리겠습니다! 감사합니다.
728x90
반응형