반응형
// main method
// -> JVM이 컴파일 (입력하는 코드를 컴퓨터가 알 수있게 바꿔서 전달: 컴파일)
// 컴파일때 가장먼저 main메소드를 찾아서 실행시킨다.
//메소드를 만들때는 main영역의 밖에
// 빼기 수행하는 메소드 / 리턴타입: int, 매개변수: int2개, 메소드명: subNum
public static int subNum(int n1,int n2) {
int result1 =0; //메소드 만들때 먼저 자료형 result 선언 후 return result;쓰고 시작
if(n1>=n2) {
result1 = n1 - n2;
}else {
result1 = n2- n1;
}
return result1;
}
//메소드 생성 : 리턴타입 double, 매개변수2개 각double, 메소드명 addDouble
public static double addDouble(double n1,double n2) {
//void는 리턴타입이 없음을 의미하는 키워드
//모든 로직은 리턴 전에 써야한다. -> 메소드는 리턴을 만나면 끝나기 때문에
double result = n1 + n2;
return result;
}
완전수 찾기 예제
// 완전수: 자기자신을 제외한 약수들의 합이 자기자신인 수
// 6의 약수:1,2,3,6 -> 자기자신을 제외한 약수들의 합이 자기자신인 수
// 메소드에 출력을 넣고 메인에서 함수만 쓰면 바로 출력할수 있는 -> void 리턴타입
// void타입은 return 값; (X) -> return; 이거나 그냥 안쓴다.
public static void main(String[] args) {
//출력등의 실행은 메인 메소드 안에서.
getPerfectNumber(2,1000);
}
//1) 약수 찾기 메소드
public static boolean isDivisor(int num1, int num2) {
// is라는 키워드가 붙은 메소드는 boolean 타입을 리턴
boolean result = false;
if (num1 % num2 == 0) {
result = true;
} else {
result = false;
}
return result;
}
//getDivisor() 메소드를 구현해라
// 기능을 리턴하는 (출력하는) 메소드는 주로 void 타입이다
//getDivisor(10); //10의 약수 : 1 2 5 10
//getDivisor(16); //16의 약수 : 1 2 4 8 16
//2) 약수 구하기 메소드
public static void getDivisor(int num) {
//num의 약수들을 구해줘서 출력.
String result = "";
result += num+"의 약수 : ";
// : 옆에다가 약수를 달아준다.
for (int i = 1; i <= num; i++) {
// isDivisor(num,i) -> num을 i로 나누었을때 나누어 떨어지나?
// if문 안의 조건식도 num을 i로 나누었을때 나누어 떨어지나?
if(isDivisor(num,i)==true) {
//위의 1번 메소드를 활용해서.
result += i+" ";
}
}
System.out.println(result);
}
//3) 약수의 합을 구하는 메소드
public static int getSumOfDivisors(int num) {
// 10의 약수의합 1 + 2 + 5 + 10 = 18
int result = 0;
for (int i = 1; i <= num; i++) {
if(isDivisor(num,i)==true) {
result += i;
}
}
return result;
}
//4) 완전수인지 아닌지 판단해주는 메소드
// 자기자신을 뺀 약수들의 합 == 자기자신인 수
//in num3 = 8196;
//boolean reslut2 = isPerfectNumber(num3);
public static boolean isPerfectNumber(int num3) {
boolean result = false;
if((getSumOfDivisors(num3)-num3)==num3) {
result =true;
}
return result;
}
//5) startValue~endValue까지의 숫자 중 완전수를 출력하는 getPerfectNumber()메소드를 구현해라
public static void getPerfectNumber(int startValue,int endValue) {
String result ="";
for (int i = startValue; i <= endValue; i++) {
if(isPerfectNumber(i)==true) {
result += i+" ";
}
}
System.out.println(result);
}
메소드 오버로딩: 같은 클래스내에서 매개변수의 갯수나, 데이터 타입이 다르면
같은 이름으로 사용이 가능하다.
매개 변수 형태가 다르다면 메소드명이 같아도 괜찮다.
리턴타입이 다르다고 같은이름이 가능한건 아니다.
System.out.println() -> println이라는 동일한 메소드명으로
매개변수를 다르게 오버로딩으로 여태 썼다.
반응형
'빅데이터 서비스 교육 > Java' 카테고리의 다른 글
Java Arraylist (0) | 2022.05.06 |
---|---|
Java OOP (0) | 2022.05.06 |
Java 배열 (0) | 2022.05.03 |
Java 반복문 (0) | 2022.05.02 |
Java 연산자, 조건문 (0) | 2022.05.02 |