• 静态方法中不能new内部类的实例对象的总结


    class Test{
         public void main(String[] args){
        A testA=new A();  //这里会出现问题
            new Thread(new Runnable(){
                public void run(){
                testA.printout();
             }
             }).start();
             System.out.println("aaaaaa");  
        }
      
         class A{
                  public void printout(){
                  System.out.println("aaaaaa");    
            }
          }
      }
    静态方法中不能new内部类的实例对象。这是为什么了? 
    内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量。成员变量是对象身上的。对象创建完成了,才会为成员变量分配空间。能调用成员变量,意味着一定有了实例对象.
    main方法是静态的,它执行的时候可以不用创建那个对象。这就矛盾了。
    main方法运行的时候没有任何外部类的实例对象。我们的内部类的实例对象创建了它又可以访问外部类的成员变量,外部类的实例对象在哪儿了?
    所以这个原因,我们下面的代码就要进行改写 要想创建内部类的实例对象,必须创建外部类的实例对象。
    //  修改之后的代码如下:
     class Test{
         public void main(String[] args){
        new Test().init();
             System.out.println("aaaaaa");  
        }
      
      public void init(){
        A testA=new TestA();
            new Thread(new Runnable(){
                public void run(){
                testA.printout();
             }
             }).start();
        }  
      class A{
                  public void printout(){
                  System.out.println("aaaaaa");    
            }
          }
      }
    方法的调用一定是要通过对象调用的。
    哪个对象调用了这个方法,创建内部类实例对象的时候所使用的外部类的实例对象就是谁
     
  • 相关阅读:
    awk常用命令
    Linux 指令篇:使用者管理--sudo
    sax解析xml案例一
    DefaultHandler类
    Linux上vi(vim)编辑器使用教程
    SecureCRT上传下载数据的方法
    K近邻的决策边界以及K的影响
    KNN交叉验证,找出合适的K值
    KNN(K邻近值算法)手动版与库函数调用版
    linear_model.LinearRegression()线性回归之身高预测体重
  • 原文地址:https://www.cnblogs.com/printN/p/6249177.html
Copyright © 2020-2023  润新知