Ms'Note

OtherClassType-1 본문

IT/└▶Example Coding.JAVA

OtherClassType-1

Jelly_B 2020. 8. 27. 17:34

Inner Class

  • 클래스 안에 포함된 자식 클래스의 형태로, 일반 클래스와 static 클래스의 형태로 구분된다.
  • 상속의 일종으로 볼 수 있다.
/**
 * Inner Class
 * ------------------------------------------------------
 * 상속과 같이 하나의 클래스에서 파생되는 그룹을 지정하기 위한 방법
 * 바깥의 클래스를 부모, 안쪽의 클래스를 자식으로 놓을 때,
 * 자식은 부모의 모든 기능을 포함한다.
 */
public class People {
    public class Man {
    
    public String name;
    public int age;
    public bollean military;
    
    public Man(String name, int age, boolean military) {
        this.name = name;
        this.age = age;
        this.military = military;
    }
    
    @Override
    public String toString() {
        return "Man [name=" + name + ", age=" + age + ", military=" + military + "]";
    }
    
    public static class Woman {
        public String name;
        public int age;
        
        public Woman(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
    @Override
    public String toString() {
        return "Woman [name=" + name + ", age=" + age + "]";
    }
}

 

 

 

 

 

 

Inner Class 대한 객체 생성하기

  • Inner Class가 Inner 형태인 경우, 부모 클래스의 객체를 통해서만 객체 생성이 가능하다.
  • Inner Class가 static 형태인 경우, 부모 클래스의 이름을 통해서 객체 생성이 가능하다.
public class Main01 {
    public static void main(String[] args) {
        // Inner Class에 대한 객체는 부모 클래스에 대한 객체를 통해서 접근한다.
        People p = new People();
        People.Man man = p.new Man("철수", 19, true);
        
        // static Inner Class는 부모 클래스 자체를 통해서 접근한다.
        People.Woman woman = new People.Woman("영희", 18);
        
        System.out.println(man.toString());
        System.out.println(woman.toString());
    }
}

 

 

출력 결과

 

'IT > └▶Example Coding.JAVA' 카테고리의 다른 글

MathEX-1  (0) 2020.09.04
OtherClassType-2  (0) 2020.08.27
static-2  (0) 2020.08.27
static-1  (0) 2020.08.25
Interface  (0) 2020.08.25
Comments