top of page

자바 클래스

천천히 따라서 실습해 보시기 바랍니다. 그리고 개념과 원리를 명확히 이해하시기 바랍니다.

기초가 튼튼해야 큰 프로그램을 짤 수 있습니다.

 

1. 클래스를 이용하는 예제 - 다른 클래스의 메소드 실행

   클래스를 하나 만든 후 그 클래스를 다른 클래스에서 사용하는 예제입니다.
   잘 생각해 봅시다. 누군가 잘 만들어 놓은 클래스를 내가 맘껏 사용할 수 있다는 상상을... 그렇게 하려면 사용법을 잘 알아야 겠죠?

 

■ HelloJava.java (내가 지금 개발하고자 하는 부분)

 

      package firstpackage;
      public class HelloJava {
         public static void main(String[] args) {
            HelloCalled
obj = new HelloCalled();   // HelloCalled라는 클래스를 사용하고 싶으면 obj처럼 복사한 후
            obj.helloCalled();   // 생성자.메소드형태인 obj.helloCalled()와 같이 표기하면 호출(실행) 되는 것임
            System.out.println(obj.num);
            System.out.println(obj.str);
            obj.returnMeth();
         }
      }


     결과
     10  안드로이드
     Total = 55

 

     설명
     new HelloCalled(); 부분을 생성자라고 합니다. 생성자는 이름 규칙이 클래스처럼(첫글자 대문자) 되어 있지만 사실 메소드입니다.

     초기화를 시키거나 해당 객체가 생성되면 한번 수행되는 역할을 합니다. 

     잘 생각해 보세요. 누군가 근사하게 잘 만들어 놓은 예를들어 아래에 있는 HelloCalled라는 클래스 안의 한 기능인 helloCalled()라는

     메소드나 returnMeth()라는 메소드를 내가 사용하고 싶으면 위에처럼 복사(new)한 후 메소드는 복사한이름.메소드 형태로
     사용하면 됩니다. 반환하는 값이 없기 때문에 void라고 표시되어 있습니다.

 

■ HelloCalled.java (내가 지금 개발하고자 하는 부분에 필요한 것(메소드)이 들어있는 누군가 만들어 놓은 클래스)

 

      package firstpackage;
      public class
HelloCalled {
        HelloCalled(){ // 생략
        }

 

        //변수(variables)
        int num;
        String str;


        //메소드(method)
        public
void helloCalled(){
          this.num = 10;       // this는 num이나 str을 의미한다.
          this.str = "안드로이드";
        }
        public
void returnMeth(){
          int sum = 0;
          for(int i = 1; i <= 10; i++){
            sum += i;   
        }
        System.out.println("Total = " + sum);
        }
      }


     설명
     보통 위와같은 방법처럼 메소드에서 어떤 결과를 수행하는 방법처럼 사용합니다.

     패키지안에 여러개의 클래스를 만들어 놓게 되면 쉽게 생성자를 통한 접근이 가능해 집니다.

     다른 앱에서도 필요한 경우 아예 패키지를 통째로 import시키면 수월하게 이용할 수 있을 것입니다.

 

2. 클래스를 이용하는 예제 - 다른 클래스의 메소드 실행한 후 return을 사용하여 값 되돌려 보내기
   아래 예제는 위의 예제에 있는 메소드에서 출력하는 방법을 쓰지 않고 값을 되돌려주는 방법을 사용한 예제입니다. 
   메소드에서 값을 보낼 때는 return을 사용하는데 return은 하나의 값만 보낼 수 있습니다. 

   하지만 실제 프로그래밍 시에는 여러 개의 값을 보낼 수도 있어야 하므로 추후에 레퍼런스 타입에 대해 배워야 합니다.

   일반적으로 return값은 int, string, array, arraylist, class(Javabean) 방법을 사용합니다.

 

■ HelloJava1.java


      package firstpackage;
      public class HelloJava1 {
        public static void main(String[] args) {
          HelloCalled1 obj = new HelloCalled1();
         
int abc = obj.returnMeth();  // 결과를 받아야 하므로
          System.out.println("Total = "+abc);
        } 
      }

 

     결과
     Total = 55

 

■ HelloCalled1.java

 

      package firstpackage;
      public class HelloCalled1 {
        int num;
        String str;
      }
      public
int returnMeth(){
        int sum = 0;
        for(int i = 1; i <= 10; i++){
          sum += i;
        }
       
return sum;
      }


 

     설명
     이전 예제와 달리 반환하는 값이 있으므로 returnMeth() 앞에
void 대신 리턴하는 값의 타입을 표시하며
     호출한 프로그램(HelloJava1.java)쪽에서는 리턴값을 받는 변수를 지정하며 이 변수 역시 같은 Type(타입)이어야 합니다.

 

3. 클래스를 이용하는 예제 - 다른 클래스의 메소드 실행할 때 그 메소드 쪽으로 값을 보내는 방법

   이번에는 메소드를 호출하기만 하지 않고 메소드 쪽으로 값을 보내는 방법을 사용해보도록 하겠습니다.
   호출할 때는
"메소드(변수,변수)" 형태를 사용하며 호출 받는 메소드쪽에서는 변수의 타입을 반드시 표시해야 합니다.
   즉,
"메소드(변수타입 변수, 변수타입 변수)" 처럼 기입해야 하며 반드시 보내고 받는 변수의 개수 또한 동일해야 합니다.

 

■ HelloJava2.java

 

      package firstpackage;
      public class HelloJava2 {
        public static void main(String[] args) {            
          HelloCalled2 obj = new HelloCalled2();
          int aaa = obj.returnMeth();
          System.out.println("Total = "+aaa);
          int num1 = 33;
          int num2 = 67;
          System.out.println(obj.moveMeth(
num1, num2));
        } 
      }


     결과
     Total = 55
     100

 

■ HelloCalled2.java

 

      package firstpackage;
      public class HelloCalled2 {
        int num;
        String str;
        public int returnMeth(){
          int sum = 0;
          for(int i = 1; i <= 10; i++){
            sum += i;
          }
          return sum;
        }
 
        public int moveMeth(
int num1, int num2){
          int sum = 0;
          sum = num1 + num2;
          return sum;
        }
      }


 

프로그래밍 작성 요령으로 메소드를 만들 때는 일단 void로 시작하는 것이 좋습니다.
void로 시작하면 에러가 발생되지 않으며 추후 리턴값이 결정될 때 void 대신 실제 타입으로 변경하는 방법을 사용하는 것이 좋습니다.

 

클래스간의 연결은 상속이라는 개념으로, 클래스와 객체와의 관계는 인스턴스라는 개념으로 연결되었습니다. 나중에 상속에 대해 설명드리도록 하겠습니다.
 

bottom of page