CODE/JAVA1

AccessModifier

maskan 2021. 1. 27. 16:50
import java.util.Scanner;

public class AccessModifier {

	// public : 접근 제어자
	public String publicVar = "public :접근제한이 없음";
	protected String protectedVar = "protected : 같은 패키지 + 상속받은 클래스에서 접근 가능";
	String defaultVar = "default : 같은 패키지에서만 접근 가능";
	// 디폴트는 접근 제어자가 생략되었을 때의 접근 제어자. 생략해야만 디폴트
	private String privateVar = "private : 클래스내에서만 접근 가능";

	public void publicMethod() {
		System.out.println(publicVar);
	}

	void defaultMethod() {
		System.out.println(defaultVar);
	}

	protected void protectedMethod() {
		System.out.println(protectedVar);
	}

	private void privateMethod() {
		System.out.println(privateVar);
	}

	public static void main(String[] args) {
		AccessModifier am = new AccessModifier();

		System.out.println(am.publicVar);
		am.publicMethod();
		System.out.println(am.protectedVar);
		am.protectedMethod();
		System.out.println(am.defaultVar);
		am.defaultMethod();
		System.out.println(am.privateVar);
		am.privateMethod();

		Time t = new Time();

		// t.hour = 9;
		// t.minute = 380;
		// t.second = -30;
		Scanner s = new Scanner(System.in);

		System.out.println("시간 입력");
		int num = Integer.parseInt(s.nextLine());
		t.setHour(num);
		System.out.println("분 입력");
		num = Integer.parseInt(s.nextLine());
		t.setMinute(num);
		System.out.println("초 입력");
		num = Integer.parseInt(s.nextLine());
		t.setSecond(num);

		System.out.println(t.getTime());

		t.clock();

	}
}

 

 

public class AccessTest {

	public static void main(String[] args) {
		AccessModifier am = new AccessModifier();

		System.out.println(am.publicVar);
		am.publicMethod();
		System.out.println(am.protectedVar);
		am.protectedMethod();
		System.out.println(am.defaultVar);
		am.defaultMethod();
		// System.out.println(am.privateVar);
		// am.privateMethod(); //같은 클래스에서만 사용 가능

	}
}

 

 

package test;

import AccessModifier;
import Time;

public class AccessTest extends AccessModifier{

	public static void main(String[] args) {
		AccessModifier am = new AccessModifier();

		System.out.println(am.publicVar);
		am.publicMethod();
//		System.out.println(am.protectedVar);
//		am.protectedMethod();
//		System.out.println(am.defaultVar);
//		am.defaultMethod();            //상속을 받은 클래스가 필요
//		System.out.println(am.privateVar);
//		am.privateMethod();        //같은 클래스에서만 사용 가능
		

		AccessTest at = new AccessTest();
		
		System.out.println(at.protectedVar);
		at.protectedMethod();
		
		/*
		 * 접근제어자를 사용하는 이유
		 * - 데이터를 보호하기 위해
		 * - 사용하는데 불필요한 멤버를 숨기기 위해
		 */
		
		Time t = new Time();
	}
}

 

 

public class Time {

	private int hour;
	private int minute;
	private int second;

	String getTime() {
		return hour + ":" + minute + ":" + second;
	}

	void clock() {
		while (true) {
			System.out.println(getTime());
			stop(1000);
			setSecond(second + 1);
		}
	}

	void stop(int interval) {
		try {
			Thread.sleep(interval);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	public int getHour() {
		return hour;
	}

	public void setHour(int hour) {

		if (hour < 0) {
			this.hour = 0;
		} else if (23 < hour) {
			this.hour = 0;
		} else {
			this.hour = hour;
		}
	}

	public int getMinute() {
		return minute;
	}

	public void setMinute(int minute) {
		if (minute < 0) {
			this.minute = 0;
		} else if (59 < minute) {
			this.minute = 0;
			setHour(hour + 1);
		} else {
			this.minute = minute;
		}
	}

	public int getSecond() {
		return second;
	}

	public void setSecond(int second) {

		if (second < 0) {
			this.second = 0;
		} else if (59 < second) {
			this.second = 0;
			setMinute(minute + 1);
		} else {
			this.second = second;
		}
	}

}

'CODE > JAVA1' 카테고리의 다른 글

ExtendsStore  (0) 2021.01.28
Extends  (0) 2021.01.28
HairSalon  (0) 2021.01.27
RPG  (0) 2021.01.27
Score  (0) 2021.01.27