A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段郎 中级黑马   /  2014-4-23 01:27  /  1543 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

public class Test7 {

        /**第7题:定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub

        }

}
//定义一个类
class WaiBuClass{
        private int a=0;
        private void show(){
                System.out.println("这是外部类中的show方法");
        }
        //定义一个类部类
        class NeiBuClass{
                a=1;//这报错,怎么解决??????????????????????????????????获取方法的方式和变量是一样的么?
        }
}

点评

毕老师视频里面讲解很详细,楼主先看完毕老师!!!  发表于 2014-4-23 07:19

3 个回复

倒序浏览

RE: 内部类如何获取外部类变量的值

  1. </blockquote></div><div class="blockcode"><blockquote>package cn.itheima.demo;
  2. /*
  3. * 需求:测试Outer中方法
  4. */
  5. public class Demo_Outer {
  6.         public static void main(String[] args) {
  7.                 Outer out = new Outer();
  8.                 out.show();
  9.         }
  10. }<div class="blockcode"><blockquote>package cn.itheima.demo;
  11. /*
  12. *  需求:  第7题:
  13. *      定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,
  14. *      并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
  15. */
  16. //外部类
  17. public class Outer {
  18.         //私有变量
  19.         private int num = 0;
  20.         //函数
  21.         public void method() {
  22.                 System.out.println(num + "method run....");//在这里num省略的是this
  23.         }
  24.         //内部类
  25.         class Inner {
  26. //                num = 5; //这种书写是error,因为在类中只能定义属性和行为,而num=5是一个语句
  27.                 public void print() {  //在内部类函数中访问外部成员变量,并调用外部函数
  28.                         num = 7;
  29.                         System.out.println(num);//在这里num省略的是Outer.this
  30.                         method();
  31.                 }
  32.                
  33.         }
  34.         //在外部类函数中创建内部类对象,调用内部类函数
  35.         public void show() {
  36.                 Inner in = new Inner();
  37.                 in.print();
  38.         }
  39. }
复制代码






评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 清风夜独醉 于 2014-4-23 02:45 编辑

你这个属于语法错误。访问外部类的操作只能在方法中执行。你可以在内部类写一个方法,在方法里访问外部类的变量或者给变量赋值。
再在外部类new一个内部类的对象,然后调用这个对象的方法,就完成了内部类函数中访问外部成员变量,并调用外部类的函数。


楼上已经给出了修正后的代码,我就不再贴代码了。另外,建议你再好好补补java的基础知识。把介绍java语法的入门书籍再好好看一遍。







评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马