학습(공부)하는 블로그 :: 20. 패키지, 인터페이스, 예외처리
 

 

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

03-29 00:00

반응형

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("나누기 연산이 끝났습니다.");

     }

}


- 실행결과




반응형
: