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

来源:7-8 Java 中的方法内部类

晨习

2016-12-31 16:13

如果 我在  方法内部类外的方法中  定义一个变量 ;如何获得? 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();}

写回答 关注

3回答

  • 晨习
    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();
    	}	
    }


    晨习

    已解决 ,请看下列代码;

    2017-01-02 19:54:23

    共 2 条回复 >

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

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

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

    晨习

    已解决,请看后发代码 <h4>.....</h4> 中的注释

    2017-01-02 19:55:37

    共 2 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530656 学习 · 6091 问题

查看课程

相似问题