자바 기초 정리
-
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");
Leave a comment