1. 패키지
○ 서로 연관성이 있고 종류가 같은 클래스를 하나로 묶어 주는 것
○ 순서 없이 나열되어 있는 클래스
야구선수 무궁화 비둘기 제비 수영선수 독수리 장미 축구선수 백합 |
○ 종류별로 정리한 클래스
사람 |
식물 |
조류 |
야구선수 |
무궁화 |
비둘기 |
수영선수 |
장미 |
독수리 |
축구선수 |
백합 |
제비 |
○ 패키지 사용방법
package 패키지이름 ; |
○ 패키지 예제
package man ; class BaseballPlayer { public void hit() { System.out.println("때린다.") ; } } |
○ 패키지 사용 시 주의사항
▷ 패키지 이름은 해당 소스 파일이 저장되는 폴더의 이름과 같아야 한다.
☞ 자바에서는 같은 폴더에 있는 클래스를 같은 패키지로 생각한다.
○ 같은 폴더에 있는 패키지 만들기
▷ 예제1 : BaseballPlayer.java
class BaseballPlayer { public void swim() { System.out.println("야구선수가 수영을 한다."); } } |
▷ 예제2 : package_01.java
class package_01 { public static void main(String args[]) { BaseballPlayer kim = new BaseballPlayer() ; kim.swim() ; } } |
▷ 두 파일을 같은 폴더에 넣고 예제1, 예제2 순으로 컴파일 한 뒤 예제2 실행 결과
○ 가져 오고자 하는 클래스가 다른 폴더에 있는 경우
☞ 예제2는 C:\JavaTest\packageTest에 있고 예제1은 C:\JavaTest\packageTest\baseball 폴더에 있는 경우
▷ 위 예제파일 2를 컴파일 하면 아래와 같이 에러가 난다.
- 다른 폴더에 있는 클래스를 가져오는 것은 안되기 때문
▷ 다른 폴더에 있는 예제1, 2를 아래와 같이 수정
- 예제1 수정
package baseball ; public class BaseballPlayer { public void swim() { System.out.println("야구선수가 수영을 한다."); } } |
- 예제2 수정
import baseball.BaseballPlayer ; class package_01 { public static void main(String args[]) { BaseballPlayer kim = new BaseballPlayer() ; kim.swim() ; } } |
- 수정 후 예제2 실행 결과
2. 인터페이스
○ 자바에서 클래스를 만들기 전에 미리 '어떤 변수와 함수를 사용하겠다"는 것을 정의해 놓은 것
○ 보다 명확한 변수와 함수를 사용할 수 있게 되고, 불필요한 변수나 함수의 남발을 방지할 수 있다.
○ 인터페이스 만드는 법
interface 인터페이스_이름 { 클래스에 만들려는 변수이름 ; 클래스에 만들려는 함수이름 ; } |
○ 야구선수 인터페이스 예시 : BaseballPlayer_interface.java
interface BaseballPlayer_interface { String name = "박찬호" ; public void run() ; public void hit() ; } |
○ 주의사항
- 인터페이스도 컴파일 해줘야 한다.
- 인터페이스에서 선언된 변수는 고정(final)이다.
- 인터페이스에서는 함수의 이름만 정의할 뿐 기능을 넣을 수 없다.
○ 인터페이스 사용 예
class BaseballPlayer implements BaseballPlayer_interface { public void run() { System.out.println("나는" + name + "주자입니다.") ; System.out.println("달린다.") ; } public void hit() { System.out.println("나는" + name + "타자입니다.") ; System.out.println("때린다.") ; } } class interface_02 { public static void main(String args[]) { BaseballPlayer park = new BaseballPlayer() ; park.run() ; park.hit() ; } } |
- 실행 결과
3. 예외처리
○ 예외처리를 하는 목적 : 예기치 못한 버그나 오류에 대비하기 위함
○ 예외만 전문으로 다루는 클래스 : Exception 클래스
○ 예외처리 구문 작성법
try { … } catch (IOException e) { //예외처리 } |
○ 예외처리 예제
- 정상적인 구문 : exception_01.java
class exception_01 { public static void main(String args[]) { int a = 100 ; System.out.println("나누기 연산을 시작합니다."); System.out.println( a/100 ); System.out.println( a/10 ); System.out.println("나누기 연산이 끝났습니다."); } } |
- 실행결과
- 오류발생 - 예외처리 No : exception_02.java
class exception_02 { public static void main(String args[]) { int a = 100 ; System.out.println("나누기 연산을 시작합니다."); System.out.println( a/100 ); System.out.println( a/10 ); System.out.println( a/0 ); //오류발생 System.out.println("나누기 연산이 끝났습니다."); } } |
- 실행결과
- 오류발생 - 예외처리 Yes : exception_03.java
class exception_03 { public static void main(String args[]) { int a = 100 ; System.out.println("나누기 연산을 시작합니다."); try { System.out.println( a/100 ); System.out.println( a/10 ); System.out.println( a/0 ); //오류발생 } catch (Exception e) { System.out.println("예외가 발생했습니다."); } System.out.println("나누기 연산이 끝났습니다."); } } |
- 실행결과
'프로그래밍 > 초보자를 위한 Java 프로그래밍 입문' 카테고리의 다른 글
19. 클래스의 확장 - 상속(2) (0) | 2013.03.04 |
---|---|
18. 클래스의 확장 - 상속(1) (0) | 2013.03.03 |
17. 클래스의 보호 (0) | 2013.03.02 |
16. 생성자 (0) | 2013.03.01 |
15. 클래스 기반의 프로그래밍 (0) | 2013.02.28 |