Java 기초 4

2025. 1. 16. 18:00·Java

1. 재귀함수

package basic_html;
import java.util.Scanner;

public class oop19 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("재호출 하시겠슴까?");
		String result = sc.next();
		if(result.equals("Y")) {
			main(args);	//재귀함수 호출시 매개변수 필요 (main의 경우 매개변수 String이 존재) 
		}else {
			System.out.println("종료하였습니다.");
		}
		sc.close();

		oop19_box ob = new oop19_box();
		ob.recall();

	}
}

class oop19_box {
	Scanner sc = null;

	public void recall() {
		this.sc = new Scanner(System.in);
		System.out.println("1. 숫자 선택, 2. 강제종료 : ");
		int n = this.sc.nextInt();
		if(n ==2) {
			System.exit(0);	//강제종료
		}else {
			System.out.println("숫자를 입력하세요 (0 입력시 처음으로 돌아갑니다) : ");
			int z = this.sc.nextInt();
			if(z==0) {
				recall();	//자신의 메소드를 다시 호출 (재귀함수)
			}else {
				System.out.println(z);
			}
		}
	}
}
  • 본인을 호출 
  • 필요시 인자값 인수값 전달해야함
  • System.exit(0); : 강제종료

2. 접근제한자

  • class, method, 변수 모두 적용가능
  • public : 다른 패키지, 다른 클래스 접근 가능
  • protected : 같은 패키지 접근 가능
  • private : 같은 클래스 접근 가능
  • 다른 패키지의 메소드를 사용할때 메소드의 이름을 치고 컨트롤+스페이스바 하면 자동으로 임포트 됨!
package basic_html;

public class oop20 {

	public static void main(String[] args) {
		oop20_box ob = new oop20_box("admin");
	}
}

class oop20_box{
	//private로 설정하여 외부 클래스에서 접근제한을 적용한 변수 선언
	private String userid = null;
	public int level = 0;
	
	public oop20_box(String id) {	//해당 즉시 실행 메소드에서만 접근가능
		this.userid = id;
		int result = this.login_level();
		System.out.println(this.userid + " : 레벨권한" + result);		
	}
	
	private int login_level() {	//외부 클래스에서 해당 메소드 접근 제한
		if(this.userid.equals("admin")) {
			this.level = 5;
		}else if(this.userid.equals("hong")) {
			this.level = 1;
		}else {
			this.level = 0;
		}
		return this.level;
	}
}
  • private로 변수값 핸들링

😊응용문제

외부 클래스를 이용하여 사용자가 하나의 숫자값을 입력
입력된 값이 짝수인지 홀수인지를 확인하는 return 메소드 코드 작성
package basic_html;

import java.util.Scanner;

public class oop21 {

	public static void main(String[] args) {
		oop21_box ob = new oop21_box();
		Scanner sc = new Scanner(System.in);
		
		System.out.println(ob.odev());
	}
}

class oop21_box {
	Scanner sc = null;

	public String odev() {
		String msg = "";
		this.sc = new Scanner(System.in);
		System.out.printf("숫자를 하나 입력하세요 : ");
		int oenum = this.sc.nextInt();
		if (oenum % 2 == 0) {
			msg = "입력하신 결과는 짝수입니다.";
		} else {
			msg = "입력하신 결과는 홀수입니다.";
		}
	        sc.close();
		return msg;
	}
}

 

 up&down 게임
 1~10까지 숫자 => 7 //private로 선언
 단, 정답까지 최대기회 3번
package basic_html;
import java.util.Scanner;

public class oop21 {

	public static void main(String[] args) {
		oop21_box ob = new oop21_box();
		Scanner sc = new Scanner(System.in);
		
		System.out.println(ob.odev());
		ob.updown();

	}
}

class oop21_box {
	Scanner sc = null;
	private int udnum = 7;

	public void updown() {
		int cnt = 3;
		int usernum = 0;
		this.sc = new Scanner(System.in);

		while (cnt > 0) {
			System.out.printf("숫자를 입력하세요 (1~10) : ");
			usernum = this.sc.nextInt();

			if (usernum < 1 || usernum > 10) {
				System.out.println("범위초과 게임을 종료합니다.");
				break;
			} else {
				if (usernum == this.udnum) {
					System.out.println("정답입니다!");
					break;
				} else if (usernum < this.udnum) {
					System.out.println("up");
				} else {
					System.out.println("down");
				}
			}
			cnt--;
			if (cnt == 0) {
				System.out.println("기회소진 게임을 종료합니다.");
			}
		}
		sc.close();
	}
}
저작자표시 비영리 변경금지 (새창열림)
'Java' 카테고리의 다른 글
  • Java - 배열
  • 복습 8 - java 기초
  • Java 기초 3
  • Java 기초 2
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      net2
      spring-boot
      exam1_1~10
      Oracle
      net3
      re_java10
      noticewriteok
      net1
      net4
      net5~10
      file25
      ab1
      re2
      file25_t
      file24
      notice_writer
      macbook pro m4
      java_io1~10
      io_dto
      datalist
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    Java 기초 4
    상단으로

    티스토리툴바