zoukankan      html  css  js  c++  java
  • 静态内部类定义在类中,任何方法外,用static定义

    静态内部类:(注意:前三种内部类与变量类似,所以可以对照参考变量)

    静态内部类定义在类中,任何方法外,用static定义。

    静态内部类只能访问外部类的静态成员。

    生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:

    Outer.Inner in=new Outer.Inner();

    而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。

    静态内部类不可用private来进行定义。例子:

    对于两个类,拥有相同的方法:

    People

    {

     run();

    }

    Machine{

      run();

    }

    此时有一个robot类:

    class Robot extends People implement Machine.

    此时run()不可直接实现。

    注意:当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。

    用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。

     1 package TomText;
     2 //测试对实例成员和类成员的不同访问形式。
     3 public class TomText_44 {
     4     static int i=1;
     5     int j=1;
     6     static void printStatic( ){
     7         System.out.println("i="+i);
     8         //System.out.println("j="+j);        //非法访问
     9     }
    10     void print(){
    11         System.out.println("i="+i);
    12         System.out.println("j="+j);
    13     }
    14     public static void main(String [ ] args){
    15         TomText_44.printStatic( );
    16         //StaticTest.print( );                //非法访问
    17         TomText_44.i=2;
    18         //StaticTest.j=2;                //非法访问
    19         TomText_44 st=new TomText_44( );
    20         st.i=3;
    21         st.j=3;
    22         st.print( );
    23         st.printStatic( );
    24     }
    25 
    26 }
  • 相关阅读:
    mac idea 更换主题
    记一次Sonarqube踩坑实录
    Mysql 常用数据类型
    Spring Cloud 整合分布式链路追踪系统Sleuth和ZipKin实战,分析系统瓶颈
    git clone克隆github仓库慢,问题解决
    SpringBoot 解决跨域问题
    Android 中的敏感信息泄露
    Drozer 测试 APP
    Drozer 安装踩坑日记
    安卓测试笔记--工具安装
  • 原文地址:https://www.cnblogs.com/borter/p/9419374.html
Copyright © 2011-2022 走看看