アカデミー6日目-Java
2021.04.05
方法
メソッドの使い方
접근지정자 접근키워드 반환자료명 메소드명(인자리스트)
{
}
Public state void 메소드명() //메소드 헤더, 시그니처(Signature)
{ //메소드 바디, 구현부
실행 코드;
}
public class Ex13_Method {
public static void main(String[] args) {
//이 안에서는 메소드 선언 불가능
} //main메소드 끝
//여기서 메소드 선언 가능
//- 클래스 매부에서 작성 가능
//- 클래스 외부에서 작성 불가능
//- 메소드내에서 메소드 선언 불가능
//- 메소드끼리 선언 순서는 무관
} //Ex13_Method (클래스) 끝
//이곳은 메소드 선언 불가능
public class Ex13_Method {
public static void main(String[] args) {
//요구사항) "안녕하세요." x5회
//수정사항) "안녕하세요" -> "반갑습니다."로 수정
//복붙 -> 하드코딩
//프로그래밍 기술 -> 한번 짠 코드를 어떻게 하면 다시 안짜고 재사용할 수 있을까?
System.out.println("반갑습니다.");
System.out.println("반갑습니다.");
System.out.println("반갑습니다.");
System.out.println("반갑습니다.");
System.out.println("반갑습니다.");
System.out.println("반갑습니다.");
//2. 메서드 호출하기
// - 선언한 메소드의 이름을 부른다.
//제어가 hello() 메소드 정의된 곳으로 이동한다. > hello() 실행을 마치고 이곳으로 제어가 되돌아온다.
hello();
hello();
hello();
hello();
hello();
}//main
//1.메소드 선언
//hello : 메소드 이름, 정의/ 호출에 사용된다.
public static void hello() {
//인사하는 코드
System.out.println("반갑습니다~~");
}
}//Ex13_Method
public class Ex13_Method {
public static void main(String[] args) {
calc();
calc();
}
public static void calc() {
int a = 10;
int b = 20;
System.out.println(a + b);
}
}
なぜ//메서드가 다르면 변수명이 같아도 된다.
public static void aaa(int num) {
int a;
//int a; -> 같은 메서드 안에서는 같은 이름의 변수 사용 불가.
}
public static void bbb(int num) {
int a;
}
메소드명은 같은 이름을 2개 쓸 수 없다.
public static void test() {
}
public class Ex14_Method {
public static void main(String[] args) {
hello();
hello2();
//hello245(); //누구? -> 메소드명 만들기도 힘들다.. 의미있게.. -> 식별자 뒤에 숫자x
}
//'홍길동'에게 인사하는 메소드를 구현하시오.
public static void hello() {
System.out.println("홍길동님. 안녕하세요.");
}
//'아무개'에게도 인사를 하는 메소드를 구현하시오.
public static void hello2() {
System.out.println("아무개님. 안녕하세요.");
}
//우리반 30명에게 인사를 하는 메소드를 구현하시오.
//- 메소드를 30개 추가 선언하기
//- 대한민국 국민들에게 각각 인사를 하는 메소드를 구현하시오.
//- 전세계 모든 사람들에게 각각 인사를 하는 메소드를 구현하시오. -> 78억개
public static void hello3() {
System.out.println("도라에몽님. 안녕하세요.");
}
public static void hello4() {
System.out.println("피카츄님. 안녕하세요.");
}
}
public class Ex14_Method {
public static void main(String[] args) {
//public static void hi(String){}
//hi(); -> 에러 The method hi(String) in the type Ex14_Method is not applicable for the arguments()
hi("홍길동");
hi("아무개");
hi("호호호");
hi("하하하"); //실인자(Actual Argument)
//매개변수 사용시 주의점!!!
// -> 가인자와 실인자의 갯수가 동일해야한다.
// -> 가인자와 실인자의 자료형이 동일해야한다.
// -> 형변환이 가능하면 자료형이 동일하지 않아도 된다.
//hi();
hi("홍길동");
//hi("홍길동", "아무개");
//hi(100);
}
public static void hi(String name) { //매개변수, 가인자(Formal Argument)
//String name = "홍길동"; // -> 에러 Duplicate local variable name
System.out.printf("%s님 안녕하세요\n", name);
}
}
public class Ex14_Method {
public static void main(String[] args) {
//public static void bye(String name, int age)
bye("홍길동", 20);
bye("뽀로로", 5);
byte b = 10;
bye("홍길동", b);
//bye("홍길동", (int)b); //byte(String name, int age) --> 암시적형변환
}
//타입 상관없이 넣고 싶은 갯수만큼 매개변수를 사용할 수 있다.
public static void bye(String name, int age) {
//인삿말을 다르게 하고 싶어.
//10세 이상 > 안녕하세요
//10세 이하 > 안녕~
String result = age >= 10 ? "안녕하세요" : "안녕~~";
System.out.printf("%s님 %s\n", name, result);
}
}
public class Ex14_Method {
public static void main(String[] args) {
//2개의 숫자를 입력받아 연산과정 출력
//하드코딩
int n1 = 10;
int n2 = 20;
System.out.printf("%d + %d = %d\n", n1, n2, n1 + n2);
n1 = 5;
n2 = 9;
System.out.printf("%d + %d = %d\n", n1, n2, n1 + n2);
n1 = 22;
n2 = 123;
System.out.printf("%d + %d = %d\n", n1, n2, n1 + n2);
//동일한 코드 중복 발생 -> 수정이 힘듦..
//메서드를 사용해서 재사용
add(n1, n2);
n1 = 111;
n2 = 222;
add(n1, n2);
n1 = 1;
n2 = 2;
add(n1, n2);
}
public static void add(int n1, int n2) {
//int n1 = 10;
//int n2 = 20;
System.out.printf("%d + %d = %d\n", n1, n2, n1 + n2);
}
}
public static 반환타입 메소드명(인자 리스트){
실행코드;
}
public class Ex15_Method {
public static void main(String[] args) {
//m1(); //반환값 num이 남는다.
int result = m1(); //리턴값을 담을 변수를 선언, 메소드의 반환값을 받아서 콘솔에 출력
System.out.println(result);
}
//반환값이 있는 메소드를 선언했다.
//반환타입과 반환값의 타입이 일치해야한다.
public static int m1() {
int num = 100;
return num; //return문, 반환문
//return 100, 200,300; -> 여러개를 반환할 수 없음
}
}
public class Ex15_Method {
public static void main(String[] args) {
System.out.println(add(10,20)); //바로 메서드를 확인만 할 때
//메소드 = 함수 -> 수학의 함수 정의 f(x) = y
int n = add(30, 40); //지속적으로 쓰고 싶을땐 반환값을 변수에 저장해서 사용
System.out.println(n);
}
//void : 돌려줄 값이 없다.
public static int add(int a, int b) {
return a + b;
}
}
public class Ex15_Method {
public static void main(String[] args) {
int age = 25;
String result2 = check(age) ? "미성년자" : "성인";
System.out.println(result2);
}
//나이에 따라 성인인지 미성년인지 확인해주는 메서드
public static boolean check(int age) {
return age >= 19 ? true : false;
}
}
public class Ex15_Method {
public static void main(String[] args) {
}
//This method must return a result of type int
//반환값을 int타입을 써야한다.
//public static void test() {
// return 100;
//}
//메소드가 실행을 종료하고 호출된 곳으로 돌아가는 경우
//1. 메소드의 끝(})을 만났을 때.
//2. return문을 만났을 때.
public static int test() {
System.out.println("테스트1");
return 100;
//리턴 뒤에 코드를 적으면 안된다.
//System.out.println("테스트2"); //Unreachable code
}
}
Reference
この問題について(アカデミー6日目-Java), 我々は、より多くの情報をここで見つけました https://velog.io/@hi-dae-in/국비-학원-6일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol