
class animal{
String species_name;
String sound;
String habitat;
int avg_age;
void info() {
System.out.println( "동물의 종:" + species_name);
System.out.println( "울음소리:" + sound);
System.out.println( "서식지:" + habitat);
System.out.println( "평균 수명:" + avg_age);
}
} // 동물 클래스!
class cat extends animal{
String characteristic;
void info2() {
System.out.println( "특징:" + characteristic);
}
}// 동물 클래스를 상속 받은 고양이 클래스
public class Main {
public static void main(String[] args) {
cat Bengal = new cat();
Bengal.species_name = "벵갈";
Bengal.sound = "야옹";
Bengal.habitat = "아시아";
Bengal.avg_age = 18;
Bengal.characteristic = "충성심이 강함";
Bengal.info();
Bengal.info2();
}
}

접근 제어자는 데이터를 보호하고 외부로부터의 접근을 제한하기 위해 사용됩니다. 이는 시스템의 안정성과 데이터 무결성을 유지하는 데 도움이 됩니다.
외부에서는 필요하지 않고 내부적으로만 사용되는 부분을 숨기기 위해 접근 제어자가 사용됩니다. 이를 통해 시스템을 더욱 효율적이고 안전하게 운영할 수 있습니다.
private : 같은 클래스
(default) : 같은 패키지
protected : 같은 패키지 + 자손(다른 패키지)
public : 접근 제한 없음
class watch{
private int hour;
private int miniute;
private int second;
void nowtime(int hour , int miniute , int second) {
this.hour = hour;
this.miniute = miniute;
this.second = second;
if(hour <=24 && miniute <=60 && second <=60) {
System.out.print("현재시간은 :" +hour+":"+miniute+":"+second );
}
}
}
public class Main {
public static void main(String[] args) {
watch apple = new watch();
apple.nowtime(2,24,30);
}
}
private 접근 제어자를 사용하여 외부 접근을 차단하고, 메소드의 매개변수를 통해서만 데이터에 접근할 수 있도록 구현하였습니다.

abstract class player{
abstract void volume(int p);
abstract void machine(String p);
}
class cd extends player{
void volume(int p) {
System.out.println("볼륨 :" +p);
}
void machine(String p) {
System.out.print("기계 :" +p);
}
}
public class Main {
public static void main(String[] args) {
cd sony = new cd();
sony.volume(5);
sony.machine("소니 cd 플레이어");
}
}

class phone{
void call(String a) {
System.out.println(a+"에게 전화를 겁니다.");
}
void shutdown() {
System.out.println("휴대폰을 종료합니다");
}
void turn_on() {
System.out.println("휴대폰을 실행시킵니다.");
}
}
class smartphone extends phone{
void facetalk(String a) {
System.out.println(a+"에게 영상 통화를 겁니다.");
}
void instagram(String a) {
System.out.println("인스타 그램 을 실행시킵니다.");
}
}
public class Main {
public static void main(String[] args) {
phone iphone14 = new smartphone();
iphone14.call("김송아 쌤");
iphone14.shutdown();
}
}
참조 타입을 phone 으로 했기 때문에 인스타 그램과 영상통화 함수는 실행시키지 못합니다.

