본문 바로가기
Java/객체지향개념

메서드와 선언 위치에 따른 변수의 종류

by 피자보다 치킨 2022. 3. 10.

선언 위치에 따른 변수의 종류

  1. 클래스 영역
    • iv(Instance Variables): 인스턴스(객체)가 생성되었을 때
    • cv(class Variables): 클래스가 메모리에 올라갈 때(객체생성 필요없음)
      ※iv와 cv의 차이점: 객체 생성의 필요성( iv: 객체생성 || cv: 객체생성 안해도됨)
  2. 메서드 영역(메서드의 시작'{'부터 메서드의 끝'}')
    • lv(Local Variables): 변수 선언문이 수행되었을 때 생성

클래스 변수와 인스턴스 변수

  • 클래스 변수(CV)
    • static을 타입앞에 붙여야 한다.
    • 공통 속성(모든 인스턴스가 공통으로 갖는 속상 값)
    • 예시: 카드의 높이와 폭
  • 인스턴스 변수(IV)
    • 개별 속성
    • 예시: 카드의 숫자와 무늬
  class Card {
      String kind; //무늬
      int number; //숫자

      static int width = 100; //폭
      static int heigth = 250; //높이
  }
  • 객체 생성과 사용하기
  Card c = new Card();
  //iv사용하기(참조변수명.iv명 = 값)
  c.kind = "HEART";
  c.number = 5;

  //cv사용하기(클래스명.CV명 = 값)
  Card.width = 200; //(c.width 로 사용가능, 하지만 iv와 헷갈림_오해하기 쉬움)
  Card.heigth = 250;

메서드란?

메서드 = 선언부 + 구현부

  1. 문장'{}'들을 묶어놓은 것
    • 하나의 작업을 하는 코드를 {}안에 집어넣어 묶어준 뒤 이름을 붙여준 것
  2. 값(입력)을 받아서 처리하고, 결과를 반환(출력)
  3. 클래스 영역에만 정의 가능
  public class Method { 

      // 반환타입 메서드이름(타입 변수명, 타입 변수명, ...) - 선언부  
      //  {  
      // 메서드 호출시 수행될 코드 - 구현부  
      //  }

      public void printTest() {  
          System.out.println("메서드설명입니다!");  
    }  

      public void printTest2(String text) {  
          System.out.println("입력: " + text);  
    }  

      public int add(int x, int y) {//x와 y는 지역변수 lv  
      //        int result = x + y; //result는 지역변수 lv
      //        return result;  
          return x + y;  
    }

        public int multiply(int x, int y) {//x와 y는 지역변수 lv  
      //        int result = x * y; //result는 지역변수 lv
      //        return result;  
      //    여기서 쓰이는 지역변수명은 add메서드의 변수명과 같다. 
      //    하지만 메서드안에서만 사용되고 메서드가 끝나면 같이 사라지기 때문에 
      //    다른 메서드와 변수명이 겹쳐도 상관없다.
          return x * y;  
    }  

      public static void main(String[] args) {  

          //메서드의 호출
          Method m = new Method();  
          m.printTest();//반환 값이 없다.  
          m.printTest2("반환값은 없지만 메서드 호출 시 입력한 값이 콘솔창에 나옵니다.");  
          int result = m.add(3, 5);  
          System.out.println("result = " + result);  
    }  


  }

메서드의 장점

  • 코드의 중복을 줄일 수 있다.
  • 코드의 관리가 쉽다.
  • 코드를 재사용할 수 있다.
  • 코드가 간결해서 이해하기 쉬워진다.

메서드의 작성

  • 반복적으로 수행되는 여러 문장을 메서드로 작성
  • 하나의 메서드는 한 가지 기능만 수행하도록 작성

메서드의 호출

메서드이름(값1, 값2,...없으면 안써줘도 됨); //메서드를 호출하는 방법

        m.printTest();//반환 값이 없다.  (void prinTest()를 호출
        int result = m.add(3, 5); //매개변수로 3, 5를 보냄, 반환 받은 작업결과를 result에 저장.

    //add메서드
    public int add(int x, int y) {//x와 y는 지역변수 lv  
    //        int result = x + y; //result는 지역변수 lv
    //        return result;  
        return x + y;  
  }

댓글