목록프로그래밍 언어/자바 (3)
일모도원(日暮途遠) 개발자
내부 클래스에서 외부 클래스의 메소드를 부를때는 그냥 메소드명으로 부르면 된다. 하지만 같은 이름의 메소드가 내부/외부에 같이 있을때는 그냥 메소드명으로 부르면 내부 클래스의 메소드가 호출된다. 외부 클래스의 메소드를 호출하기 위해서는 "외부클래스명.this.메소드명"으로 호출해야 한다. 즉 Outer.this.show() 이런씩으로 내부 클래스내에서 호출하면 외부 클래스인 Outer클래스의 show메소드가 호출된다. class Outer { void show() { System.out.println("outter show"); } class Inner{ void show() { System.out.println("inner show"); } void myMethod() { show(); //"inner..
자바 클래스에는 클래스 이름과 같은 이름을 가지는 생성자(生成者, Constructor)가 있고, 아무런 메소드 명이 없은 초기화 블럭(Initialize block)이 있다. 잘 쓰이지 않는 문법이지만 면접용으로 알아는 두자. 아래 초기화블럭은 인스턴스 초기화 블럭이다. 생성자와 다르게 아무런 이름이 없다. class Car { int speed; // 생성자 Car() { System.out.println("Speed of Car: " + speed); } // 초기화 블럭 (아무런 이름이 없다) { speed = 60; } public static void main(String[] args) { Car obj = new Car(); } } 다른 초기화 블럭으로는 스태틱 초기화 블럭이 있다. 차이는 ..
소스를 보다보면 java패키지와 javax패키지가 있는걸 볼때가 있다. javax는 뭔가 해서 찾아보니 확장(擴張, extension) 패키지라고 한다. java패키지는 기본(基本, base)패키지이고. 썬에서 만든 swing같은것이 확장 패키지 인데, 나중에 기본패키지에 포함시킬려고 패키지명을 javax에서 java로 바꿀려고 하니, 이미 javax로 패키지명을 쓰고 있던 개발자들의 항의가 심해서 그냥두었다고 한다. 참고로, 오라클에서 돈만 밝히고 기술개발을 등한시한결과로 Java EE(Java Platform Enterprise Edition)을 포기하면서 이클립스재단으로 Java EE 프로젝트를 이관하면서 이름도 Jakarta EE(Jakarta, Enterprise Edition)로 변경되었는데,..