'Language/Java Language'에 해당되는 글 3건

Eclipse .class 파일 build path 에 추가할 때

Language/Java Language

"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)

Language/Java Language
대표 클래스가 공통적인 속성 값만을 가지고 나머지 각기 다른 중첩된 클래스에서 관리하도록 만들기 위해서 중첩 클래스(Nested 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

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

Language/Java Language

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