밀린 블로그들 작성하러 왔습니다 😂😂😂😂😂
다시 꾸준히 하는 마음으로 열심히 해볼게요
문제 풀이는 보셨나요 ?? 저는 많이 어려워서 애먹었네요 ㅠㅠㅠㅠ
문제풀이 하면서 다시 열심히 하는 마음으로 활기차게 복습을 해보겠습니다 !
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 |