method 메소드 2023. 5. 18. 16:18

namin0_0·2023년 5월 29일
0

메소드

  • 수학의 함수와 비슷하며 호출을 통해 사용

  • 타언어에서 함수와 동일한 기능

  • 메소드 호출 시 전달 값이 있거나 없을 수 있으며, 호출하게 되면 내부에 작성된 연산을 수행하게되며, 연산 후 결과값은 있거나 없을 수 있다.

메소드의 형태(메소드선언방법)

접근제어지시자 리턴타입 반환형메소드명(매개변수) {

  실행코드;

}

ex)

public void test1() {

System.out.println("test1 메소드!");

}

접근제어지시자 : 메소드 사용범위를 지정해줌

반환형 메소드명 : 메소드를 수행했을 때 되돌려주는 데이터타입 입력

메소드명 : 메소드이름

매개변수 : (=파라미터) 메소드에게 전달해줘야 하는 값

메소드의 접근제어 지시자(접근제한자)

사용할 수 있는 범위는?

public : 해당클래스내부, 같은패키지, 후손클래스, 전체 = 다른패키지에서도 사용가능 나머지 불가능

protected : 해당클래스내부, 같은패키지, 후손클래스

default : 해당클래스내부, 같은패키지

private : 해당클래스내부

**public, protected, default는 같은 패키지 내에서는 import 안해도 된다!!!

같은 패키지 내에서는 서로 인식이 가능하다.

private는 해당 클래스 내부에서만 쓸 수 있으므로 다른 클래스나 다른범위에서는 사용 불가능!

메소드의 반환형

void : 반환값이 없을 경우

기본자료형 : 반환값이 8가지 기본 자료형일 경우

참조자료형 : 반환값이 참조형 자료형일 경우 (String, 사용자정의)

배열 : 기본형 배열, 참조형 배열 모두 가능

반환값이 있는 반환형일 경우 (void 제외)

return(); 이라는 코드를 꼭 입력해줘야함.

** return은 어떠한 경우에도 리턴이 될 수 있는 코드를 작성해야 한다.

return data; -> data를 되돌려주면서 메소드를 종료

** return 코드는 메소드를 끝내는 코드기 때문에 return 아래에는 코드가 올 수 없다.

리턴타입 알아보기

값을 100이 아닌 다른 정수로 입력했을 때는 다 0이라고 뜬다.

값을 100이라고 입력했을 때만 이렇게 나옴~!

반환형과 리턴값은 꼭 일치해야한다.

중요!!!!!!!!!!!

반환값이 int면 return값도 정수여야 함.

String이면 문자...

메소드의 매개변수

  • 매개변수는 해당 메소드에서 사용할 변수를 선언하는 개념

-> 새로만들어진 변수이므로 변수이름은 아무런 영향을 주지 않는다. = 자료형과 순서가 중요!!!

**매개변수의 개수에는 제한이 없으며,

여러개인 경우 ,를 통해서 구분한다.

()

: 매개변수가 없는 것을 의미함

기본자료형

: 기본형 매개변수 사용 시 값을 복사하여 전달

: 메소드에서 해당값을 변경해도 원래 값은 변경되지 않는다.

: call by value

참조자료형 , 배열

: 참조자료형, 배열을 매개변수로 전달 시에는 데이터의 주소값이 전달

: 메소드에서 해당값을 변경하면 원래 값도 같이 변경

: call by reference



이거 코드 보고 이해하기 ㅠㅠㅠㅠㅠ

  1. 메소드 호출 시 기본형인 경우

= 값만 복사해서 전달하기때문에 해당 메소드 내의 값은 변화 없고 다른 메소드에 값만 복사된다.(다른메소드에서 그 값을 변화시켜도 해당 메소드에서 값은 변화 없음)

  1. 메소드 호출 시 참조형인 경우

= 주소값을 복사해서 전달하기 때문에 heap메모리 내의 하나의 인스턴스를 공유하는 모양임!!! 주소값 복사된 메소드에서 값을 변경하면 해당 메소드 값도 변경된다.

profile
갓생살기프로젝트

0개의 댓글