접근 수준 지시자
class AAA {
public int num1;
protected int num2;
private int num3;
int num4; //디폴트 선언
public void md1() {---}
protected void md2() {---}
private void md3() {---}
void md4() {---} //디폴트 선언
}
public : 모든 클래스에서 사용 가능
접근에 대한 제어가 없으므로 모든 곳에서 접근 (접근 제한 없음)
protected : 같은 패키지 내에서와 자손 클래스에서 접근 가능
default : 같은 패키지 내에서만 접근가능
private 보다 한곳에서 더 접근이 가능하다
private : 같은 클래스에서만 사용 가능
메소드를 통해서만 접근 가능. 점을 찍고 접근하는 것은 불가능하다(외부접근)
허용범위
private < default < protected < public
다형성
A obj=new A();
A obj=new B();
(클래스가 B가 A를 상속할 때)
참조변수 obj 하나로 A타입의 인스턴스를 참조할 수도 B타입의 인스턴스를 참조할 수도 있는데 이것이 다형성이다
객체 만들고 상속하기
package javaPrac;
class Animal{ //animal 클래스
void breath() {
System.out.println("숨쉬기");
}
}
class Lion extends Animal{ //animal클래스를 상속한 lion클래스
public String toString() {
return "사자";
}
}
class ZooKeeper{ //ZooKeeper(사육사) 클래스
void feed(Lion lion) { //사자에게 먹이주는 클래스
System.out.println(lion + "에게 고기 주기");
}
}
public class Polymorphism3{
public static void main(String[] args) {
Lion lion1= new Lion(); //Lion 인스턴스 생성
ZooKeeper james = new ZooKeeper(); //james이름의 사육사 인스턴스 생성
james.feed(lion1); //james가 lion1에게 먹이를 줌
}
}
사자에게 고기 주기
객체 만들고 상속하기
package javaPrac;
class MethodPrac_02 {
public static void main(String[] args) {
MethodPrac_02(7, 3);
}
public static void MethodPrac_02(int n1, int n2) {
System.out.println("더하기 : " + (n1 + n2));
System.out.println("빼기: " + (n1 - n2));
System.out.println("곱하기 : " + (n1 * n2));
System.out.println("나누기 몫 : " + (n1 / n2));
System.out.println("나누기 나머지 : " + (n1 % n2));
}
}
더하기 : 10
빼기: 4
곱하기 : 21
나누기 몫 : 2
나누기 나머지 : 1
728x90
'Dev. > java' 카테고리의 다른 글
조건문 (0) | 2022.05.14 |
---|---|
연산자(비트연산/ 조건식) (0) | 2022.05.14 |
Java 형변환 (0) | 2022.05.10 |
Java 복습문제 02 (0) | 2022.05.09 |
Java 메서드 (0) | 2022.05.08 |
댓글