학습(공부)하는 블로그 :: '프로그래밍/초보자를 위한 Java 프로그래밍 입문' 카테고리의 글 목록
 

 

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

03-19 10:55

 

'프로그래밍/초보자를 위한 Java 프로그래밍 입문'에 해당되는 글 20

  1. 2013.03.11 20. 패키지, 인터페이스, 예외처리
  2. 2013.03.04 19. 클래스의 확장 - 상속(2)
  3. 2013.03.03 18. 클래스의 확장 - 상속(1)
  4. 2013.03.02 17. 클래스의 보호
  5. 2013.03.01 16. 생성자
  6. 2013.02.28 15. 클래스 기반의 프로그래밍
  7. 2013.02.27 14. 클래스에 대하여
  8. 2013.02.26 13. 함수에 대하여(2)
  9. 2013.02.25 12. 함수에 대하여(1)
  10. 2013.02.24 11. 변수의 묶음! 배열
 
반응형

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

     }

}


- 실행결과




반응형
:
반응형

1. 확장 클래스의 수정


○ 부모 클래스의 변수나 함수를 새롭게 정의해서 사용하는 개념


○ 오버라이딩이라고 한다.


○ 오버라이딩 예제

 class Baseballplayer

 { 

      /* 새롭게 추가된 함수 */

      public void hit()  {

          System.out.println("때린다.") ;

      }


      /* 부모 클래스로부터 물려받은 함수 - 오버라이딩 */

      public void eat()  {

          // System.out.println("먹는다.") ;  기존 클래스

          System.out.println("야구선수가 먹는다.") ;

      }

 }


○ 오버로딩과 오버라이딩

 오버로딩

함수의 이름이 같으나 인자가 서로 다른 함수 

오버라이딩

부모 클래스로부터 상속받은 함수를 자식 클래스에서 새롭게 정의 



2. protected 선언


○ protected 접근 권한

부모 클래스 

자식 클래스(상속) 

다른 클래스(미상속)

private 

× 

× 

 public

○ 

protected 

○ 

× 


private 은 함수로 접근하지 않으면 고칠 수 없다.


○ protected 사용 예제 : protected_01.java

 class Man

 {

      protected String name ;

      public void eat()  {

            System.out.println("먹는다.") ;

      }

 }


 class BaseballPlayer extends Man

 {

      BaseballPlayer(String n)  {

           name = n ;

      }

      public void playHit()  {

            System.out.println(name + "가 때린다.") ;

      }

 }

 

 class protected_01

 {

      public static void main(String args[])

      {

            Man man = new Man() ;

            BaseballPlayer park = new BaseballPlayer("박찬호") ;

            park.playHit() ;

       }

 }


- 실행 결과



3. 수정금지! final


○ 함수나 변수를 더 이상 수정하지 못하도록 고정시킴


○ 테스트 예제 : final_01.java

 class Man

 {

      final String name = "박찬호" ;

      public final void eat()  {

            System.out.println("먹는다.") ;

      }

 }


 class BaseballPlayer extends Man

 {

      public void eat()  {

            System.out.println("야구선수가 먹는다.") ;

      }

 }

 

 class final_01

 {

      public static void main(String args[])

      {

            Man man = new Man() ;

            BaseballPlayer park = new BaseballPlayer() ;

            park.eat() ;

       }

 }


          - 컴파일 결과


· 함수 eat()는 절대 수정할 수 없도록 했는데 오버로딩으로 수정해서 사용하려 했기 때문에 에러가 난다.

· 오버라이딩을 할 수 없다는 에러메시지다.

반응형
:
반응형

1. 클래스의 확장


○ 클래스 확장 : 기존 만들어진 클래스에 필요한 기능을 추가하거나 수정해서 새로운 클래스로 확장한다는 개념


 예제 프로그램

 class Man

 {

     private String name ;

     private int age, int height, int weight ;


     public void eat()  {

         System.out.println("먹는다.")

     }

     public void sleep()  {

         System.out.println("잠잔다.")

     }

     public void run()  {

         System.out.println("달린다.")

     }

 }


○ 클래스의 확장

 class  확장할_클래스 extents 원본클래스

 {

     새로 추가할 변수들 …

     새로 추가할 함수들 …

 }


○ 클래스를 확장하여 만든 확장 클래스

 class BaseballPlayer extents Man

 {

     public void hit()  {

         System.out.println("때린다.")

     }

 }



2. 상속의 개념


○ 클래스의 확장으로 만들어진 새로운 클래스는 원본 클래스의 변수와 함수를 모두 넘겨받는다. 이를 '상속'이라고 함


○ 확장 클래스 정리

부모 클래스 (Super Class)

상속 

부모 클래스 (Sub Class) 

변수, 함수 등을 넘겨줌

extents 

넘겨받아 새로 생성




반응형
:
반응형

1. 클래스의 보호


○ 클래스는 서로 편하게 주고 받을 수 있는 장점이 있는 반면 클래스 원본의 모습이 완전히 변경될 수 있는 단점도 가지고 있다.


○ 클래스 보호방법

- 클래스 내부의 변수는 절대 수정하거나 변경하지 말 것(사용자가 임의로 변수를 수정하거나 변경하지 못하도록 안전장치를 해놓는 방법)

- 클래스 자체의 기능은 그대로 사용

- 부득이한 경우 함수를 통해서만 클래스에 접근


○ 보호받는 클래스 : 변수나 함수 앞에 private 을 추가

 class BaseballPlayer()

 {

      private String name ;

      private int age, int height, int weight ;

      …

 }


- private의 반대말은 public


○ private과 public 사용 예 : private_public.java

 class BaseballPlayer

 {

      private String name = null ;

      private int age, height, weight ;


      BaseballPlayer(String n)

      {

            name = n ;

      }


      private void eat()  {

           System.out.println(name + "가 먹는다.") ;

      }

      public void run()  {

           System.out.println(name + "가 달린다.") ;

      }

 }


 class private_public

 {

      public static void main(String args[])

      {

           BaseballPlayer park = new BaseballPlayer("박찬호") ;

           park.eat() ;

      }

 }


- 컴파일 결과 


private을 public으로 수정한 뒤 실행 결과


○ 함수를 이용한 접근 예

 class BaseballPlayer

 {

      private String name = null ;

      private int age, height, weight ;


      BaseballPlayer(String n)

      {

            name = n ;

      }


      public void eat()  {

           System.out.println(name + "가 먹는다.") ;

      }

      public void run()  {

           System.out.println(name + "가 달린다.") ;

      }


      /* private로 선언된 age 변수에 값을 대입 */

      public void setAge(int aa)  {

           age = aa ;

      }


      /* private로 선언된 age 변수의 값을 리턴 */

      public int getAge()  {

           return age ;

      }

 }


 class private_public_02

 {

      public static void main(String args[])

      {

           BaseballPlayer park = new BaseballPlayer("박찬호") ;

           park.setAge(30) ;

           System.out.println("박찬호의 나이는 " + park.getAge() + "입니다.") ;

      }

 }


- 실행 결과


반응형
:
반응형

1. 생성자


○ 같은 클래스에서 만들어낸 객체지만 조금씩 다른 정보를 가지게 하고자 할 때 사용하는 것


○ 클래스로부터 어떤 객체를 생성할 때 가정 먼저 실행되는 부분


○ 생성자는 클래스와 똑 같은 이름을 가진 하나의 함수


○ 생성자 작성

 class 클래스이름

 {

     클래스이름() //이것이 생성자

     {

      …

      생성자 내용 - 객체가 생성될 때 필요한 기본정보를 기술

     }

 }


○ 생성자 작성 예 : object_02.java

 class BaseballPlayer

 {

      int age, height, weight ;

 

      /* 생성자 */

      BaseballPlayer()

      {

           age = 0 ;

           height = 0 ;

           weight = 0 ;

           System.out.println("야구선수 클래스의 생성자") ;

       }


       public void eat()  {

           System.out.println("먹는다") ;

       }

       public void sleep()  {

           System.out.println("잔다") ;

       }

       public void run()  {

           System.out.println("달린다") ;

       }

 }


 class object_02

 {

       public static  void main(String args[])

       {

            BaseballPlayer kim = new BaseballPlayer() ;

        }

 }


- 실행 결과


○ 생성자를 사용하지 않을 경우 : 자바가 자체적으로 클래스와 동일한 이름의 생성자를 만든다.(소스코드에는 안보인다.)



2. 생성자의 인자


○ 생성자도 하나의 함수(되돌려줄 수는 없어도 인자를 받을 수는 있다.)


○ 인자 값을 받는 생성자 예제 : object_03.java

 class BaseballPlayer

 {

      int age, height, weight ;

 

      BaseballPlayer()

      {

           System.out.println("인자가 없는 생성자") ;

       }


      BaseballPlayer(int a, int h, int w)

      {

           age = a ;

           height = h ;

           weight = w ;

           System.out.println("인자가 있는 생성자") ;

       }

       public void eat()  {

           System.out.println("먹는다") ;

       }

       public void sleep()  {

           System.out.println("잔다") ;

       }

       public void run()  {

           System.out.println("달린다") ;

       }

 }


 class object_03

 {

       public static  void main(String args[])

       {

            BaseballPlayer kim = new BaseballPlayer() ;

            BaseballPlayer min = new BaseballPlayer(30, 180, 70) ;

        }

 }


- 실행 결과



반응형
:
반응형

1. 클래스 기반의 프로그래밍


○ 클래스에도 메인 클래스가 있다.


○ 메인 클래스를 정점으로 관련 클래스들을 가져다가 사용하는 방식으로 클래스 기반의 프로그래밍이 이루어 진다.


○ 클래스와 클래스가 서로 요청을 주고 받으면서 하나의 완성된 자바 프로그램을 만들게 된다.



2. 클래스의 선언

  class 클래스이름
  {
      …
   }


○ 야구선수 클래스 예시

 class BaseballPlayer

 {

      int age, height, weight ;


      public void eat()  {

             System.out.println("먹는다.");

      }

      public void sleep()  {

             System.out.println("잔다.");

      }

      public void run()  {

             System.out.println("달린다.");

      }

 }


- 해설

· 이 클래스는 정수형으로 된 age, height, weight 의 세 가지 변수를 가졌다.

  ※ 클래스에서 사용되는 변수를 '맴버'라고 부름

· eat(), sleep(), run() 의 세 가지 함수를 가졌다.

  ※ 이러한 함수는 클래스 내에 구현된 메소드라고 함

· 이것으로 BaseballPlayer 라는 클래스를 만들었고, 이를 이용해서 새로운 객체를 만들 수 있음

· 클래스를 이용하여 새로운 객체를 만드는 것을 '생성'이라고 함



3. 클래스에서의 객체 생성


○ 객체 생성하는 방법

 클래스이름 객체이름 = new 클래스이름() ;


○ 객체 생성의 예

  BaseballPlayer kim = new BaseballPlayer() ;
  BaseballPlayer min = new BaseballPlayer() ;



4. 생성한 객체 사용하기


○ 특정 클래스에서 구현된 메소드는 해당 클래스로 생성된 객체만이 사용할 수 있다.(해당 객체들은 클래스로부터 모든 권한을 물려받았다고 표현)


○ 메소드 호출

  객체명.메소드 ;


- 예) kim.run() ;


○ 변수의 값 대입

 객체명.변수 = 대입할 값 ;


- 예) kim.age = 30 ;


○ 클래스와 객체의 사용 예시 : object_01.java

 class BaseballPlayer

 {

      int age, height, weight ;


      public void eat()  {

             System.out.println("먹는다.");

      }

      public void sleep()  {

             System.out.println("잔다.");

      }

      public void run()  {

             System.out.println("달린다.");

      }

 }


 class object_01

 {

      public static void main(String args[])

      {

             BaseballPlayer kim = new BaseballPlayer();

             kim.age = 30 ;

             System.out.println("생성한 야구선수 kim의 나이는 : " + kim.age);

             kim.run();

      }

 }


- 실행 결과


※ 위 예제를 두 개의 클래스로 따로 나누고 object_01만 실행시켜도 같은 결과를 가진다.


반응형

'프로그래밍 > 초보자를 위한 Java 프로그래밍 입문' 카테고리의 다른 글

17. 클래스의 보호  (0) 2013.03.02
16. 생성자  (0) 2013.03.01
14. 클래스에 대하여  (0) 2013.02.27
13. 함수에 대하여(2)  (0) 2013.02.26
12. 함수에 대하여(1)  (0) 2013.02.25
:
반응형

1. 클래스의 정의 및 특징


○ 자바에서 어떤 업무 로직을 수행하게 하는데 있어 필요한 명령들과 함수들을 쓰기 편하도록 모아놓은 것

- 컴퓨터를 조립하기 위해 구입하는 부품 하나하나를 클래스라고 생각하면 됨

- 부품으로 조립한 컴퓨터는 최종 만들어진 자바 프로그램이 된다.


○ 자바에서 클래스는 프로그램을 구현하는 가장 기본 단위이며, 이것들이 모여서 하나의 완성된 자바 프로그램이 만들어 진다.


○ 클래스는 공유가 가능하다.



2. 객체 지향 프로그래밍


○ 객체란 : 우리 주변에 흔히 볼 수 있는 자동차, 컴퓨터, 책상 등 눈에 보이는 모든 것이라고 생각하면 됨


○ 객체 지향 프로그래밍(Object-Oriented Programming)

- 자바에서의 클래스가 이러한 객체의 개념을 가져다 만든 것



3. 객체의 특징


○ 모든 객체는 '상태'와 '동작'이라는 두 가지 속성을 가진다.

- 자동차 객체의 예

상태(값)

동작 

연비 

달린다. 

좌석수 

멈춘다. 

바뀌 수 

전진한다.

 

 


○ 자바에서 클래스는 객체를 흉내내서 만들었기 때문에 객체와 마찬가지로 '상태'와 '동작'이라는 두 가지 속성을 가진다.

- 상태 : 변수로 표현한다.

- 동작 : 함수를 이용해서 표현한다.


반응형
:
반응형

1. main() 함수에 대하여


○ 함수를 만들어 사용하는 이유 : 반복적으로 행해지는 각종 연산을 효율적으로 처리하기 위함


○ main() 함수가 받는 인자

- public static void main(String args[])

· String args[] ☜ 문자형 배열

· void ☜ 자료형, 되돌려 주는 값이 없다.


○ 인자 값을 넘겨받는 main() 함수 : main_01.java

 class main_01

 {

         public static void main(String args[])

         {

                 for(int i=0; i < args.length; i++)

                 {

                         System.out.println(args[i]);

                  }

          }

 }


- 실행 결과


2. 오버로딩


○ 오버로딩 : 이름은 같지만 인자가 다른 함수


○ 함수의 오버로딩 예제 : overloading,java

 class overloading

 {

         public static void main(String args[])

         {

                 System.out.println(max(5, 9, 2));

                 System.out.println(max(3.1, 10.33, -32.1));

          }

          /* 정수형 max() 함수 */

         public static int max(int a, int b, int c)

         {

                int max = 0;


                if(a>b)    {

                              max = a;

                }

                else {

                              max = b;

                }

                if(c>max) {

                              max = c;

                }


                return max;


          }


          /* 실수형 max() 함수 */

         public static double max(double a, double b, double c)

         {

                double max = 0;


                if(a>b)    {

                              max = a;

                }

                else {

                              max = b;

                }

                if(c>max) {

                              max = c;

                }


                return max;

          }
 }


- 실행 결과




반응형
:
반응형

1. 함수에 대하여


○ 함수

-  어떤 데이터 값을 넣어면 안에서 그 데이터 값을 가지고 이런저런 처리를 한 후에 그 결과값을 돌려주는 프로그래밍적 요소

- 흔히 메소드라고도 부를 수 있는데 호출이 되어지면 어떤 업무 처리를 함에 있어서 같기 때문에 그렇다.

- 처음에 넣는 데이터 값을 인수, 인자, 파라메타 등으로 부른다.



2. 함수를 만드는 방법


○ 함수를 만드는 방법

 되돌려주는_자료형 함수이름(받는 인자)
 {
       업무처리
       ……
       return 되돌려줄 값 ;
 }


○ 함수예제 1

 int addOne(int aa)

 {

      int bb = aa +1 ;

      return bb ;

 }


- 설명 : 정수 aa를 받아 1을 더해 리턴값으로 bb를 되돌려 주게된다.



3. 여러가지 함수 예제들


○ 여러 개의 인자를 받는 함수

 double average(int a, int b, int c)
 {
      double avg = (a + b + c) / 3 ;

      return avg ;

 }


- 설명 : 세 개의 정수를 받아 평균을 구해내는 함수

- 주의사항 : 평균은 실수(double)가 된다는 점에 유의


○ 문자열을 되돌려 주는 함수

 String insa(String name)
 {
      String str = name + "씨, 반갑습니다." ;

      return str ;

 }


- 설명 : name이라는 문자변수를 받아서 그 변수와 "씨 반갑습니다."를 리턴값으로 돌려 줌


○ 되돌려 주는 값이 없는 경우의 함수

 viod addOne(int a)
 {
      System.out.println( a ) ;

 }


- 설명 : 되돌려 줘야할 리턴값이 없는 경우에 되돌려줄 자료형에 void 라고 표기한다.

· 위 예제는 정수 a를 받아서 그냥 화면에 출력한다.


○ 받는 인자가 없는 함수

void hello()

 {
      System.out.println("안녕하세요!") ;

 }


- 설명 : 함수를 호출하면 화면에 "안녕하세요!"라는 메시지를 출력한다.



4. 함수가 들어가는 위치


○ 함수의 위치 예제 : function_01.java

 class function_01

 {

       public static void main(String args[])

       {

              // 메인함수 내용

        }

        int addOne(int a)

        {

              int b = a + 1 ;

              return b ;

         }

 }


- main() 함수와 같은 선상에 위치해 놓으면 된다.

- 함수의 실행순서 : main() 함수 ⇒ main() 함수가 호출하는 함수




반응형

'프로그래밍 > 초보자를 위한 Java 프로그래밍 입문' 카테고리의 다른 글

14. 클래스에 대하여  (0) 2013.02.27
13. 함수에 대하여(2)  (0) 2013.02.26
11. 변수의 묶음! 배열  (0) 2013.02.24
10. while문, 키보드로부터의 입력  (0) 2013.02.23
9. for문  (0) 2013.02.22
:
반응형

1. 변수의 묶음! 배열


○ 배열이 필요한 이유

- 변수의 수가 많을 경우 일일이 선언하기도 힘들고, 또 이를 출력 등의 명령을 줄 때도 변수의 수 만큼 명령문을 써야되기때문에 비율적

- 따라서 이러한 변수의 묶음을 간단하게 처리할 수 있는 방법이 바로 배열



2. 배열의 선언과 대입


○ 배열의 선언

 자료형[] 배열이름 = new 자료형[배열의 크기];
 자로형 배열이름[] = new 자료형[배열의 크기];


- 예시) int num[] = new int[10]; ☜ 정수형 타입으로 num이라는 배열변수 10개를 만든다는 뜻


○ 배열에 값 대입(예시)

 int num[] = new num[5];
 num[0] = 1;
 num[1] = 2;

 num[2] = 3;

 num[3] = 4;

 num[4] = 5;


- 해설

· int num[] = new num[5]; ☜ 정수형 num 배열변수 5개를 선언

· num[0] = 1 ~ num[4] = 5  선언한 num[0]부터 num[4]까지 배열변수에 값을 대입

- 주의사항

· 배열의 시작은 0부터 시작한다.

· 배열의 크기를 초과해서 값을 대입하면 당연히 에러가 난다.


○ 배열의 선언과 대입을 한꺼번에 하는 방법

 자료형 배열이름[] = { 값1, 값2, 값3, …… };


- 참고사항

· 배열의 크기가 작은 경우에 사용하면 효율적이다.

· 크기가 큰 경우는 선언과 대입을 따로 하는 것이 더 효율적이다.


○  배열을 이용한 학생명부 출력 프로그램 : array_01.java

 class array_01

 {

         public static void main(String args[])

         {

               String[] name = new String[5];

               name[0] = "홍길동";

               name[1] = "전우치";

               name[2] = "임꺽정";

               name[3] = "이순신";

               name[4] = "강감찬";


               System.out.println("*** 학생명부 ***");


               for (int i=0; i<5; i++)

               {

                         System.out.println(name[i]);

               }

         }

 }


- 실행 결과


- 참고사항

· 위의 예제를 배열을 사용하지 않고 만들었을 경우 맨 마지막 명령문 System.out.println 명령이 배열의 크기와 같은 5번의 명령문을 입력해야 하는 번거로움이 있다.

· 만약 위 학생의 수가 40명이라면 아마 짜증나겠죠.

· for문에서 배열의 크기를 정확히 알면 제대로된 조건을 만들 수 있지만 배열의 크기를 모를 경우에는 곤란해 진다. 그럴 때 사용하는 것이 다음 예제다.


○ 배열의 크기를 모른다고 가정했을 때 수정 예제 : aray_02.java

 class array_02

 {

         public static void main(String args[])

         {

               String[] name = new String[5];

               name[0] = "홍길동";

               name[1] = "전우치";

               name[2] = "임꺽정";

               name[3] = "이순신";

               name[4] = "강감찬";


               System.out.println("*** 학생명부 ***");


               for (int i=0; i<name.length; i++)

               {

                         System.out.println(name[i]);

               }

         }

 }


- 실행 결과


- 참고사항 : .length 메소드가 배열의 크기를 나타냄



3. 2차원 배열


○ 2차원 배열의 선언

 자료형[][] 배열이름 = new 자료형[크기1][크기2];
 자로형 배열이름[][] = new 자료형[크기1][크기2];


○ 배열에 값 대입(예시)

 int num[][] = new num[2][5];

 num[0][0] = 1;
 num[0][1] = 2;

 num[0][2] = 3;

 num[0][3] = 4;

 num[0][4] = 5;

 num[1][0] = 6;

 num[1][1] = 7;

 num[1][2] = 8;

 num[1][3] = 9;

 num[1][4] = 10;


- 해설

· int num[][] = new num[2][5]; ☜ 정수형 num 2차원배열 변수 10개(2×5)를 선언

· num[0][0] = 1 ~ num[1][4] = 10  선언한 num[0][0]부터 num[1][4]까지 배열변수에 값 대입

- 주의사항

· 배열의 시작은 0부터 시작한다.(헷갈리지 말아야 함)


○ 배열의 선언과 대입을 한꺼번에 하는 방법

 자료형 배열이름[][] = { { 값1, 값2, 값3, …… }, { 값1, 값2, 값3, …… }, …… } ;





반응형

'프로그래밍 > 초보자를 위한 Java 프로그래밍 입문' 카테고리의 다른 글

13. 함수에 대하여(2)  (0) 2013.02.26
12. 함수에 대하여(1)  (0) 2013.02.25
10. while문, 키보드로부터의 입력  (0) 2013.02.23
9. for문  (0) 2013.02.22
8. switch문  (0) 2013.02.21
: