일반상속과는 다르게 인터페이스는 다중상속이 허용된다 package afternoon; public class InterfaceInheritance { public static void main(String arg[]){C obj = new C();obj.method1();obj.method2();obj.method3();obj.method4();}}interface C1{void method1();void method2();}interface C2{void method3();}interface C3 extends C1,C2{void method4();}class C implements C3{ @Overridepublic void method1() {// TODO Auto-generated method s..
public class TestCar { public static void main(String[] args) {// TODO Auto-generated method stub Car car1 = new Car("white", "auto", 4); // 생성자로 인자 전달Car car2 = new Car(car1); // 생성자를 이용한 값 복사Car car3 = car2; // 보오오옥사 // car2와 3은 동일한 객체(깊은 복사, 주소까지 복사한 것)car2.color = "black";car3.trans = "stick"; // car1은 2와 3과 다른 객체(얕은 복사)car1.door = 3; System.out.println("car1 : " + car1.color + ", " + car1.d..
/*static method로 구현했기 때문에 * 객체가 할당되지 않아도(기본적인 객체가 자동할당됨) 메소드를 사용할 수 있다. * min -> first -> second 순서로 호출 * 스택이기 때문에 종료는 반대로 진행됨*/public class CallStack { public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("1 start");firstMethod();System.out.println("1 end");} static void firstMethod() {// TODO Auto-generated method stubSystem.out.println("2 start");Second..
http://bioportal.weizmann.ac.il/course/prog2/tutorial/java/javaOO/annotations.html JDK 5.0 릴리즈에는 어노테이션(annotation)이라 불리는 메타데이터 기능이 도입되었다. 어노테이션은 코드 조각의 작성자 명이나 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램의 일부가 아닌 프로그램에 관한 데이터를 제공해 준다. 어노테이션은 코드가 어떻게 수행되는 것에는 아무런 영향을 주지 않는다.어노테이션은 @어노테이션의 형태를 사용하고 클래스, 필드, 메소드 등과 같은 프로그램의 선언부에 적용할 수 있다. 어노테이션은 가장 처음으로 그리고 종종(관례상) 그 줄에 나타나며 임의의 인수를 포함할 수 있다: @Author("MyName..
인터페이스는 다중상속이 불가능한 자바에서 다중상속을 가능케 해주는 기능이 있다.하지만, 그것 외에도 코드의 골격을 구성하거나 작업분배, 지시를 할 때 편리할 것 같다. -인터페이스의 멤버 변수는 기본적으로 static final이고 모든 메서드는 기본적으로 public abstract이다. 이를 생략해도 컴파일러가 알아서 추가해준다. public interface PlayingCard (public static final int SPADE = 4;final int DIAMOND = 3;static int HEART = 2;int CLOVER = 1; public abstract String getCardNumber();String getCardKind (); } 여기서 정의한 인터페이스를 사용하려면 im..
Sencha touch란 간단하게 웹기반어플이라고 생각하면 될 것 같다. 기존의 안드로이드 어플이나 아이폰 어플을 생각하면 플랫폼이 다르기 때문에아이폰에서 성공한 어플을 안드로이드로 진출시키려면 플랫폼에 맞추어 어플을 이식하는 과정을 거쳐야 하는데플랫폼과 언어 모두 다르기 때문에 어려운 점이 있다. 그래서 Sencha를 사용하게 되는데 HTML, CSS와 같은 웹표준을 사용하기 때문에 범용성이 좋다고 할 수 있다. - Sencha Touch는 빠르고 쉽게 안드로이드 , iOS, 블랙베리, Windows Phone, Microsoft Surface Pro/RT 기기에서 동작하는 HTML5 모바일 앱을 만들 수 있게 하면서도 브라우저나 하이브리드 쉘에서 네이티브앱과 같은 경험을 제공한다. - 모바일 웹앱 프..
응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3 가지 주요영역 (method area, 호출스택, heap) 에 대해서 알아보자. 1, 메서드영역 (method area)프로그램 실행 중 어떤 클래스가 사용되면, JVM 은 해당 클래스의 클래스파일 (*.class) 을 읽어서분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스변수(class variable) 도 이 영역에 할께 생성된다 . 2. 힙 (heap)인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다 . 즉, 인스턴스변수(instance variabl..
에뮬레이션(Emulation) 어떤 계산기가 다른 종류의 계산기용으로 작성된 프로그램을 특별한 기구와 프로그래밍 기법을 이용하여 그대로 실행할 수 있도록 하는 것을 이른다. * 에뮬레이션을 하는 장치 또는 프로그램을 가리켜 에뮬레이터(emulator)라고 한다. 에뮬레이션은 서로 다른 기종의 프로그램 호환성을 갖게 하기 위한 수단이다. 프로그램 시뮬레이션(대상에 대한 소프트웨어 모델을 만들고, 그것을 계산기로 작동하여 그 상태를 시뮬레이트하는)의 일종이라고도 생각 할 수 있지만, 에뮬레이터는 보통 마이크로 프로그래밍 기능 등에 의해 고속화를 꾀하고 있다. 에뮬레이터는 예를 들면 마이크로 컴퓨터를 개발하는 경우 등에 MDS(마이크로컴퓨터 개발 시스템)의 일부로서 강력한 디버깅 루트를 제공한다(과대한 진단장..