231219 JAVA Test02(static,접근제어자, 상속)

2023. 12. 20. 09:242023.11.21-2024.05.31

package dec19;

//2023-12-19

 

//어제 했던 것

 

/*

* static

* 변수, 메소드 앞에 붙여요.

* 클래스에 붙어서 동작합니다.

* 인스턴스 생성 없이 사용합니다.

* 하나만 생성해서 사용할 때.

* 상수 사용할때. final.

*

*

* 접근제어자

*                     클래스 내부 | 동일 패키지 | 상속 | 기타

* public :                  O                  O              O       O

* protected:             O                  O              O       X

* default :                 O                  O              X       X

* private :                 O                  X              X       X

*

* 상속

* 유산

* 클래스간의 관계를 설정해서 부모 자식관계를 만듬

* 부모-자식

* 상위-하위

* super-sub

* 부모의 모든 내용을 자식이 사용할 수 있습니다.

* class 자식 extends 부모{}

* 단, 부모의 private 변수/메소드는 상속할 수 없습니다.

* 부모와 자식 클래스가 서로 다른 패키지에 있다면 부모의 default 붙은

* 필드/메소드는 자식이 물려받을 수 없습니다.

*

* 부모의 생성자 호출 super()

* 내 생성자 호출 this()

*

* 내 인스턴스의 내변 this

*

* 외부 라이브러리 사용하기

*

* 오늘 할 거

* 오버라이드

* 오버로드

* 다형성

* 추상화

*

* */

 

 

class A {

// final static int number;//static ->기울어지는 것, final->굵게 처리

static int number;

int num;

}

 

class B {

static B b = null;

private int num;

 

private B() {

System.out.println("생성자입니다.");

}

 

public static B getInstance() {

if (b == null) {

return b = new B();

} else {

return b;

}

}

 

public int getNum() {

return num;

}

 

public void setNum(int num) {

this.num = num;

}

}// 싱글톤

 

public class Test02 {

public static void main(String[] args) {

 

A a = new A();

A.number = 10;// static은 클래스명. static변수명/ 인스턴스 안만들고 쓸 수 있다.

 

A.number = 100;

System.out.println(A.number);

 

B b = B.getInstance();

B b2 = B.getInstance();

B b3 = B.getInstance();

B b4 = B.getInstance();

 

b.setNum(1);

b2.setNum(2);

b3.setNum(3);

b4.setNum(4);

 

System.out.println(b.getNum());

System.out.println(b2.getNum());

System.out.println(b3.getNum());

System.out.println(b4.getNum());

 

// B b = new B();//private으로 잠궈서 가져올 수 없다.

 

}

}

 

 

 

 

100

생성자입니다.

4

4

4

4

'2023.11.21-2024.05.31' 카테고리의 다른 글

231220 JAVA Study  (1) 2023.12.20
231220 JAVA Test01(프로그래머스 문제)  (0) 2023.12.20
231219 JAVA Test01  (0) 2023.12.20
231219 JAVA AbstractEx2(추상화)  (0) 2023.12.20
231219 JAVA AbstractEx(추상화)  (0) 2023.12.20