학습(공부)하는 블로그 :: '프로그래밍' 카테고리의 글 목록
 

 

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

03-19 10:55

 
 
반응형

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
: