티스토리 뷰

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
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday