접근 권한 제어자 ( 접근자 )
default : 다른 패키지에서 접근 불가
public : 모든 곳에서 접근 가능, 해당 파일의 메인 클래스일 경우만 사용 가능
protected : 다른 패키지에서 접근 불가 , 자식은 가능
private : 다른 클래스에서 접근 불가, 메소드(getter, setter)로만 접근하자 !
package access1;
public class Access1 {
int data1;
public int data2;
protected int data3;
private int data4;
public int getData4() {
return data4;
}
public void setData4(int data4) {
this.data4 = data4;
}
}
package access1;
public class Access2 {
public static void main(String[] args) {
Access1 access1 = new Access1();
}
}
외부 class 에서 data4 에 접근할 수 없다.
4를 제외한 나머지에 접근 가능 (같은 패키지 안이니까)
* 모든 자식은 부모 타입니다.
Casting
1. up casting : 자식 값을 부모 타입으로 형변환
2. down casting : up casting 된 객체를 자식 타입으로 형변환
*부모 값을 자식 타입으로 형변환 시 오류
*넘치는건 상관없는데 부족하면 문제 메모리에 올라갈게 다 올라가면 상관없다 //넘치면 자르면 되자나
*upcasting 하면 +a 숨겨져 있는데 down casting 하면 그게 다시 들어나는거
————————————————————————————————————————————————
추상 클래스
필드안에 구현이 안된 메소드가 선언되어 있는 클래스를 추상 클래스라고 한다.
이 때 구현되지 않은 메소드를 추상 메소드라고 부른다.
반드시 재정의를 통해 구현해야 하지만 메모리에 할당되기 때문에
“강제성”을 부여하기 위해서 추상 메소드로 선언한다.
추상 클래스 선언
abstract class 클래스명 {
abstract 리턴타입 메소드명(매개변수 ..);
일반 메소드도 선언 가능
}
————————————————————————————————————————————————
인터페이스 (inteerface) : 틀
-추상메소드만 만들수 있음, 상수만 가능
추상 클래스를 고도화시킨 문법.
상수와 추상메소드만 존재한다.
구현은 지정한 클래스에서 진행하고, 인터페이스를
다른 클래스에 지정할때에는 implements 키워드를 사용한다.
*인터페이스는 클래스가 아니다
'웹개발 기초 > java기초' 카테고리의 다른 글
자바 클래스 실습 + 상속과 오버라이딩 (1) | 2024.01.21 |
---|---|
자바 class 문제 예시 (1) | 2024.01.21 |
자바 메소드 특징 (1) | 2024.01.21 |
자바 2차원 배열과 메소드 (0) | 2024.01.21 |
자바 배열 (0) | 2024.01.19 |