목록전체 글 (80)
passion and relax
stack 과 heapstack. 메소드 호출과 지역변수가 사는 곳heap. 모든 객체가 사는 곳. Garbage collector가 작동하는 곳 메소드 호출. stack frame 에 "실행코드 + 지역변수 값 + 메소드 상태"가 저장된다.. 또 다른 메소드가 호출되면 계속해서 stack에 쌓이게 된다.. 맨 위의 stack frame의 메소드가 현재 실행 중인 메소드이다. 지역변수. 메소드용 변수로서 메소드 안에서 선언된 변수 또는 매개변수. 단지 이 둘만을 말함. 다른 것은 지역변수가 아니다. 객체의 저장 (지역변수 선언 시)객체용 지역변수 선언. stack에 지역변수가 선언됨.. CellPhone myPhone객체 생성. new를 했을 때, heap에 객체가 생성됨.. new CellPhone()..
다형성. 융통성과 확장성을 얻을 수 있다.. 다형성을 제대로 쓰려면, interface가 필요하다.. interface : 추상 클래스로서, 인스턴스를 만들 수 없는 클래스 추상 클래스 Hippo hippo = new Hippo(); //OK Animal hippo = new Hippo(); //OK Animal animal = new Animal(); //OK이지만, Animal이 무슨 동물? . 이런 경우 때문에, Animal 클래스는 abstract로 만들어야 한다.. 클래스 중에 인스턴스를 만들면 안되는 경우, abstract로 만들어야 한다.. 즉, new 키워드를 쓸 수 없게 만든다. abstract public class Canine extends ..
상속으로 해야하는지, 변수로 해야 하는지A는 B다, B는 A다가 성립 된다면, (고양이는 동물이다) A는 B다 : B extends A B는 A다 : A extends BA는 B다, B는 A다가 성립이 안된다면, (화장실에는 욕조가 있다) A에는 B가 있다 : A의 인스턴스 변수로 B를 선언 B에는 A가 있다 : B의 인스턴스 변수로 A를 선언 상속의 장점쉽게 확장할 수 있다. (적절한 디자인패턴이 동반된다면, 유지보수가 쉽고 기다려 진다)코드 중복 방지일련의 클래스를 위한 공통적인 규약을 정의 (abstract)다형성을 이용하여 상위 객체에 하위 객체 담기Animal[] animals = new Animal[5];animals[0] = new Dog();animals[1] = ne..
ArrayList. add(Object elem) : 객체 매개변수(elem)를 목록에 추가. remove(int index) : index 매개변수로 지정한 위치에 있는 객체를 제거. remove(Object elem) : 주어진 객체가 ArrayList에 있으면 그 객체를 제거. contains(Object elem) : 객체 매개변수 elem에 매치되는 것이 있으면 true. isEmpty() : 목록에 아무 원소도 없으면 true. indexOf(Object elem) : 객체 매개변수(elem)의 인덱스 또는 -1을 리턴. if (index >= 0) {} 과 함께 자주 사용됨.. size() : 현재 목록에 들어있는 원소의 개수 리턴. get(int index) : 주어진 index 매배변수 ..