
클래스 선언형식
[접근지정자][기타제어자] 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 - 클래스들의 묶음(-->클래스들을 유용하게 관리하기위한 방법)
클래스 이름 - 꼭 대문자로 만들기
'Java' 카테고리의 다른 글
[Java] 클래스(4)-상속__개발공부 17일차 (0) | 2022.03.15 |
---|---|
[Java] 클래스(3)__개발공부 16일차-1 (0) | 2022.03.11 |
[Java] 클래스(1)__개발공부 14일차-1 (0) | 2022.03.10 |
[Java] 제어문 연습(* 출력)__개발공부 6일차-2 (0) | 2022.03.07 |
[Java] 기본 입출력,래퍼 클래스__개발공부 3일차-3 (0) | 2022.02.19 |