2023-03-06

 

1.자바 문법에서 메서드 호출의 원리

메서드 명(이름) 일치

입력 갯수 일치

각각의 매개변수 data type에 일치하는 값이 입력 되야 메서드가 호출된다.

 

예시) UserInsert 클래스 , console창

package kr.or.ksmart.A;

public class AA001 {

	public static void main(String[] args) {
		userInsert("홍길동",'남',20);
	}
	public static void userInsert(String name, char gender, int age) {
		System.err.println(name + "<--name 출력");
		System.err.println(gender + "<--gender 출력");
		System.err.println(age + "<--age 출력");
	}
}
 

 

접근지정(지시)자(access modifier)

-public

정적키워드

-static

리턴 데이터 타입(return data type)

-void(리턴 없다)

method 명(이름)

-uInsert

 

*메서드 호출원리*

userInsert메서드 호출시

첫번째 매개변수 data type이 String 이기 때문에 "홍길동" 문자열이

name 매개변수에 입력되고

두번째 매개변수 data type이 char 이기 때문에 '남' 문자가

gender 매개변수에 입력되고

세번째 매개변수 data type이 int 이기 때문에 20 정수값이

age 매개변수에 입력되면서 userInsert메서드가 실행된다.

 

예시)if 문법 사용 Gender 클래스

package test;

public class gender {

	public static void main(String[] args) {
		//gender 클래스 호출 예시
		genderCheck('남');
	}
	public static void genderCheck(char gender) {
		System.out.println(gender + "<-입력 받은 매개 변수 gender에 담긴 값");
		//만약에 남 이면 남성 찜질방 입장 가능
		//만약에 여 이면 여성 찜질방 입장 가능
		//둘다 아니면 성별 확인 불가
		//if 문법 작성
		System.out.println(gender + "<-'남'이면 true 1번 조건");
		System.out.println(gender + "<-'여'이면 false 2번 조건");
		if(gender == '남') {
			System.out.println("남성 찜질방 입장 가능");
			//1번 조건 (true)
		}else if(gender == '여') {
			System.out.println("여성 찜질방 입장 가능");
			//2번 조건 (false)
		}else {
			System.out.println("성별 확인 불가 입장 불가능");
		}
	}
}
 

메서드 선언

-성별을 입력 받는다.

-남 이면 남성 찜질방 입장 가능

-여 이면 여성 찜질방 입장가능

-둘다 아니면 출입 불가능

 

예시)'남', '여', '콩' 입력 결과


예시)응용 Login 클래스

package test;

public class Login {

	public static void main(String[] args) {
		loginCheck("id001","pw001");
	}
	public static void loginCheck(String id, String pw) {
		System.out.println("입력받은 id : " + id);
		System.out.println("입력받은 pw : " + pw);
		//DB에 가입된 회원 아이디와 비번을 가정.
		String dbid="id001";
		String dbpw="pw001";
		//String data type으로 선언된 변수에 담겨있는 값을 비교 할때는 
		//equals메서드를 호출 후 리턴값이 true 또는 false를 확인(조건식)
		//안 배웠지만 질문) equals메서드의 return data type? boolean data type
		System.out.println((id.equals(dbid)) + "<- 1번 조건식");
		if(id.equals(dbid)) {
			System.out.println("1-1 아이디 일치 조건");
			if(pw.equals(dbpw)) {
				System.out.println("2-1 로그인 성공 조건");
			}else {
				System.out.println("2-2 비번 불일치 조건");
			}
		}else {
			System.out.println("1-2 아이디 불일치 조건");
		}
	}
}
 

예시)응용 Age 클래스

package test;

public class Age {

	public static void main(String[] args) {
		//메서드 호출
		ageCheck(-11);
	}
	//메서드 선언
	public static void ageCheck(int age) {
		System.out.println("입력받은 나이 : " +age);
		if(age >= 1 && age <= 18) {
			System.out.println("미성년자");
		}else if(age >= 19 && age <= 39) {
			System.out.println("청년");
		}else if(age >= 40 && age <=64) {
			System.out.println("중장년");
		}else if(age >= 65) {
			System.out.println("노년");
		}else {
			System.out.println("확인불가");
		}
	}
}
 

예시)응용 AgeGenderLogin 클래스(3가지 합치기)

package test;

public class AgeGenderLogin {

	public static void main(String[] args) {
		check('남',20,"id001","pw001");
	}
	//4개의 입력자료 : 성별,나이,아이디,비번
	public static void check(char gender,int age,String id,String pw) {
		System.out.println("입력받은 나이 : " + age);
		System.out.println("입력받은 성별 : " + gender);
		System.out.println("입력받은 id : " + id);
		System.out.println("입력받은 pw : " + pw);
		String dbid="id001";
		String dbpw="pw001";
		if(id.equals(dbid)) {
			System.out.println("아이디 일치");
			if(pw.equals(dbpw)) {
				System.out.println("로그인 성공");
				//로그인 성공 시 성별 체크
				if(gender == '여') {
					System.out.println("여성 찜질방 입장 가능");
					ageCheck(age);
				}else if(gender == '남') {
					System.out.println("남성 찜질방 입장 가능");
					ageCheck(age);
				}else {
					System.out.println("성별 확인 불가 - 입장 불가능");
				}				
			}else {
				System.out.println("비번 불일치");
			}
		}else {
			System.out.println("아이디 불일치");
		}
	}
	public static void ageCheck(int age) {
		System.out.println("입력받은 나이 : " + age);
		if(age>=1 && age <= 19) {
			System.out.println("미성년");
		}else if(age >= 19  && age <= 39) {
			System.out.println("청년");
		}else if(age >= 40 && age <= 64) {
			System.out.println("장년");
		}else if(age >= 65 && age <= 85) {
			System.out.println("중장년");
		}else {
			System.out.println("노년");
		}
	}
}
 

예시)3가지 합친것 console