목록분류 전체보기 (567)
꿈 많은 사람의 이야기
자바스크립트를 이용해서 화면에 뭔가 써줄라면 document.write()를 이용하면 된다. document.write(5 + 6); 이런식으로 하면 된다. 제대로 봐보면 1 2 3 4 5 6 7 8 9 10 11 My First Web Page My First Paragraph. document.getElementById("demo").innerHTML =5+6; Colored by Color Scripter cs 와 같은 방식으로 객체에 접근을 해서 해당 HTML 을 5+6 즉 11의 값을 출력하게 해준다. innerText, innerHTML 그리고 innerText도 있는데 innerHTML 과의 차이를 한번 봐보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..
인터페이스에선 추상 메소드를 빼고 디폴트 메소드도 존재한다. 디폴트 메소드는 인터페이스에서 바로 사용할 수 없고 또한, 추상 메소드가 아닌 인스턴스 메소드이므로 구현 객체가 있어야 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 interface RemoteControlIn { //상수 int MAX_VOLUME = 10; int MIN_VOLUME = 0; //추상 메소드 void turnOn(); void turnOff(); void setVolume(int volume); //디폴트 메소드 default void setMute(boolean mute) { if(mute) { System..
자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터페이스는 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. 이러한 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있다. 따라서 개발 코드 측면에서는 코드 변경 없이 실행 내용과 리턴값을 다양화 할 수 있다는 장점을 가지게 된다. 인터페이스는 ~.java 형태의 소스 파일로 작성되고 컴파일러(javac.exe)를 통해 ~.class 형태로 컴파일되기 때문에 물리적 형태는 클래스와 동일하다. 단, 소스 작성 시 선언 방법이 다르다. 인터페이스 선언은 class 키워드 대신에 interface를 넣으면 된다. interface Ri{ } 이..
객체를 직접 새성할 수 있는 클래스를 실체 클래스라고 하면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모이고 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성을 가질 수 있다. 이 추상 클래스의 용도는 첫째, 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적이다. 실체 클래스를 설계하는 사람이 여러 사람일 경우 실체 클래스 마다 필드와 메소드가 제각기 다른 이름을 가질 수 있다. 이러한 케이스를 방지하기 위해 상속할 클래스를 만들어 필드와 메소드를 통일시킬 수 있다. Phone 추상 클래스를 상속하는 Telephone과 SmartPhone은..
instanceof는 객체 타입을 확인하는 연산자이다. 이 연산자는 부모 변수가 참조하는 객체가 부모 객체인지, 자식 객체인지 확인 할 수 있다. boolean result = 객체 instance of 타입 즉 좌항의 객체가 우항의 인스턴스 이면 즉, 우항의 타입으로 객체가 생성되었다면 true를 반환한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 class Parent2 { } class Child2 extends Parent2 { } class InstanceofExample { public void method..
클래스에서 자동 타입 변환은 다음과 같은 조건에서 일어난다. 부모 클래스 변수 = 자식 클래스 타입 일때 자동 타입 변환이 일어난다. 예를 들어 다음과 같은 상황이라 가정하자 이와 같은 상황일때 Cat cat = new Cat(); Animal ani = cat; 또는 Animal ani = new Cat(); 와 같이 타입 변환으로 객체를 생성할 수 있다. 위와 같은 상황에서 메모리 상태를 그림으로 묘사하면 와 같이 생성이 된다. 즉 변수 타입만 다를뿐 동일한 객체를 참조하고 있다. 위와 같은 상태에선 B b= new B(); C c= new C(); D d= new D(); E e= new E(); A a1 = b; (가능) A a2 = c; (가능) A a3 = d; (가능) A a4 = e; (가..
상속이란, 하위 클래스(자식 클래스)가 상위 클래스(부모 클래스)의 멤버를 사용할 수 있는 것이다. 즉 부모는 자식에게 자신의 멤버를 제공해준다. 자식은 부모에게 상속 받은것 + 자신의 것을 사용할 수 있다. 상속은 클래스를 재사용하기 때문에 코드의 중복을 줄여준다. 또한 개발의 시간을 단축시킬 수 있어 매우 유용하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class A { int a = 0; public void method1() { } } class B extends A { public void method1() //부모 메소드 사용 { a = 5;// 부모 필드 변수 사용 } //부모의 메소드를 자식이 재정의함 -> 오버라이딩 } Colored by ..
이 글은 블로그를 옮기면서 예전에 갔다온 여행을 정리한 것입니다 경주여행. 경주는 볼거리가 많은 장소이다. 첨성대, 안압지, 선덕여왕 촬영지, 각종 대형 릉들, 대릉원, 불국사, 석굴암 등등 그 중에 내가 간 곳은 야간 안압지와 천문대다. 원래 계획은 불국사, 석굴암, 안압지, 첨성대를 다 보려고 했다. 하지만 이번주 월요일엔 경주에... 엄청난 눈이 내리는 바람에... 모든것이 불편했다. 버스도 잘 안다니며, 시간도 오래걸리고, 걷기도 힘든상황에서 불국사(뒷편), 석굴암은 폐쇠되었다고 들었다. 그래서 하는 수 없이 안압지와, 첨성대, 대릉원만 보고 갔다. 먼저 숙소를 찾고 밥을 먹었다. 런닝맨 프로그램에서 나온 식당이라고 한다. 대릉원쪽에서, 황남(?)초등학교 인가 초등학교 이름이 잘 기억이 안나는데,..
이 글은 3년전에 갔다온 글을 블로그를 옮기면서 재작성하였습니다. 지금은 이 정보가 안맞을 확률이 높습니다 이 여행을 도전하고 싶으시면, 꼭! 다시 알아보셔야 합니다! 1월3일, 4일, 5일을 통해서 서울에서 부산으로 가는 시내버스 여행을 갔다 왔다. 우연치 않게 본 이 여행의 기행문을 통해 이상하게 삘이 꽂혀서 친구와 같이 4명에서 가게 되었다. 우린 서울역에서 출발하지 않고, 바로사당역으로 가서 사당역에서 차 시간을 맞추어 탔다. 간단하게 경로와 결론을 쓰면 1. (금요일 오후 12시가 지난, 토요일 아침)3:30 ~ 4:04 사당역->수원역 7700번 출발 2. 4:43 ~ 5:33 66번 수원역 ->용인시장 3. 용인시장에서 터미널 까지 걷기(약 10분이내) 4. 6:00 ~ 6:28 10-4번 ..
객체 지향 프로그래밍에서는 객체 외부에서 직접적으로 접근하는 것을 막는다. 왜냐하면 객체의 데이터를 외부에서 마음대로 다룰 경우 무결성이 깨질 수 있기 때문이다. 때문에 객체 지향 프로그래밍에서는 메소드를 통해서 데이터를 변경하는 방법을 선호한다. 데이터는 외부에서 접근할 수 없도록 막고 메소드를 공개해서 외부에서 데이터에 접근하게 하는 방법이다. 이러한 역할을 담당하는 것이 get, set메소드이다(getter, setter 라고도 부른다) setter는 값을 저장(셋팅)하게 유도하는 메소드이다. 반대로 getter는 값을 return받게 해주는 메소드이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ..