Inner클래스(내부 클래스)
● 클래스 안에 또 다른 클래스 정의
● 클래스에 다른 클래스를 선언하는 이유는 두 클래스간 긴밀한 관계때문이다.
내부 클래스 장점
● 내부 클래스에서 외부 클래스의 멤버의 쉽게 접근할 수 있음
● 서로 관련 있는 클래스를 논리적으로 묶어 표현했기 때문에 코드의 캡슐화 증가
● 외부에서 접근이 어렵기 때문에, 코드의 복잡성 ↓

* String name 으로 선언된 MyUtil은 HelloPrinter에서만 사용가능
* String staticName으로 선언된 staticName은 HelloPrinter와 Calculator에서 모두 사용 가능함
* staticName은 static으로 선언되서 모두 사용이 가능
* MyUtil의 경우 static을 쓰지 않아 myutil클래스를 생성했을 때 선언한 HelloPrinter만 사용 가능함.
(Calculator클래스는 소속만 같고 엄연히 분리되어 있는 클래스라고 보면 됨)

위와 같이 클래스 안에 또다른 클래스를 선언할 수 있으며, 이를 임포트 하여 객체 생성하여 출력까지 가능
익명클래스
● 클래스 선언과 객체생성을 동시에 하는 이름없는 클래스
● 단 하나의 객체만을 생성하는 일회용 클래스
● 생성자 선언 못함
● 단 하나의 클래스나 단 하나의 인터페이스를 상속받거나 구현할 때 사용함

위의 예시는 Weapon이라는 인터페이스를 통해 구현한 익명클래스임.
이름이 없으며, 둘은 하나로 컴파일되지 않고 각각 컴파일 됨.
Thread
● 스레드는 프로그램 내에서 실행되는 프로그램 제어 흐름(실행 단위)
● 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업단위
● 프로세스 내의 명령어 블록으로 시작점과 종료점을 가짐
● 병렬 프로그래밍
● 비동기 프로그래밍
● Thread 클래스로부터 제공되는 run()메소드 오버라이딩 해서 사용
새로운 스레드(Thread)시작시키는 방법

1. Thread 객체를 생성할 수 있는 클래스 정의
2. 정의한 클래스를 이용해서 객체 생성
3. 생성된 객체의 start()메소드를 호출한다. (run 메소드 호출아님)
* 저기 있는 sleep은 thread 함수 중 하나로 일시정지를 구현함(try catch 안에 적어주어야 함)
'JAVA_이클립스' 카테고리의 다른 글
| JAVA - StringTokenizer 클래스 (0) | 2023.02.18 |
|---|---|
| JAVA - String Buffer/String Builder/String 클래스 (0) | 2023.02.18 |
| JAVA - VO/DTO (0) | 2023.02.09 |
| JAVA - Exception / throw/ throws (0) | 2023.02.09 |
| JAVA - 접근제어자 (0) | 2023.02.09 |