JAVA/innerClass

언어 공부/JAVA / / 2022. 5. 17. 23:33
반응형

 

innerClass
 * 내부 클래스가 가장많이 쓰이는곳은 익명의 내부 클래스이다.
 * 약간의 편리함, 추상클래스에 자주쓰인다. 

public class Emart {
//멤버필드 
public String branch="과자"; 
//방송을 전달하는 메소드
public void broadcast(String msg) {
System.out.println(msg);
}
//청소를 하는 메소드 
public void clean() {
System.out.println("청소");
}
 * 내부 클래스의 장점은 
 * 자기를 포함하고 있는 클래스의 필드를 참조하거나 메소드를 쓸 수 있다. 
 * 하지만 이렇게 내부 클래스를 사용하지 않으면 이러한 메소드들을 다 만들어줘야 한다 필드 메소드 전부. 

 

innerClass(Static)
 * 내부클래스 (static) 
 * 스태틱으로 참조를 하고싶다면 그 메소드 또한 스태틱으로 만들어야 한다.
    그래야만 참조가 가능하기 때문이다. 

public class Worker{
//내부 클레스 메소드 
public void work() {
// 이처럼 외부클래스의 내부클래스에서 선언된 메소드는 외부클래스에 선언된 메소드나 필드명을 참조가 가능하다.
broadcast("허니버터칩을 찾습니다");
clean();
broadcast(branch);
}
}
}

 

정리 

 

 * 지금 누군가가 Car클래스를 만들었는데 그것을 내가 수정할 수 없다.
 * 그런데 임포트 해서 써야한다 그런데 내가 드라이브라는 메소드가 마음에 안든다.
 * 그런데 상속받아서 오버라이드 하고 다시 만들기에는 매우 번거로운 작업이다. 
 * 그럴때 하는 것이 바로 내부클래스 하지만 이것보다 한걸음 더 나아가는 방식이
 * 익명의 클래스이다.
-클래스를 선언과 객체의 생성을 동시에 하는 이름없는 클래스(일회용)

public class Factory {public Car car = new Car() { 

//new Car -> extends Car로 생각하면된다. 
// 해당 타입의 메소드를 호출해 오버라이드 한다. 
// 이런식으로 하게되면 굳이 내부클래스를 안만들어도 되는 형식이.
@Overridepublic void drive() {
System.out.println("빨리 달려");
}
}
//public Car car = new Car();
//멤버 필드에 있는 Car 객체를 사용하는 메소드
public void useCar() {
car.drive();
}
public Car getCar() {
return car;
}
}
 

 

 
반응형

'언어 공부 > JAVA' 카테고리의 다른 글

Java의 5대 핵심 개념과 예시로 알아보는 자바 프로그래밍  (0) 2023.11.24
JAVA/DTO test code  (0) 2022.05.15
JAVA/상속관계, 포함관계  (0) 2022.05.15
JAVA/CLASS  (0) 2022.05.11
JAVA/생성자  (0) 2022.05.11
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기