자바 기초 정리

1 minute read

  • Local variable: method내에 정의된 변수. local이라고 이름이 붙혀진 이유는 함수 정의 안에서 한정되기 때문이다. 두 메소드가 존재한다고 가정했을 때, 서로 다른 메소드 내에 같은 변수이름이 존재해도 상관없다. 그리고 둘중 하나의 변수명을 변경했다고 해서 다른 변수에 전혀 영향을 주지 않는다.(지역적)

  • Object(instance of the class): 클래스의 오브젝트 또는 클래스의 인스턴스라고도 불려진다. 오브젝트는 어떠한 정보를 저장하는 변수와, action을 담당하는 method로 이루어져있다. 흔히 클래스는 붕어빵틀에 비유되고 오브젝트는 붕어빵에 대응된다.

  • Instance Variables: 클래스내에 정의된 변수들에 해당된다. 예는 다음과 같다.

      date.month = "June";
      date.day = 25;
      date.year = 2021;
    
  • Call-by-value: Java에서 method의 parameter로 primitive type을 전달할 때는 Call-by-value형식으로 값이 전달된다. 간단하게 생각하면 값이 그대로 복사되어 호출된 method에 전달된다. 즉 parameter로 전달된 값은 그저 변수에 복사된 값이고 변수의 주소가 전달된다는 뜻이 아니라는것이다. Class Type을 parameter로 전달할 때는 Call-by-value와는 다른 방식으로 전달된다. 그러나 String의 경우는 primitive type과 동일하게 파라미터가 전달된다.

  • this parameter: method definition안에서 calling object의 이름을 this parameter로 대체할 수 있다. ex) date.month == this.month

  • this parameter는 instance variables와 parameter을 구분하는데 유용하게 사용된다

      public void setDate(int month, int day, int year)
      {
      	this.month = monthString(month);
      	this.day = day;
      	this.year = year;
      }
    

    만약 this를 사용하지 않았다면 day = day에서 identifier와 parameter를 구분할 수 없다. 컴파일은 정상적으로 이루어질지 몰라도 우리가 원하는 결과를 얻지못한다

  • Java에서 오브젝트를 담는 배열의 경우 각 배열에는 오브젝트를 가리키는 주소값만 저장된다. 따라서 객체 배열에 객체를 담을때는 생성자를 사용해서 담아주어야한다.

      public class Hashing {
          public Slot[] hashtable;
    
          public void Hashing(Integer size){
              this.hashtable = new Slot[size];
          }
      }
    
      public class Slot {
          String value;
          Slot(String value) {
              this.value = value;
          }
      }
    
      Slot[] hashTable = new Slot[20];
      hashTable[0] = new Slot("test");
    

Tags:

Categories:

Updated:

Leave a comment