본문 바로가기

Backend/JAVA

[패캠/JAVA] 메서드

728x90

메서드: 객체가 가지고 있는 동작, 기능

//메서드 정의

접근제한자 리턴타입 메소드명(인수1, 인수2 ...){
    
     수행코드;
     return 반환값;
     
}

리턴타입: 수행된 후에 반환하는 결과의 자료형, 아무 결과 반환 안할시에 void씀

 

메서드의 결과 값은 하나의 형태로 만들어진다.

변수는 데이터를 하나의 형태로 저장한다.

메서드의 이름이 변수 역할을 한다

 

위의 코드에서 결국 add(a,b)=sum이 된다 => 메서드의 이름이 변수역할을 한다.

 

매개변수 전달 기법

Call By Value(값 전달)    

Call By Reference(번지 전달)

번지를 전달해 줌으로써 addArray메서드에서 배열 a에 접근하여 해당 값을 사용가능하다

 

 

메서드 오버로딩

: 하나의 클래스 내에서 동일한 이름의 메서드를 여러개 사용할 수 있는 객체지향 기법

전제조건-> 매개변수의 개수, 매개변수의 타입과 같은 메서드의 시그니처가 달라야 한다.

=> 근데 같은 이름의 여러 메서드가 존재한다면 해당하는 메서드를 찾는데 시간이 걸리지 않을까??

 

메서드의 오버로딩은 정적 바인딩으로 구현된다

정적 바인딩: 컴파일 시점에서 사용될 메서드가 결정되는 바인딩

public int add(int a, int b){
	int sum=a+b;
    return sum;
}

public float add(float a, float b){
	float sum=a+b;
    return sum;
}

이와 같이 적어놧을때 컴파일 단계에서는

public int add_int_int(int a, int b){
	int sum=a+b;
    return sum;
}

public float add_float_float(float a, float b){
	float sum=a+b;
    return sum;
}

위와 같이 선언해 놓고

add(10,50);을 호출햇을때 add_int_int(10,50); 으로 바꿔서 호출되기 때문에 => "검색, 속도의 성능이 떨어지지 않는다."

 

 

728x90