클래스 선언형식

 

 

[접근지정자][기타제어자] class클래스명[extends Super클래스][implements 인터페이스...]{
Modifiers   접근지정자  o  radiobutton      하나만 선택사능
                기타제어자 ㅁ checkbox  여러개 선택가능 final abstract static
}

 

 

System s = new System();
에러 메세지:The constructor System() is not visible
[인스턴스화] 할 수 없는 클래스이다.(It cannot be instantiated)

 

 

클래스 선언 시 접근지정자 종류 설명

 


1) public            - 패키지 내부/외부 어디서든 상속과 참조 가능


2) default             Person클래스 + 속성(이름, 나이) 기능(걷고,뛰고,먹고, 마시고 등등)              

                       - 독립적인 클래스로 선언할 때는 사용할 수 없는 접근지정자이다. 
                         중첩 클래스로 선언할 때는 사용할 수 있다. (내부클래스 설명)

                         (**default 클래스 만들때 패키지 내부에서만 상속과 참조 가능 package라고 적혀있음**)

3) private              비활성화 - 같은 [파일 내]에서만 상속 참조 가능


4) protected          비활성화 - 패키지 내부에서만 상속,참조 가능
                                         +패키지 외부에서는 상속만 가능(추가,---이게 default랑 다른점)

 

*참고

강의장내에 프린터기 우리 강의실만 쓰게 하곘다 --> default*
강의장 바깥 사람들 까지 쓰게 하는 하는건              public*

 


p234 Tv 클래스

1)같은 패키지 안에서 public접근지정자를 가진 클래스 Tv와 dafault 접근지정자를 가진 클래스 Person  참조 가능 확인
days15.Ex01.main() 메서드에서
            ㄴpublic days15.Tv  클래스 참조 사용
            ㄴpublic days15.Person  클래스 참조 사용

ㄱ. Tv 객체 선언하고 생성

Tv t1 = new Tv();
t1.channel = 11;
t1.channelUp();
System.out.println(t1.channel);

//ㄱ. Person 객체 선언하고 생성
Person p1 = new Person(); //default 접근지정자로 선언된 클래스르 같은 패키지 안에서 참조 가능(확인)
p1.name = "홍킬동";
p1.run();
p1.name = "홍Kill동";
p1.run();

 

 


객체 선언시 자주 발생하는 오류

 


Tv t1 = null;            --> new 연산자에 의해서 인스턴스 생성 X

 


[The local variable t1] may not have been initialized
//java.lang.[NullPointerException] : 클래스 사용할때 가장 많이 등장하는 에러메세지    *******중요
                         ㄴ실제 힙영역에 인스턴스가 생성도지 않았기 때문에 오류발생

 

t1.channel = 11;


*******해결 : 인스턴스 생성*******
t1 = new Tv();                                                    -->인스턴스화

 

 

객체 배열

 

 

객체 배열안에 있는 객체의 인스턴스를 정의 하는 과정 굉장히 중요하다.

안하면 NullPointException 오류 발생한다.

 

 

 

접근제어자

 

 

접근 제어자(access modifier) == 접근 지정자


멤버(필드, 메서드, 생성자(constructor)) 선언시 앞의 접근지정자의 종류, 설명
1) public  - 패키지 내/외부 어디서나 접근(참조) 가능
2) default - 같은 패키지 내에서만 접근(참조) 가능
3) private - 같은 클래스 내에서만 접근(참조) 가능
4) protected - 같은 패키지 내에서만 접근(참조) 가능 +  상속(다른 패키지의 자손 클래스에서 접근(참조) 가능)

범위 :  public > protected > default > private

지역변수는 접근 지정자를 붙이지 않는다.

 

p348 자바의 정석

 

 

 

참조형 반환타입

 

 

 

가변인자

 

 

 

 

 

**참고)
Package - 클래스들의 묶음(-->클래스들을 유용하게 관리하기위한 방법)
클래스 이름 - 꼭 대문자로 만들기


복사했습니다!