웹개발 기초/java기초

자바 접근자,케스팅,추상클래스와 인터페이스

미미_밍 2024. 2. 12. 12:21

 

접근 권한 제어자 ( 접근자 ) 

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