JAVA, JSP

java - primitive/reference data type, 메서드 오버로딩

suji0730 2024. 6. 24. 17:22

1) 하나의 패키지내 하나의 클래스에서 리턴 없고 입력 없는 메서드 선언 및 호출

1. 메서드 선언
public static void a(입력 받을 갯수 없다) {

}
2. 메서드 호출
a();

 

 

2) 하나의 패키지내 하나의 클래스에서 리턴 없고 입력 있는 메서드 선언 및 호출

1. 메서드 선언

//입력 받을 갯수 1개 이고 문자열을 입력 받는다.
//data type 매개변수
public static void a(String name) {

}

2. 메서드 호출

a("홍길동");

//메서드 호출 원리
//첫번째 : 선언된 메서드 이름과 호출시 메서드 이름이 일치(예) 선언된 메서드 이름이 a이면 호출시 메서드 이름 a 일치)
//두번째 : 선언된 메서드 입력 받을 갯수와 호출시 입력 갯수 일치(예) 선언된 메서드 String name (1개) 와 호출시 "홍길동"(1개) 입력)
//세번째 : 선언된 메서드 입력받을 data type(String)과 호출시 선언된 data type(String)에 일치하는 값("홍길동")이 입력 되야 한다.

 

3) java data type
1. java primitive data type(원시 타입) : 정수, 실수, 문자, 논리 리터럴 등의 실제 데이터 값을 저장하는 타입
- int : 정수형 / 4byte / int a=0;
- long : 정수형 / 8byte / Long a = 10000L;
- double : 실수형 / 4byte / double a = 3e5;
- float : 실수형 / 4byte / float a = 1.23f;
- boolean : 논리형 / 1byte
- byte : 정수형 / 1byte
- short : 정수형 / 2byte
- char : 문자형 / 4byte / char a = 'a';

2. java reference data type(참조 타입) : 객체(Object)를 참조(주소를 저장)하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입
- Integer
- Long
- Double
- Float
- Boolean
- Byte
- Short
- Char

 

 

4) 메서드 오버로딩 : 같은(유사) 기능을 하나의 클래스내 메서드 이름을 동일하게 하고 입력받을 갯수와 data type을 다르게 프로그래밍 하는 방법

 

 


프로젝트 명 : 통신사 이용 등급 확인 프로젝트

권한 : 통신사 멤버십 관리자 권한(멤버십 등급 부여), 통신사 멤버십 이용자 권한(멤버십 등급 확인)

기능 : 유지기간과 이용 월정액을 확인하여 등급을 확인할 수 있다.

입력 받을 갯수 : 유지기간, 월정액

통신사 유지 기간과 월별 통신사 이용 월정액을 입력 받아서

유지기간이 10년 이상 and 금액 15만원 조건이면 등급을 vip

유지기간이 5년 이상 and 금액 10만원 조건이면 등급을 gold

유지기간이 3년 and 금액 5만원 조건이면 등급을 silver

그외는 신규가입자 입니다.

처리과정이 끝난 후에 추가 처리 과정

등급별 혜택을 준다

vip 혜택, 음식점 20% 할인, 영화 예매권 5장

gold 혜택, 음식점 10% 할인, 영화 예매권 3장

silver 혜택, 영화 예매권 1장

신규 가입자는 혜택 없음

 

우선순위 : 유지기간 - 월정액 금액

10년 이상 and 15만원 이상 -> vip
10년 이상 and 15만원 미만 -> vip 등급 승인을 위한 금액을 달성하지 못했다는 안내문을 사용자가 확인할 수 있도록 한다

 

 

public class TelecomGradeCheck {

public static void main(String[] args) {
// TODO Auto-generated method stub

checkGrade(6, 22000);


}
public static void checkGrade(int period, int bill) {

if (period >= 10 && bill >= 150000) {
System.out.println("VIP 등급입니다.");
} else if (period >= 10 && bill < 150000) {
System.out.println("VIP 등급 승인을 위한 금액을 달성하지 못했습니다.");
System.out.println("사유: 월정액 이용 금액 기준 150,000원을 충족하지 못했습니다.");
} else if (period >= 5 && period < 10 && bill >= 100000) {
System.out.println("Gold 등급입니다.");
} else if (period >= 5 && period < 10 && bill < 100000) {
System.out.println("Gold 등급 승인을 위한 금액을 달성하지 못했습니다.");
System.out.println("사유: 월정액 이용 금액 기준 100,000원을 충족하지 못했습니다.");
} else if (period >= 3 && period < 5 && bill >= 50000) {
System.out.println("Silver 등급입니다.");
} else if (period >= 3 && period < 5 && bill < 50000) {
System.out.println("Silver 등급 승인을 위한 금액을 달성하지 못했습니다.");
System.out.println("사유: 월정액 이용 금액 기준 50,000 원을 충족하지 못했습니다.");
} else {
System.out.println("일반 등급입니다.");
}
}