티스토리 뷰

개발자교육

24_06_24 오늘의 수업내용

regnator 2024. 6. 24. 13:19
728x90
반응형

오늘의 수업내용 요약: Java 메서드 호출원리 및 실습

1. 메소드 선언 및 호출

1. 리턴 없고 입력 없는 메서드 선언 및 호출

// 메서드 선언
public static void a() {
// 메서드 내용
}
// 메서드 호출
a();

2. 리턴 없고 입력 있는 메서드 선언 및 호출

// 메서드 선언: 입력 받을 값은 문자열 1개
Public static void a(String name) {
// 메서드 내용
System.out.println(name + "<-- name 매개변수에 담긴 값");
}
// 메서드 호출
a("홍길동");

 

 

2. 메서드 호출 원리

  1. 메서드명 일치
    • 선언된 메서드 이름과 호출할 때의 메서드 이름이 같아야 합니다.
    • 예: a() 메서드 선언 시 호출도 a()로 해야 합니다.
  2. 입력 매개변수 갯수 일치
    • 선언된 메서드의 입력 매개변수 갯수와 호출 시 입력 매개변수 갯수가 일치해야 합니다.
    • 예: public static void a(String name)는 1개의 매개변수를 받아야 하므로, 호출 시 a("홍길동")처럼 1개의 값을 넘겨야 합니다.
  3. 매개변수 데이터 타입 일치
    • 선언된 메서드의 매개변수 타입과 호출 시 전달하는 매개변수 타입이 일치해야 합니다.
    • 예: public static void a(String name)은 String 타입을 받아야 하므로, 호출 시 "홍길동"과 같이 String 타입의 값을 전달해야 합니다.

 

3. 메서드 오버로딩

같은 클래스 내에서 메서드 이름을 동일하게 하고,

매개변수의 갯수나 타입을 다르게 선언하여 유사한 기능을 제공하는 방법.

public class Example {
    // 입력값이 없는 메서드
    public static void a() {
        System.out.println("입력값 없음");
    }

    // 입력값이 문자열인 메서드
    public static void a(String name) {
        System.out.println("입력값: " + name);
    }

    // 입력값이 정수인 메서드
    public static void a(int number) {
        System.out.println("입력값: " + number);
    }

    public static void main(String[] args) {
        // 메서드 호출
        a();
        a("홍길동");
        a(123);
    }
}

 

4. 접근 지정자 (Access Modifier)

접근 지정자접근 가능 범위

public 전체
protected 같은 패키지
default 같은 패키지 (지정자 없을 때)
private 같은 클래스

 

메서드 선언 예시)

1). 접근 지정자 (Access Modifiers)

  • public: 전체 접근 가능
  • protected: 같은 패키지에서 접근 가능
  • default: 접근 지정자가 없을 때 사용, 같은 패키지에서 접근 가능
  • private: 같은 클래스 내에서만 접근 가능

2). 정적 키워드 (Static Keyword)

  • static: 해당 키워드를 사용하면 클래스에 속하게 되며, 객체를 생성하지 않고도 접근할 수 있음

3). 메서드 선언 (Method Declaration)

  • 리턴 타입 (Return Data Type): void (리턴이 없음)
  • 메서드 이름 (Method Name): userInsert
  • 매개변수 (Parameters):
    • 첫 번째 매개변수: String name
    • 두 번째 매개변수: char gender
    • 세 번째 매개변수: int age
package kr.or.ksmart.a;

public class Total {

	public static void main(String[] args) {
		userInsert("홍길동", '남', 10);
		// 첫번째 String data type에 일치하는 값 : 예)"홍길동"
		// 두번째 char data type에 일치하는 값 : 예)'남','여'
		// 세번째 int data type에 일치하는 값 : 예) 10 20 30
	
		userInsert("idksmart", "pwksmart", "홍길동", '남', 10);
	}

	// 메서드 선언2 
	public static void userInsert(String id, String pw, String name, char gender, int age) {
		System.out.println(id + "<-- id 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(pw + "<-- pw 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(name + "<-- name 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(gender + "<-- gender 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(age + "<-- age 매개변수에 담긴 값 userInsert Total.java");
	}

	// 메서드 선언1
	public static void userInsert(String name, char gender, int age) {
		System.out.println(name + "<-- name 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(gender + "<-- gender 매개변수에 담긴 값 userInsert Total.java");
		System.out.println(age + "<-- age 매개변수에 담긴 값 userInsert Total.java");
	}
}

5. 조건문 if

1). 특정값을 비교하는 조건문

코드)

	public static void main(String[] args) {
		// 메서드 호출 후 실행하세요
		genderCheck('남'); // 값테스트 : '남' 또는 '여' 또는 '가'
	}

	// 메소드 선언
	public static void genderCheck(char gender) {
		System.out.println("입력받은 성별 : " + gender);
		// 조건문 if if(조건식)
		// 조건식을 어떻게 작성을 해야 할까?
		// 만약에 남이면 : java문법으로 작성을 할 수 있나?
		System.out.println((gender == '남') + "<- 조건식1");
		System.out.println((gender == '여') + "<- 조건식2");
		// 예) if(조건식) if(true) 또는 if(false)
		if (gender == '남') {
			System.out.println("01 남성 찜질방 입장하세요!");
		} else if (gender == '여') {
			System.out.println("02 여성 찜질방 입장하세요!");
		} else {
			System.out.println("03 성별 확인 불가!");
		}
	}

 

결과물)

입력받은 성별 : 남
true<- 조건식1
false<- 조건식2
01 남성 찜질방 입장하세요!

 

2). 특정구간을 비교하는 조건문

코드)

	public static void main(String[] args) {
		// 메서드 호출 후 실행하세요
		// 테스트 입력 : 10 or 30 or 50 or 70
		ageCheck(9);
		ageCheck(32);
		ageCheck(48);
		ageCheck(64);
	}

	public static void ageCheck(int age) {
		System.out.println("나이 : " + age);
		System.out.println((age <= 18) + "<- 조건식1");
		System.out.println((age >= 19 && age <= 39) + "<- 조건식2");
		System.out.println((age >= 40 && age <= 64) + "<- 조건식3");
		System.out.println((age >= 65) + "<- 조건식4");

		if (age <= 18 && age >= 0) {
			System.out.println("01 미성년자 등급");
		} else if (age >= 19 && age <= 39) {
			System.out.println("02 청년 등급");
		} else if (age >= 40 && age <= 64) {
			System.out.println("03 중장년 등급");
		} else if (age >= 65) {
			System.out.println("04 노년 등급");
		}
		System.out.println("---------------------------------------------");
	}

 

결과물)

나이 : 9
true<- 조건식1
false<- 조건식2
false<- 조건식3
false<- 조건식4
01 미성년자 등급
-----------------------------------------------------------------------
나이 : 32
false<- 조건식1
true<- 조건식2
false<- 조건식3
false<- 조건식4
02 청년 등급
-----------------------------------------------------------------------
나이 : 48
false<- 조건식1
false<- 조건식2
true<- 조건식3
false<- 조건식4
03 중장년 등급
-----------------------------------------------------------------------
나이 : 64
false<- 조건식1
false<- 조건식2
true<- 조건식3
false<- 조건식4
03 중장년 등급
-----------------------------------------------------------------------

3). 1)+2) 혼합 조건문

코드)

	public static void main(String[] args) {
		checkAge('남', 39);
		checkAge('여', 55);
		checkAge('3', 55);
		checkAge('여', -33);
	}

	public static void checkAge(char gender, int age) {

		if (gender == '남') {
			if (age >= 0) {
				System.out.println("당신은 " + age + "세 " + gender + "자입니다");
				if (age <= 19) {
					System.out.println("당신은 미성년자 남자입니다");
				} else if (age >= 20 && age <= 29) {
					System.out.println("당신은 20대 남자입니다");
				} else if (age >= 30 && age <= 39) {
					System.out.println("당신은 30대 남자입니다");
				} else if (age >= 40 && age <= 49) {
					System.out.println("당신은 40대 남자입니다");
				} else if (age >= 50 && age <= 59) {
					System.out.println("당신은 50대 남자입니다");
				} else if (age >= 60) {
					System.out.println("당신은 노년 남자입니다");
				}
			} else {
				System.out.println("나이를 제대로 입력해주세요");
			}

		} else if (gender == '여') {
			if (age >= 0) {
				System.out.println("당신은 " + age + "세 " + gender + "자입니다");
				if (age <= 19) {
					System.out.println("당신은 미성년자 여자입니다");
				} else if (age >= 20 && age <= 29) {
					System.out.println("당신은 20대 여자입니다");
				} else if (age >= 30 && age <= 39) {
					System.out.println("당신은 30대 여자입니다");
				} else if (age >= 40 && age <= 49) {
					System.out.println("당신은 40대 여자입니다");
				} else if (age >= 50 && age <= 59) {
					System.out.println("당신은 50대 여자입니다");
				} else if (age >= 60) {
					System.out.println("당신은 노년 여자입니다");
				}
			} else {
				System.out.println("나이를 제대로 입력해주세요");
			}

		} else {
			System.out.println("성별을 제대로 입력해주세요");
		}
		System.out.println("-------------------------------------------------------");
	}

 

결과물)

당신은 39세 남자입니다
당신은 30대 남자입니다
-------------------------------------------------------
당신은 55세 여자입니다
당신은 50대 여자입니다
-------------------------------------------------------
성별을 제대로 입력해주세요
-------------------------------------------------------
나이를 제대로 입력해주세요
-------------------------------------------------------
728x90
반응형

'개발자교육' 카테고리의 다른 글

24_06_26 오늘의 수업내용  (0) 2024.06.26
24_06_25 오늘의 수업내용  (0) 2024.06.26
24_06_21 오늘의 수업내용  (0) 2024.06.21
2024_06_20 오늘의 수업내용  (0) 2024.06.20
2024_06_19 오늘의 수업내용  (0) 2024.06.19