'Language/Java Language'에 해당되는 글 3건
"util.*" 라는 패키지내에 class파일들을 프로젝트에 import 하기 위해서 다음과 같은 잘못된 경로를 import했다.
Properties-Java Build Path-libraries-Add Class Folder
를 선택 한 후 util/ 폴더를 추가했고, 제대로 동작하지 안핬다.
이유는 class 폴더로 임포트 하는 대상 경로의 util/ 패키지내에 존재 해야하므로 한단계 상위 루트가 존재해야 한다.
따라서 classes 라는 폴더를 만들어서 "classes/util/" 이라는 경로에 위치시키고, "classes/" 를 class 폴더로 지정하니 정상적오르 동작했다.
Reference: http://stackoverflow.com/questions/661110/how-do-i-include-class-files-in-my-project-in-eclipse-java
'Language > Java Language' 카테고리의 다른 글
중첩 클래스(Nested Class) (0) | 2011.02.11 |
---|---|
Promotion, Casting (2) | 2011.02.11 |
대표 클래스가 공통적인 속성 값만을 가지고 나머지 각기 다른 중첩된 클래스에서 관리하도록 만들기 위해서 중첩 클래스(Nested Class)의 필요성이 생긴다.
예)
중첩클래스에서의 내부클래스에서 멤버 접근 법
정적 중첩 클래스
일반 중첩 클래스와는 달리 Outer클래스의 객체가 없어도 Inner클래스의 객체를 만들 수 있다.
정적 중첩클래스는 내부 클래스에 static이라는 예약어만 붙이면 된다.
익명 중첩 클래스
지역 중첩클래스의 변형된 형태라 할 수 있다.
class라는 예약어와 클래스명을 가지지 않고 단지 인스턴스의 생성과 내용부의 정의만 가진다.
중첩 클래스는 이미 기존에 존재하는 것이어야 한다.
예)
class Person{ private String name; private String jumin; ..... class Grade { private int kor, eng, math, total; private float average; ..... } }
중첩클래스의 접근 방법
Person person = new Person(); // 외부 클래스(Outer Class) 객체 생성 Person.Grade grade = person.new Inner(); // 내부 클래스(Inner Class) 객체 생성
중첩클래스에서의 내부클래스에서 멤버 접근 법
class Outer{ private static int x = 1; class Inner{ private int x = 2; public void func(){ System.out.println(Outer.x); // 1 출력 System.out.println(this.x); // 2 출력 } } }
정적 중첩 클래스
일반 중첩 클래스와는 달리 Outer클래스의 객체가 없어도 Inner클래스의 객체를 만들 수 있다.
Outer.Inner temp = new Outer.Inner();
정적 중첩클래스는 내부 클래스에 static이라는 예약어만 붙이면 된다.
Outer.Inner 객체 = new Outer.Inner();
지역 중첩 클래스
메서드를 실행할 때에만 필요하고 별로 사용할 경우가 없다면 굳이 외부에 드러나는 형태로 만들 필요가 없다. 그래서 특정 메서드에 한정적인 용도로 사용할 클래스로 지역 중첩 클래스라는 개념이 생겼다. 하지만 이 경우에는 접근 제한자(private, protected, package, public)와 지정 예약어를 사용할 수 없는 형태이다. 그 외에 나머지 기능은 클래스와 동일하다.
지정 예약어
필드 : static, final, static final, transient
메서드 : static, final, static final, abstract, synchronized, native
필드 : static, final, static final, transient
메서드 : static, final, static final, abstract, synchronized, native
public class Outer{ public static void main(String[] ar) { int x = 100; class Inner{ int y = 200; } Inner in = new Inner(); System.out.println(x); System.out.println(in.y); } }
익명 중첩 클래스
지역 중첩클래스의 변형된 형태라 할 수 있다.
class라는 예약어와 클래스명을 가지지 않고 단지 인스턴스의 생성과 내용부의 정의만 가진다.
중첩 클래스는 이미 기존에 존재하는 것이어야 한다.
class Inner{ int y = 200; public Inner(){ this.disp(); } public void disp(){} } public class abc{ public static void main(String[] ar) { final int x = 100; // final이 아닌 경우 compile-error new Inner(){ public void disp(){ System.out.println("Default 생성자"); System.out.println("x = " + x); System.out.println("y = " + y); } }; } }
참조 : 열혈강의 JAVA 프로그래밍
'Language > Java Language' 카테고리의 다른 글
Eclipse .class 파일 build path 에 추가할 때 (0) | 2015.03.17 |
---|---|
Promotion, Casting (2) | 2011.02.11 |
Promotion(자동 형변환) : 큰 자료형 <- 작은 자료형
Casting(강제 형변환) : 작은 자료형 <- 큰 자료형
float fl = 20.0; // 20.0은 컴파일러에서 Double로 인식, 따라서 컴파일 에러, 20.0f는 OK
실수 > 정수
float fl = 20;
long lo = fl; // 컴파일 에러, 8바이트 long, 4바이트 float 이지만 실수 > 정수 이므로 casting 되어야 한다.
'Language > Java Language' 카테고리의 다른 글
Eclipse .class 파일 build path 에 추가할 때 (0) | 2015.03.17 |
---|---|
중첩 클래스(Nested Class) (0) | 2011.02.11 |