问答详情
源自:7-8 Java 中的方法内部类

如何获取值方法内部类 的 类外方法内的值?

如果 我在  方法内部类外的方法中  定义一个变量 ;如何获得? public  void showInner() { int i =52; class InnerClass{ private int s = 325; private void showInnerClass() { System.out.println("方法内部类使用:"+s); System.out.println("此处我改如何获得    i 的值");  }} InnerClass ic = new InnerClass(); ic.showInnerClass();}

提问者:晨习 2016-12-31 16:13

个回答

  • 晨习
    2017-01-02 19:50:56


    package com.my.baseTest;
    
    /**
     * JavaOutInnerClass 的测试
     * @author my129
     *
     */
    public class JavaOutInnerClassTest{
         public  void showInner() { 
             /**
               * <h4>i 字段 :该字段 用 final 修饰后,可在方法内部类中调用;</h4>
               */
        	 final  int i =52; 
             class InnerClass{
                 private int s = 325; 
                 private void showInnerClass() {
                     System.out.println("方法内部类使用:"+s); 
                     System.out.println("此处我改如何获得    i 的值" + i);  
                     }
                 } 
     
                 InnerClass ic = new InnerClass(); 
                 ic.showInnerClass();
         }
         public static void main(String [] args){
             JavaOutInnerClassTest hello = new JavaOutInnerClassTest();
             hello.showInner();
        }  
    }


  • 瓦全
    2016-12-31 16:57:11

    package com.imooc;
    public class HelloWorld{
    	 public  void showInner() { 
    		 int i =52; 
    		 class InnerClass{
    			 private int s = 325; 
    			 private void showInnerClass() {
    				 System.out.println("方法内部类使用:"+s); 
    				 System.out.println("此处我改如何获得    i 的值" + i);  
    				 }
    			 } 
    
    		     InnerClass ic = new InnerClass(); 
    		     ic.showInnerClass();
    	 }
         public static void main(String [] args){
        	 HelloWorld hello = new HelloWorld();
        	 hello.showInner();
    	}	
    }


  • 海妖妮妮
    2016-12-31 16:43:59

    内部类的方法中访问外部属性--------外部类名.this.属性名

    即:System.out.println("此处我改如何获得    i 的值"+外部类名.this.i);------这里你没给出外部类,你只有外部的方法。。。。。public  void showInner()前面应该有如public class HelloWorld