반응형
접근범위:
public
같은 패키지 모든 클래스+ 다른 패키지 모든 클래스
protected
같은 패키지 모든 클래스+ 다른 패키지 자식 클래스
default
같은 패키지 모든 클래스
private
같은 클래스
멤버
package water;
public class room{
public int a;
protected int b;
int c;
private int d;
void water(){
// 모든 변수 사용가능
}
}
package water;
class B{
//a,b,c만 가능 같은 패키지라서 private 안됨
}
package fire;
class C {
//a만 가능
}
package fire;
class D extends room{
//a,b 만 가능 다른 패키지 다른/자식클래스라서
}
클래스
public, default
접근 범위는 위의 멤버와 같다
//예
package water;
class A {
}
package room;
import water.A;
class C {
//A 클래스 선언 불가능
}
클래스/생성자
클래스는 public, 생성자는 default일 경우
=> 클래스 import 가능 하지만 object 생성은 불가하다
package water;
public class A {
A(){ //default
}
}
package room;
import water.A; // 가능
class C {
public static void main(String [] arge){
A a = new A(); //불가능
}
}
클래스는 default, 생성자는 public일 경우
=> 클래스 import 불가능. object 생성도 할 수 없다.
Static
- 객체생성 없이 사용 가능
class A{
int k = 3;
static int z =5;
static void move() {
System.out.println("움직이다");
}
void fly() {
System.out.println("날다");
}
// 객체생성
public static void main(String [] args) {
A a = new A();
System.out.println(a.k); //생성
System.out.println(A.z); // 클래스.객체이름
a.fly(); //객체 a 사용
A.fly(); //객체없이 A에서 받아옴
}
}
반응형
'Java' 카테고리의 다른 글
this/this() (0) | 2022.04.27 |
---|---|
클래스(Class) (0) | 2022.04.27 |
String 참조자료형 (0) | 2022.04.26 |
배열(1차원) (0) | 2022.04.25 |
제어 키워드(break, continue) (0) | 2022.04.25 |