1) 클래스의 구조와 선언
자바 프로그럄은 모든 객체가 클래스 단위로 정의되는 클래스들의 집합이다. 클래스는 헤더 부분과 몸체 부분으로 구성되어 있으며, 클래스 헤더 부분은 지정자, class키워드, 클래스이름으로 구성되어 있으며, 클래스의 몸체는 클래스가 가지는 속성을 정의하는 멤버 변수 부분과 객체의 초기화를 담당하는 생성자를 포함하여 클래스가 가지는 자료를 조작하고 변환하는 기능 등을 정의하는 메소드 정의 부분으로 구성되어있다. 자바에서 클래스를 정의하는 일반적인 형식은 다음과 같다.
ex) [qualifier] class 클래스명{
변수명 변수명;// 멤버 변수 선언
...........................
클래스명(){ //생성자 정의 부분
..........................
}
반환형 메소드명(인자리스트){ //메소드 정의 부분
..........................
}
..........................
}
클래스 정의 부분에서 가장 처음에 나오는[qualifier]는 정의되는 클래스의 접근 권한 수준을 지정하는 키워드 로서 객체지향 프로그래밍에서 불필요한 내부사정은 외부에 보이지 않도록 하는 캡슐화에 해당되며, 다음표와 같이 정의된다.
접근 지정자[qualifier] |
의미 |
사용 예 |
없음(default) |
패키지 내부에서만 상속과 참조가 가능함 |
class a; |
public |
패키지 내부, 외부에서 상속과 참조가 가능하고, 이 접근 권한은 클래스 또는 객체의 외부 인터페이스를 제공해 줄 때 주로 사용함 |
public class a; |
protected |
패키지 내부에서는 상속과 참조가 가능하고, 패키지 외부에서는 상속만 가능함(멤버 클래스 선언 때만 사용가능) |
protected class a; |
private |
같은 파일 내에서만 상속과 참조가 가능함(멤버 클래스 선언 때만 사용 가능) |
private class a; |
abstract |
메소드가 구현되지 않은 클래스임 |
abstract class a; |
static |
정적 클래스로 만듬. |
static class a; |
final |
더 이상 확장이 불가능한 클래스임 |
final class a; |
strictfp |
클래스 내의 모든 부동 소수점 연산이 보다 정확한 부동 소수점 형식과 연산을 따르도록함. 속도가 약간 늦어짐 |
strictfp class a; |
변수의 선언은 C/C++ 에서의 변수 선언과 동일하다. 생성자는 객체 생성 시 호출되는 특별한 종류의 메소드로서, 생성자 이름은 클래스 명과 동일하며 생성자의 반환 값은 없다. 따라서, 일반 메소드와 같이 반환형을 명시해 주어야 한다. 반환형은 메소드가 실행되고난 후 결과를 반환할 때, 어떤 형으로 전달할 것인지를 결정해 준다.
자바에서는 하나의 프로그램에 하나의 클래스만을 정의하는 것이 일반적이지만 하나의 프로그램에 여러개의 클래스에 의해 정의 된다면 최대 하나의 public클래스만 허용된다. 이 때, 소스파일의 이름은 반드시 public 클래스명과 동일해야 하며, 자바 응용 프로그램인 경우에는 반드시 main()에 메소드가 있는 클래스에 public을 사용하야 한다.
자바에서 정의된 클래스들은 기본적으로 서로 관계가 있는 것 끼리 모아 하나의 그룹 단위 또는 묶음 단위로써 유지되는데 이를 패키지 라한다.
일반적으로 클래스는 다음과 같이 3단계에 의해 간단하게 작성할 수 있다.
1단계 : 클래스 명의 정의
public class Item{
......................
}
2단계 : 멤버 변수의 정의 (객체의 특성을 잘 파악하여 적절한 자료형과 변수의 특징을 잘
표현 할 수 있는 멤버 변수명을 정하여 선언한다)
String Itemname;
...................
3단계 : 클래스 생성자 및 메소드의 정의 ( 클래스의 생성자는 객체를 초기화 하는데 사용되며,
클래스 명과 동일한 이름 이어야 한다. 생성자를
제외한 객체의 기능은 메소드로 표현된다.
이때 접근 지정자, 반환형 등을 고려하여 메소드를
정의한다 )
public ????(){
..................
}
2) 객체의 선언과 생성
객체를 생성하기 위해서는 정의된 클래스를 사용하여 객체를 선언하고, 키워드 new를 사용하여 객체를 생성하여야 한다.
객체 변수를 선언하면 객체의 주소를 저장할 수 있는 메모리 공간이 확보된다. 실제 객체 자료를 저장할 수 있는 공간은 new() 메소드에 의해서 실행 시간에 할당되며, 객체를 생성한다는 것은 객체를 위한 메모리가 할당됨을 의미한다. 객체에 대한 선언과 생성은 다음과 같다.
ex)클래스명 객체참조변수; //객체선언
객체참조변수 = new 생성자; //새로 할당된 객체의 주소를 객체참조변수(객체 이름)에 저장
3) 객체의 사용
객체의 생성에 의해서 객체 참조 변수를 얻으면 해당 객체의 멤버 변수와 메소드를 사용할 수 있다. 멤버 변수와 메소드의 사용방법은 참조변수의 이름 뒤에 (.) 을 붙이고 메소드나 멤버 변수의 이름을 붙이면 해당 객체의 메소드나 멤버 변수를 사용할 수 있다.
'프로그래밍 > JAVA,JSP' 카테고리의 다른 글
JSP - JSP의 구성요소 (0) | 2009.12.03 |
---|---|
Java - 객체 지향의 개요 (0) | 2009.12.03 |
Java - 멤버 변수와 접근 지정자 (0) | 2009.12.03 |
Java - 메소드 (0) | 2009.12.03 |
JAVA의 특징 (0) | 2009.12.03 |