SW 배움터/자바

자바 문법 핵심만3 : 멤버 메소드

kusson 2017. 4. 7. 15:28
반응형
728x170

1. 메소드란?

 메소드란 지정된 특정 기능을 수행하는 하나의 프로그램 모듈로 원하는 위치에서 해당

메소드를 호출하면 지정된 기능을 수행하며, 함수라고도 불림.

 

 

  1) 메소드는 머리와 몸체로 구성됨.

   [접근 수정자][선언 키워드][반환자료형][메소드 이름(매개변수)] {

      public          static             void            main(String[ ] args) {                // 머리

     

    변수선언;                                                                                        //

    문장들;                                                                                           //몸체

    [return;]                                                                                          //

    }

 

   main( ) : 메소드는 프로그램의 시작점을 알림. 

   public : 누구나 접근할 수 있음.

   static  : 클래스 메소드.

   void   : return 문으로 반환되는 값이 없음.

   main(String[ ] args) : 문자열 매개변수 배열 args를 갖고 있음이란 의미이다.

 

2. 선언 키워드의 종류

 1) abstract : 추상 메소드 선언에 사용(상속과 관련).

 2) final      : 종단 메소드 선언에 사용(상속과 관련).

 3) static     : 클래스 메소드 선언에 사용.

 4) synchronized : 스레드의 임계영역 처리에 사용(스레드 관련).

 

3. 클래스 메소드

 1) 클래스 메소드는 같은 클래스로 만들어진 객체에서 메소드 영역을 공유할 수 있고,

    클래스를 객체화하지 않아도 호출할 수 있는 메소드임.

 2) 변수에 static을 붙이면 클래스 변수, 메소드에 static을 붙이면 클래스 메소드가 됨.

 3) 메소드안에서는 멤버변수 중에서 클래스 변수만을 사용 해야 함.

ex)

class StaticMethod( ) {

   static int kor;

   static int eng;

   static int math;

 

  static double average( ) {                                  //클래스 메소드

     int total = kor + eng + math;

     return(total/3.0);

  }

}

 

4. 추상 메소드와 추상 클래스(abstract을 키워드를 사용해 선언)

 1) 추상 메소드 : 메소드의 머리 부분만 정의해 놓은 메소드.

   ① 메소드의 이름, 메소드의 자료형, 매개변수 등만 정의해 둠.

   ② 추상 메소드는 작업계획을 세울때, 작업의 종류만 명시하는 것과 같은 역할을 함.

  

 2) 추상 클래스 : 추상 메소드를 한개 이상 포함하고 있는 메소드.

  ① 작업 명세표를 제공.

  ② 추상 클래스에 있는 추상 메소드를 반드시 구현하도록 강제함.

  ③ 추상 메소드의 재정의를 통하여 일반 클래스화가 가능함.

  ※ 추상 클래스의 객체는 직접 생성할 수 없다(추상 클래스를 상속받은 클래스에서

     추상클래스에 선언된 메서드를 오버라이딩(재정의)하여 객체를 생성한 후 사용함).

ex)

 abstract class cubic{                             

   int i = 10;                                         //멤버 변수

   abstract void draw();                           //추상메소드

  }

 

 class square extends cubic{                    //추상 클래스를 상속받아 추상메소드를 재정의 함.

   void draw( ){                                     //draw( ) 메소드 재정의

      System.out.println("draw square.");     

   }

  }

 

5. 종단 클래스(final 키워드를 사용해 선언)

 1) 종단 클래스는 더이상 상속할 수 없는 클래스.

 2) 종단 클래스를 사용하는 이뉴는 클래스에 있는 정보를 다룬 클래스에서 참조할 수 

    없도록 하기 위해서.

 3) 자바에서 final을 사용하는 이유는 보안과 설계부분을 명확하게 구분하기 위해.

 ex)

  final class WordPrecess{                       //종단 클래스

    void Input() { };

          System.out.print("test final");

  }

 

6. 인터페이스

 1)자바는 단일 상속만 고려해서 만들어졌기 때문에 확장성에 문제가 있다.

   이러한 문제를 보완한 것이 인터페이스다.

 2) 인터페이스는 상수와 추상메소드로 구성됨.

 3) 인터페이스는 다중 상속이 가능.

 4) 인터페이스는 interface 키워드를 사용.

 5) 인터페이스는 상속시 implements 키워드 사용.

 6) 인터페이스는 모든 메소드가 추상메소드이기 때문에 abstract 키워드를 따로 붙이지 않는다.

 7) 인터페이스는 내용이 없는 메소드로 구성되기 때문에, 인터페이스를 상속받는

    클래스는 반드시 메소드를 재정의(overide) 해야 함.

ex)

 interface Speed{                                   //인터페이스 Speed선언

     public int test_speed = 10;

     public void speedUP(int inc);

     public void speedDown(int dec);

 }

 

class Car implements Speed{                    //Car는 Speed 상속

   int speed = test_speed;

   public void speedUp(int inc){

            this.speed += inc;

   }

}

 

 

반응형
그리드형