类方法学习二:getClasses()、getDeclaredClasses()

转自:http://blog.csdn.net/csdn1234/article/details/2563806

 

一.定义

Class[] getDeclaredClasses()

返回类中定义的公共、私有、保护的内部类和接口。但不包括继承的内部类和接口。

Class[] getClasses()

返回类定义的公共的内部类和接口,以及从父类、父接口那里继承来的内部类和接口

二.例子

1.GrandFather.java

  1. public class GrandFather {
  2. public class ClassG_Pub {
  3. int x;
  4. }
  5. class ClassG_Pro {
  6. int x;
  7. }
  8. private class ClassG_Pri {
  9. int x;
  10. }
  11. public interface InterfG_Pub {
  12. public String getName();
  13. }
  14. interface InterfG_Pro {
  15. public String getName();
  16. }
  17. private interface InterfG_Pri {
  18. public String getName();
  19. }
  20. }
public class GrandFather {

  public class ClassG_Pub {

    int x;

  }

  

  class ClassG_Pro {

    int x;

  }

  

  private class ClassG_Pri {

    int x;

  }

  public interface InterfG_Pub {

    public String getName();

  }

  

  interface InterfG_Pro {

    public String getName();

  }

  

  private interface InterfG_Pri {

    public String getName();

  }

  

}

2.Father.java

  1. public class Father extends GrandFather{
  2. public class ClassF_Pub {
  3. int x;
  4. }
  5. class ClassF_Pro {
  6. int x;
  7. }
  8. private class ClassF_Pri {
  9. int x;
  10. }
  11. public interface InterfF_Pub {
  12. public String getName();
  13. }
  14. interface InterfF_Pro {
  15. public String getName();
  16. }
  17. private interface InterfF_Pri {
  18. public String getName();
  19. }
  20. }
public class Father extends GrandFather{

  public class ClassF_Pub {

    int x;

  }

  

  class ClassF_Pro {

    int x;

  }

  

  private class ClassF_Pri {

    int x;

  }

  public interface InterfF_Pub {

    public String getName();

  }

  

  interface InterfF_Pro {

    public String getName();

  }

  

  private interface InterfF_Pri {

    public String getName();

  }

  

}

3.Son.java

  1. public class Son extends Father{
  2. public class ClassS_Pub {
  3. int x;
  4. }
  5. class ClassS_Pro {
  6. int x;
  7. }
  8. private class ClassS_Pri {
  9. int x;
  10. }
  11. public interface InterfS_Pub {
  12. public String getName();
  13. }
  14. interface InterfS_Pro {
  15. public String getName();
  16. }
  17. private interface InterfS_Pri {
  18. public String getName();
  19. }
  20. public static void main(String args[]) throws Exception{
  21. System.out.println("getClasses:");
  22. for (Class c:Son.class.getClasses()) {
  23. System.out.println("class name:" + c.getName());
  24. }
  25. System.out.println("getDeclaredClasses:");
  26. for (Class c:Son.class.getDeclaredClasses()) {
  27. System.out.println("class name:" + c.getName());
  28. }
  29. }
  30. }
public class Son extends Father{

  public class ClassS_Pub {

    int x;

  }

  

  class ClassS_Pro {

    int x;

  }

  

  private class ClassS_Pri {

    int x;

  }

  public interface InterfS_Pub {

    public String getName();

  }

  

  interface InterfS_Pro {

    public String getName();

  }

  

  private interface InterfS_Pri {

    public String getName();

  }

  

  public static void main(String args[]) throws Exception{

    System.out.println("getClasses:");

    for (Class c:Son.class.getClasses()) {

      System.out.println("class name:" + c.getName());

    }

    

    System.out.println("getDeclaredClasses:");

    for (Class c:Son.class.getDeclaredClasses()) {

      System.out.println("class name:" + c.getName());

    }

  }



}

4.java Son的输出结果是:

  1. getClasses:
  2. class name:Son$InterfS_Pub
  3. class name:Son$ClassS_Pub
  4. class name:Father$InterfF_Pub
  5. class name:Father$ClassF_Pub
  6. class name:GrandFather$InterfG_Pub
  7. class name:GrandFather$ClassG_Pub
  8. getDeclaredClasses:
  9. class name:Son$InterfS_Pri
  10. class name:Son$InterfS_Pro
  11. class name:Son$InterfS_Pub
  12. class name:Son$ClassS_Pri
  13. class name:Son$ClassS_Pro
  14. class name:Son$ClassS_Pub  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值