public static void helloJava() {
System.out.println("프로그램 시작");
System.out.println("Hello Java");
System.out.println("프로그램 종료");
}
값 매개변수화 후 =>
public static void hello(String str){
System.out.println("프로그램 시작"); // 변하지 않는 부분
// 변하는 부분 시작
System.out.println(str);
// 변하는 부분 종료
System.out.println("프로그램 종료"); // 변하지 않는 부분
}
public static void main(String[] args) {
hello("hello Java");
}
public static void helloDice() {
long startNs = System.nanoTime();
//코드 조각 시작
int randomValue = new Random().nextInt(6) + 1;
System.out.println("주사위 = " + randomValue);
//코드 조각 종료
long endNs = System.nanoTime();
System.out.println("실행 시간: " + (endNs - startNs) + "ns");
}
public static void main(String[] args) {
helloDice();
}
동작 매개변수화 후 =>
public static void hello(Procedure procedure){
long startNs = System.nanoTime();
//코드 조각 시작
procedure.run();
//코드 조각 종료
long endNs = System.nanoTime();
System.out.println("실행 시간: " + (endNs - startNs) + "ns");
}
public static void main(String[] args) {
hello(() -> {
int randomValue = new Random().nextInt(6) + 1;
System.out.println("주사위 = " + randomValue);
});
}
메서드는 클래스 내부의 함수이다.
함수는 객체와 상관없이 독립적으로 호출 가능하다.
-> 따라서 함수와 메서드는 수행하는 역할 자체는 같지만 소속과 호출 방식이 다르다.