자바

JAVA STEP 11. Method

2023. 2. 7. 13:59
728x90

메소드(Method)

  • 메소드(Method), 함수(Function), 프로시저(Procedure), 서브루틴(SubRoutine)
  • 코드의 집합
  • 같은 목적을 가진 코드의 집합
  • 메소드 사용
    • 1. 메소드 선언하기
      • 1회
      • public | static | void | hello | ()
      • 접근지정자 | 정적키워드 | 반환자료형 | 메소드명 | 인자리
    • 2. 메소드 호출하기
      • 1회 ~ 무한대
  • ex)
  •  
public static void main(String[] args) {
	/*
	 
	 	메소드, Method
	 	- 메소드(Method), 함수(Function), 프로시저(Procedure), 서브루틴(subRoutine)
	 	- 코드의 집합
	 	- 같은 목적을 가진 코드의 집합
	 	
	 	메소드 사용
	 	1. 메소드 선언하기
	 		- 1회
	 		
	 	2. 메소드 호출하기
	 		- 1회 ~ 무한대
	 		
	 	요구사항] "안녕하세요." x 5번 출력
	 	수정사항] "반갑습니다." 로 바꿔주세요. 
	 	
	 */
		
		//Ctrl+C, Ctrl+V > 생산성 포함x > 유지 보수성 낮음
//		System.out.println("안녕하세요.");
//		System.out.println("안녕하세요.");
//		System.out.println("안녕하세요.");
//		System.out.println("안녕하세요.");
//		System.out.println("안녕하세요.");
		System.out.println("반갑습니다.");
		System.out.println("반갑습니다.");
		System.out.println("반갑습니다.");
		System.out.println("반갑습니다.");
		System.out.println("반갑습니다.");
		
		//보완하기 : 메소드를 호출하여 생산성 늘리기
		//메소드 호출하기 > 메소드 사용하기 > 메소드 내의 코드를 실행한다.
		hello();
		hello();
		hello();
		hello();
		hello();
		

	} //main
	
	
	//메소드 선언하기
	//public 	static 	  void 		hello		() <- 선언부, 시그니처(sign) 
	//접근지정자	정적키워드   반환자료형   메소드명		인자리스트
	
	//코드의 재사용성
	public static void hello() {
		
		//구현부(Body)
		//- 메소드가 하려는 업무 코드 구현
		System.out.println("반갑습니다.");
		
	}
  • 메소드 인자리스트
    • 인자리스트, 인자(Arguments)
    • 파라미터(Parameter)
    • 매개변수
    • 메소드를 호출할 때 값을 전달해서, 메소드 내에서 사용할 수 있게 해주는 역할
    • 메소드 활용도를 높여줌. > 메소드 가용성 향상
    • ex)
    •  
public static void main(String[] args) {
		
		/*
		 
		 	접근지정자 정적키워드 반환자료형 메소드명(인자리스트) {
		 	
		 		구현부
		 
		 }
		 
		 
		 	메소드 인자리스트
		 	- 인자리스트, 인자(Arguments)
		 	- 파라미터(Parameter)
		 	- 매개변수
		 	- 메소드를 호출할 때 값을 전달해서, 메소드 내에서 사용할 수 있게 해주는 역할
		 	- 메소드 활용도를 높여줌. > 메소드 가용성 향상
		 	
		 
		 */
		
	 
		hello();
		hello2();
		hello3();
		hello4();
		hi("홍길동"); //hi(String name)
		hi("아무개");
		hi("김경민"); //실인자 : 실제로 들어가는 인자
		
		checkAge(25);
		checkAge(15);
		//호출 시 주의할 점
		//1. 인자값의 순서
		//2. 인자값의 개수
		score("홍길동", 100, 95, 80);
		score("아무개", 90, 85, 90);
		//score 입력후, fn+control+space누르면 이전에 무서주석을 작성하였던 도움말이 뜨게됨.
		
	
	
	}//main
    
    //요구사항] 나이를 전달 > 성인 or 미성년자 판단
	public static void checkAge(int age) {
		
		String result = age >= 19 ? "성인" : "미성년자";
		
		System.out.printf("입력한 %d세는 %s입니다.\n", age, result);
		
	}
	// 문서주석, Document Comment
	//- 기능이 있는 주석(개발 도구 등에서 사용하는 주석)
	// /** 입력하고 Enter치면 아래와 같은 파라미터 값이 나옴.
	
	/**
	 * 성적을 출력합니다. 
	 * @parma name 	이름
	 * @param kor 	국어점수
	 * @param eng 	영어점수 
	 * @param math	수학점수
	 */
	public static void score(String name, int kor, int eng, int math) {
		
		System.out.println();
		System.out.println("=======================");
		System.out.printf("     %s의 성적표\n",name);
		System.out.println("=======================");
		
		
		System.out.printf("국어 : %4d점\n", kor);
		System.out.printf("영어 : %4d점\n", eng);
		System.out.printf("수학 : %4d점\n", math);
		
		System.out.printf("총점 : %4d점\n", kor + eng + math);
		System.out.printf("평균 :   %4.1f점\n", (double)(kor + eng + math) / 3);
		
	}
  • 문서 주석(Document Comment)
    • 기능이 있는 주석(개발 도구 등에서 사용하는 주석)
    • /** 입력 후 Enter를 치게 되면 자동으로 파라미터 값들이 나오게 됨.
  • void가 아닌 int, String형 등을 사용할 때는 return을 입력해 주어야 한다.
  • ex)
  •  
public static void main(String[] args) {
		
		/*
		 
	 	접근지정자 정적키워드 반환자료형 메소드명(인자리스트) {
	 	
	 		구현부
	 
	 }
		 */
		
		int num = getNum(); //호출 되면서 여기에 10을 놓고 사라짐.
		System.out.println(num);
		
		//이전 checkAge() > 나이 검사 + 결과 출력
		//현재 checkAge() > 나이 검사
		String result = checkAge(25);
		System.out.println(result);

		
	}//main
	
	//This method must return a result of type int
	
	//이렇게 void가 아닌 int,String형 등을 사용할 때는 return을 꼭 해주어야 한다.
	public static int getNum() {
		
		//리턴문, 반환문
		//- return 키워드 사용한다.
		//- return 뒤의 값 1개(***)를 돌려주는 역할 
		return 10;
		
	}
	public static String checkAge(int age) {
		
		String result = age >= 19? "성인" : "미성년자";
		
		return result;
		
	}
  • 메소드 사용 시 주의할 점
    • 항상 그 메소드의 형식을 꼭 보고 사용해야한다.
    • 메소드끼리의 선언 순서는 아무 상관없다.
    • ex) int num = getNum();
      • 만약 이 메소드의 위치를 찾는다면 방법(정의된 곳으로 이동)
      • 1. 오른쪽 상단의 outLine이용
      • 2. getNum(); 블로킹 후, F3키를 누른다.(Mac은 fn+F3)
      • 3. 왼쪽 Ctrl(맥은 Command)
  • 주석 사용시 Tip
    • TODO : 강조하는 역할, Tasks에 다 기록되어 있음. 
    • XXX : 제거해야할 사항
    • FIXME : 고쳐야 할 것 
  • 메소드 자동 생성
    • 해당 메소드를 블록을 잡고, 마우스 오른쪽 Refector-method-refecteor-메소드 이름적으면 생성
    • main 메소드 안에 score(); 이렇게 입력 후에 Ctrl+1 (Mac은 command+1) 을 누르면 자동으로 생성됨.
  • ex)
  •  
public class Ex25_Method {

	public static void main(String[] args) {
    
   		int num = getNum();
   		// 만약 이 메소드의 위치를 찾는다면 방법(정의된 곳으로 이동하는 방법)
		// 1. 오른쪽 상단의 outLine
		// 2. getNum(); 블로킹 하고, F3키 (맥은 fn+f3키)
		// 3. 왼쪽 Ctrl(맥은 command) - open Declaretion
        
    	//이클립스 기능(메소드 관련)
		
		//********* 동일한 목적을 가지는 동일한 코드가 2번 이상 반복되면 안된다!!!!!!
		
		//잘못 만든 예
	/*	System.out.println("안녕하세요.");
		System.out.println("반갑습니다.");
		System.out.println("환영합니다.");
		//블록잡고, 마우스오른쪽, Refector-method refector-메소드 이름적으면 생성됨.
		System.out.println("안녕하세요.");
		System.out.println("반갑습니다.");
		System.out.println("환영합니다."); */
		
		//잘 만든 예
		hello();
		
		//----------------------
	}//main()
    public static void hello() {
		System.out.println("안녕하세요.");
		System.out.println("반갑습니다.");
		System.out.println("환영합니다.");
	}//hello()
    public static void test() { //안의 body보다 header가 더 중요함.
		
		System.out.println("one");
		
		//Void methods cannot return a value :void메소드는 return 값을 가질 수 없음.
		//return 100;
		
		//리턴문
		//1. 값을 돌려준다.
		//2. 메소드를 종료한다.
		
		//빈 리턴문 
		//1. 메소드를 종료한다.
		return;
		
		//System.out.println("two");
		
	}//test()
    public static int getNum() {
		
		System.out.println("하나");
		
		return 100; //이 문장을 만나는 순간 반환. > 즉, 메소드가 여기서 종료.
		// 따라서 return문 뒤에는 절대 코드를 작성하면 안됨.
		
		//에러 : Unreachable code > 이 코드는 실행할 수 없어요.
		//System.out.println("둘");
		
	}//getNum()
}
728x90
저작자표시 비영리 변경금지 (새창열림)

'자바' 카테고리의 다른 글

JAVA STEP 13. Method 예제 모음  (0) 2023.02.07
JAVA STEP 12. LocalVariable & Method Overloading  (0) 2023.02.07
JAVA STEP 10. 자바 예제모음  (0) 2023.02.06
JAVA STEP 9. Operator  (0) 2023.02.06
JAVA STEP 8. Casting  (0) 2023.02.06
'자바' 카테고리의 다른 글
  • JAVA STEP 13. Method 예제 모음
  • JAVA STEP 12. LocalVariable & Method Overloading
  • JAVA STEP 10. 자바 예제모음
  • JAVA STEP 9. Operator
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • 웹개발자
  • 데이터베이스
  • it
  • 개발자
  • 알고리즘
  • 프론트엔드
  • 정보처리기사필기
  • 코딩테스트
  • DB
  • 자바
  • JavaScript
  • IT개발자
  • 웹페이지
  • DBA
  • 앱개발자
  • 웹개발
  • IT자격증
  • jquery
  • 백준
  • IT자격증공부
  • ajax
  • React
  • java
  • jsp
  • 백엔드
  • 개발블로그
  • 정보보안전문가
  • html
  • css
  • 정보처리기사

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVA STEP 11. Method
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.