IT의 다이어리/JAVA

Java의 메소드(Method)

류곤 2024. 12. 23. 18:17

밀린 블로그들 작성하러 왔습니다 😂😂😂😂😂

다시 꾸준히 하는 마음으로 열심히 해볼게요

문제 풀이는 보셨나요 ?? 저는 많이 어려워서 애먹었네요 ㅠㅠㅠㅠ

문제풀이 하면서 다시 열심히 하는 마음으로 활기차게 복습을 해보겠습니다 !

 

 

1 9 9 9 9
9 1 9 9 9
9 9 1 9 9
9 9 9 1 9     

//문1]2차원 배열 선언과 동시에 메모리를 할당해라.
int [][] num = new int[4][5];//4행 5열을 뜻함

//문2]위의 값을 문1]번에서 선언한 배열에 저장해라.
for(int i=0;i<num.length;i++){//i를 행반복
	for(int k=0; k<num[i].length;k++){//k를 열반복
    	if(i==k) num[i][k]=1;
        else num[i][k]=9
    }
}

//문3]2차원 배열에 저장된 값을 위 모양대로 출력하여라.
for(int i=0;i<num.length;i++){//행 반복
	for(int k=0;k<num[i].length;k++){//열 반복
    	System.out.printf("%-2d",num[i][k]);//각 요소를 출력
      }
   System.out.println();//줄바꿈
}

 

2차원배열에 대한 문제풀이를 해봤어요~

오늘은 메소드에 대해 작성해볼까 합니다 !

 

《메소드(Method)》

객체에서 행동을 의미하며 프로그래밍 관점에서 보면 데이터를 기반으로

작업을 수행하는 기본 부품

 

 

  • 또한 메소드는 class안에서 정의 해야하고 메소드안에서는 메소드를 정의 할 수 없습니다

  • 메소드 정의시 반드시 반환타입(자료형)이 있어야 합니다.

  • 메소드명은 변수 명명규칙처럼 만들면 되고 소문자로 시작합니다

  • 메소드는 중복 코딩 제거의 장점이 있습니다.

 

《메소드(Method) 정의》

//메소드 정의]
접근 지정자(Access Modifier) [Modifier] 반환타입 메소드명([매개변수들]) {
	메소드가 실행할 코드;
    [return 결과값;]
}

 

 

 

《메소드(Method)의 첫번째 형식》

 

//메소드 형식 1]
/*매개변수도 없고 반환값도 없는 경우
결과값을 반환하지 않을때 반환 타입은 void
※주로 출력하는 기능을 담당한다.*/


접근 지정자(Access Modifier) [Modifier] void 메소드명(){
	메소드가 실행할 코드;
 }
 
 /////
 static void methodName(){} //실행할 코드는 없지만 메소드는 존재
 pubiic void className(){//실행할 코드로 Hello, World를 출력
 	System.out.println("Hello, World");
  }

 

※ 같은(하나의) 클래스안에서 메소드명은 중복 불가합니다

 

《메소드(Method)의 두번째 형식》

 

//메소드 형식2]
/*매개변수는 없고 반환 값이 있는경우
주로 메소드안에서 데이터를 생성하여 그 값으로 처리한 후
그 결과값을 반환하고자 할때 사용*/

접근지정자 [modifier] 반환자료형(반환타입) 메소드명(){
	실행할 코드;
    return 결과값;
 }
 
 //////
 public int getNumber(){
 	int sum=0;
    for(int i=1;i<=10;i++) sum +=i;
 	return sum;
 }

 

※ 반환타입이 void가 아닌 경우는 반드시 값은 return으로 반환 해야합니다.

 

《메소드(Method)의 세번째 형식》

 

//메소드 형식3: 매개변수는 있고 반환값은 없는 경우

/*메소드에서 필요한 값을 매개변수를 통해서 받고
그 값으로 일을 처리한 후 결과값을 바로 출력하고자 할때 사용*/


접근지정자 [modifier] void 메소드명(매개변수들){
	처리할 일;
 }
 
static void printTotal(int start,int end) {
	int sum = 0;
    for(int i=start;i<=end;i++) sum+=i;
    System.out.printf("%d부터 %d까지 누적합:%d%n",start,end,sum);
}

 

 

《메소드(Method)의 네번째 형식》

 

//메소드 형식 4:매개변수도 있고 반환값도 있는 경우
//가장 활용 빈도가 높은 메소드 타입]

접근지정자 [modifier] 반환타입 메소드명(매개변수들){
	처리할 일;
    return 결과값;
 }
 
 
 //인원 수를 매개변수로 전달 받아 인원 수만큼 나이를 사용자로부터 입력받고
 그 나이의 평균을 반환하는 메소드 정의
 
 static double getAverageOfAge(int countOfPerson){
  Scanner sc = new Scanner(System.in);
	int totalOfAge=0;
	//인원수 만큼 반복하면서 나이 입력받기 그리고 totalOfAge에 누적
	for(int i=1;i <= countOfPerson;i++) {
		System.out.println(i+"번째 나이 입력?");
		totalOfAge+=Integer.parseInt(sc.nextLine());
	}
	//평균 구해서 반환
	return (double)totalOfAge/countOfPerson;
}/////////////getAverageOfAge

 

 

『메소드(method) 호출』

메소드 호출과 관련된 개념으로 매개변수에 값을 전달하면

Call by Value

매개변수에 메모리의 주소값을 전달(복사)하면

Call by Reference

 

/*매개 변수의 타입이 기존 자료형 인 경우
Call By Value(값에 의한 호출):값이 매개변수에 전달*/

//Call By Value 테스트용 메소드 정의]
static void callByValue(int first,int second) {
	int temp = first;
	first    = second;
	second   = temp;
	System.out.printf("[callByValue메소드 안]first:%d,second:%d%n",first,second);
}

//매개변수의 타입이 참조형(배열,클래스,인터페이스등) 인 경우
//call by reference(참조에 의한 호출) 값이 아니라 주소값이 매개변수에 전달됨.

/* Call by reference를 적용해서 매개변수에 여러개의 값을 동시에 전달
할 수도 있고 또한 여러개의 값을 반환할 수 있다. */

//Call by Reference테스트를 위한 메소드 정의]
static void callByReference(int[] arr) {
	int temp = arr[0];
	arr[0]   = arr[1];
	arr[1]   = temp;
	System.out.printf("[callByReference메소드 안]arr[0]:%d,arr[1]:%d%n",arr[0],arr[1]);	
 }

 

 메소드에 대해서 알아봤습니다 ~

이제 다시 꾸준하게 복습 해볼게요 ~

'IT의 다이어리 > JAVA' 카테고리의 다른 글

Java의 접근지정자1 (AccessModifier)  (1) 2024.12.27
Java의 추상화(abstraction)  (2) 2024.12.26
Java의 2차원 배열  (0) 2024.11.27
Java의 1차원 배열  (0) 2024.11.25
Java의 Switch문과 while문  (0) 2024.11.22