DOM 실습
http://jyheo.github.io/javascript/exercise3.html추가 버튼을 눌렀을 때 이미 동일한 이름의 동물이 존재하면 alert('동일한 이름이 존재합니다!')라고 경고창을 나타내고 추가하지 않도록 코드 추가
목록을 선택하면 아래와 같이 나타다도록 코드 추가
이 블로그는 사용하지 않습니다. jyheo.github.io나 github.com/jyheo로 방문해주세요. --- 한성대학교 컴퓨터공학부 허준영 교수 강의 블로그입니다. 강의 자료나 학생들이 참고할 문서, 웹 사이트 링크 등을 제공합니다.
Modifier | Class | Package | Subclass | World |
---|---|---|---|---|
public |
Y | Y | Y | Y |
protected |
Y | Y | Y | N |
no modifier | Y | Y | N | N |
private |
Y | N | N | N |
class FoolFish extends Fish { // 상속 FoolFish(String name, String shape) { super(name, shape); // 부모 클래스의 생성자를 부름, super는 부모 클래스를 가리킴 } public void move(int width, int height) { // 메소드 오버라이딩(overriding), 원래 메소드는? x++; // Fish의 x, y가 private int였다고 지금은 protected int로 바뀌어 있음. 왜? y++; if (x >= width) x = 0; if (y >= height) y = 0; } } public class Lake10 { private int width; private int height; private Fish[] fishes; public Lake10(int width, int height) { this.width = width; this.height = height; fishes = new Fish[10]; for (int i = 0; i < fishes.length; i++) { if (i % 2 == 0) fishes[i] = new Fish("Even", "<#--<"); else fishes[i] = new FoolFish("Odd", "<$--<"); // Fish 레퍼런스가 FoolFish를 가리킨다?
// 업 캐스팅(upcasting) } } public void moveFish() { for (Fish f : fishes) // f가 Fish 객체일 때도 있고, FoolFish일 때도 있는데, f.move(width, height); // move()는 누구의 move()가 불리는가? } // 동적 바인딩(dynamic binding)