본문 바로가기
JAVA/객체지향

변수와 메서드

by chogigang 2023. 2. 21.

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

 

변수는 클래스변수,인스턴스변수,지역변수 모두 세 종류가 있습니다.

 

1.인스턴스 변수

클래스 영역에 선언되며. 클래스의 인스턴스를 생성할 때 만들어집니다. 그렇기 때문에 인스턴스 변수의 값을 읽어

오거나 저장하기 위해서는 먼저 인스턴스를 생성해야합니다.

 

2.클래스 변수

인스턴스 변수 앞에 static을 붙이기만 하면 됩니다. 클래스변수는 모든 인스턴스가 공통된 저장공간 을 공유하게 됩니다.

한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우, 클래스변수로 선언해야 합니다.

 

3.지역변수

메서드 내에 선언되어 메서드 내에서만 사용 가능하며 메서드 종료되면 소멸되어 사용할수 없게 됩니다.

 

 

 

메서드

특정 작업을 수행하는 일련의 작업단위로 문장들을 하나로 묶는 것입니다.

 

 

1.높은 재사용성

 

2.중복된 코드의 제거

 

3.프로그램의 구조화

 

 

 

메서드의 이름

 

동사인 경우가 멶습니다. 

 

 

 

메서드 반환타입

반환타입으로 void를 적어야합니다.

 

 

메서드 return

값의 타입은 반환타입과 일치하거나 적어도 자동 형변환이 가능한 것이어야 합니다

 

출력(반환값)은 최대 하나만 허용합니다.

 

메서드 호출

 

메서드이름(값1, 값2,....) ;                 // 메서드 호출

print99danAll();                            // void print99danAll() 호출

int result = add(3,5);                     // int add(int x, int y) 를 호출하고 , 결과를 result에 저장

 

 

return문

현재 실행중인 메서드를 종료하고 호출한 메서드로 되돌아갑니다.

 

 

void printGudan(int dan) {
        for (int i=1;i <= 9;i++){
            System.out.println("%d*%d =%d%n",dan, i , dan * i);
            return; //반환 타입이 void이므로 생략 가능합니다. 컴파일러가 자동 추가 됩니다.
        }
}

 

 

반환타입이 void가 아닌 경우    반드시 return문이 있어야 합니다. 없으면 컴파일 에러가 발생합니다.

 

int multiply(int x, int y){
    int result = x * y;
    
    return result; //반환타입이 void가 아니므로 생략불가 입니다.
}

 

 if문 조건식의 결과에 따라 return문이 실행되지 않을수도 있습니다.

 

int max(int a, int b) {
      if(a>b)
          return a; //조건식이 참일 때만 실행됩니다.
}

 

그래서 같이 if문이나 else블럭에 return문을 추가해서 항상 결과값이 반환되로고 해야합니다.

 

int max(int a, int b) {
      if(a>b)
          return a; //조건식이 참일 때만 실행됩니다.
}else{
      return b; // 조건이식이 거짓일 때 실행됩니다.
  }

 

 

 

반환값(return value)

 

리턴문의 반환값으로 주로 변수가 오긴 하지만 항상 그런 것은 아닙니다.

 

 int add(int x,int y){                             int add(int x, int y){
                                                        return  x + y;
                                                            }
        int result = x + y;
        return result;                              
 }

}

 

반환값이 void 가 아닐때  타입이 일치하면 자동으로 형변환을 해줍니다 (cha,byte,short)

 

 

'JAVA > 객체지향' 카테고리의 다른 글

클래스 메서드(static)와 인스턴스 메서드  (0) 2023.02.22
기본형 매개변수와 참조형 매개변수  (0) 2023.02.22
JVM의 메모리 구조  (0) 2023.02.22
클래스와 객체  (0) 2023.02.21
자바 객체지향  (0) 2023.02.21