메소드(method)란?
public class Method{
public static void number(){
// number() 메소드 코드 내용 작성 부분
}
public static void main(String[] args){
number();
// number() 메소드 호출해서 number() 메소드 코드 내용을 사용할 수 있음.
}
}
한 번 코딩해 놓으면, 다른 사람에게 공유 가능
메소드를 사용하는 사람은 메소드의 실제 구현 코드 내용을 이해하지 않아도 얼마든지 사용가능.
전체 소스코드 양을 대폭 줄일 수 있고, 중복되는 코드를 제거 가능함.
중복 코드 덩어리를 수정 할 경우 , 전체 코딩 속도 향상 가능.
sum(1,10)
이 기계어로 처리되는 과정
sum
이라는 이름을 갖은 메소드를 찾음.sum
메소드를 호출 후, 메소드에 formal parameter인 startValue
에 1을 넣음.endValue
에는 10을 넣음.result
변수에 메모리 자리를 만들고 메소드 바디에 명령어 실행함.result
변수의 값을 sum
메소드를 호출한 곳으로 넘겨줌 -->return
startValue
endValue
result
변수의 메모리 자리는 삭제됨.public static void main(String[] args) {
System.out.println("1과 10사이의 합" + sum(1,10));
System.out.println("27과 37사이의 합" + sum(27,37));
System.out.println("35과 49사이의 합" + sum(35,49));
}
// 이름이 sum인 메소드 갖음
public static int sum(int startValue, int endValue) {
int result = 0;
for (int i = startValue; i <= endValue; i++) {
result += i;
}
return result;
}
매개변수(parameter)란?
,
로 구분하여 한번에 여러개 선언이 가능함.인자(argument)란?
,
로 구분하여 한번에 여러개 선언이 가능함.public class Method{
public static void number(int num){
// number() 안에 들어오는 값은 int num;이라는 매개 변수에 들어옴.
System.out.println(num);
}
public static void main(String[] args){
number(5); // number()메소드에 5라는 인자값을 변수에 넣음
}
}
메소드 작성시 주의
return
을 사용하지 않고 바로 출력하라고 하면 바르게 실행 됨.return
을 사용하여 코드를 작성하면 가변적 메소드와 고정적 메소드를 정확히 구분할 수 있음return
이 끝나면, return
값이 메소드 밖으로 반환됨과 동시에 메소드가 종료됨.입력 값을
return
으로 반환하기. (실습)
public class Method{
public static String number(int num1, int num2){
// num1 = 1; num2 = 5; 라는 값을 main()으로부터 받음
int i = num1; // int i = 1;
String output;
while (i < num2){ // i < 5
output += i; // 출력되는 숫자를 output에 담음.
i++;
}
return output;
// !!! return을 사용하면 결과값이 메소드 외부로 반환됨.!!!
}
public static void main(String[] args){
String result = number(1,5);
// number()메소드에 1과 5라는 인자값을 순서대로 변수에 넣음
// number()메소드에서 반환 받은 값을 result로 넣어줌.
System.out.println(result); // 반환 받은 입력값 출력
}
}
return
값은 존재하지 않음을 의미함.String 참고 )
https://www.w3schools.com/java/java_ref_string.asp
문자열의 크기 비교
s1
과 s2
의 문자열을 알파벳 순서로 비교함.
s1.compareTo(s2)
메소드 실행 결과
s1의 문자열
> s2의 문자열
이면, 양수의 값 return
s1의 문자열
< s2의 문자열
이면, 음수의 값 return
s1의 문자열
== s2의 문자열
이면, 0을 return
System.out.println(s1+ "과" +s2+"의 크기 비교 : " + s1.compareTo(s2));
System.out.println("키위와 오렌지의 크기 비교 : " +"kiwi".compareTo("orange"));
.substring(startIndex,endIndex)
형식
startIndex
0부터 시작함
endIndex
일부 문자열 가져오기 불포함
endIndex
- 1 순서 문자까지 가져옴.startIndex
만 있고 endIndex
값이 없으면
startIndex
부터 문자열 끝까지 데이터 가져옴System.out.println(message.substring(0,5));
System.out.println(message.substring(0,7));
System.out.println(message.substring(0,11));
System.out.println(message.substring(2,5));
System.out.println(message.substring(2,7));
System.out.println(message.substring(2,11));
System.out.println(message.substring(0));
System.out.println(message.substring(2));
문자열에서 찾고 싶은 문자열의 시작 index가져오기.
.indexOf('char' "String" startIndex )
startIndex
부터 시작하는 문자열이 있으면 Index를 가져옴startIndex
가 주어지지 않으면 ,startIndex
는 0부터 시작..lastIndexOf()
는 문자열의 끝에서부터 찾기 시작
System.out.println("wellcome to java".indexOf('w'));
System.out.println("wellcome to java".indexOf('o',5));
System.out.println("wellcome to java".indexOf("come"));
System.out.println("wellcome to java".lastIndexOf('w'));System.out.println("wellcome to java".lastIndexOf('o',5));
System.out.println("wellcome to java".lastIndexOf("come"));
.toUpperCase()
를 사용하여 원하는 문자열 찾기에 응용 가능System.out.println("wellcome to java".toUpperCase().indexOf("JAVA",5));
문자열 내부에서 특정 문자를 다른 문자로 바꾸기
.replace(oldChat, newChar)
형식
oldChar
에서 newChar
로 바꾸기.String s1 = "apple";
System.out.println(s1.replace('p', 'r'));
같은 이름이지만 다른 매개변수를 같는 경우