精华内容
下载资源
问答
  • 接下来我们来看下一个实验: public class Outer3 { ...局部内部类不可以定义静态变量,可以访问可以访问外部的局部变量(即方法内的变量),但是变量必须是final的。            

    接下来我们来看下一个实验:

    public class Outer3 {
        private int s = 100;
        private int out_i = 1;
    
        public void f(final int k) {
            final int s = 200;
            int i = 1;
            final int j = 10;
            class Inner { // 定义在方法内部
                int s = 300;// 可以定义与外部类同名的变量
                // static int m = 20;//不可以定义静态变量
    
                Inner(int k) {
                    inner_f(k);
                }
    
                int inner_i = 100;
    
                void inner_f(int k) {
                    System.out.println(out_i);// 如果内部类没有与外部类同名的变量,在内部类中可以直接访问外部类的实例变量
                    System.out.println(k);// *****可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的*****
                    System.out.println(i);
                    System.out.println(s);// 如果内部类中有与外部类同名的变量,直接用变量名访问的是内部类的变量
                    System.out.println(this.s);// 用"this.变量名" 访问的也是内部类变量
                    System.out.println(Outer3.this.s);// 用外部"外部类类名.this.变量名"
                                                      // 访问的是外部类变量
                }
            }
            new Inner(k);
        }
    
        public static void main(String[] args) {
            // 访问局部内部类必须先有外部类对象
            Outer3 out = new Outer3();
            out.f(3);
        }
    }

     eclise  显示:

     

    总结:

    局部内部类不可以定义静态变量,可以访问可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的。

     

     

     

     

     

     

    展开全文
  • 局部内部类

    2019-08-02 19:03:25
    局部内部类可以直接访问外部的成员,也可以访问方法中局部变量 局部内部类不可以直接访问,需要在方法中创建对象 测试 //局部内部类可以直接访问外部的成员,也可以访问方法中局部变量 public class Out { int...

    概述

    简单的来说就是方法中写个类

    访问特点

    • 局部内部类可以直接访问外部类的成员,也可以访问方法中局部变量
    • 局部内部类不可以直接访问,需要在方法中创建对象

    测试

    //局部内部类可以直接访问外部类的成员,也可以访问方法中局部变量

    public class Out {
        int a;
        public void yun(){
             int b=98;
            class Show{
                public void put(){
                    //测试是否可以访问外部类成员
                    a=7;
                    //测试是否可以方法中局部变量
                    System.out.println(b);
                    System.out.println("-----");
                }
            }
        }
    展开全文
  • 局部内部类特点: 1.定义在代码块、方法体内的局部内部类 2.局部内部类访问外部的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式 3.对外部世界完全隐藏,只能在作用域内...

    局部内部类特点:
      1.定义在代码块、方法体内的类叫局部内部类
      2.局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式
      3.对外部世界完全隐藏,只能在作用域内生成对象。
    局部内部类有以下限制:
      1.局部类不能加访问修饰符,因为他们不是类成员
      2.成员内部类不能与外部类重名
      3.局部内部类访问作用域内的局部变量,该局部变量需要加final修饰

     

    public class LocalInnerClass {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Outer3 outer3 = new Outer3();
    		outer3.OuterShow();
    	}
    
    }
    
    class Outer3{
    	private int num1 = 1;
    	private static int num2 = 2;
    	public void OuterShow() {
    		final int num4 = 4;//fianl好像修复了,不声明为final在内部类里也可以用(可以去掉final)
    		//Inner inner = new Inner();不能在这里实例化,因为Inner类还没有初始化,就不能调用该类
    		class Inner{//局部内部类不能加访问修饰符
    			public void show() {
    				int num1 = 10;
    				System.out.println(num1);
    				System.out.println(Outer3.this.num1);//调用外部类的属性写法
    				System.out.println(Outer3.num2);//调用外部静态属性写法
    				System.out.println(num4);
    			}
    		}
    		Inner inner = new Inner();//应该在这里实例化
    		inner.show();
    	}
    }
    

      

    转载于:https://www.cnblogs.com/liubing2018/p/8462786.html

    展开全文
  • 内部局部内部类

    千次阅读 2018-08-19 08:31:22
    内部局部内部类 1、什么是内部 将一个A定义在另一个B里面,里面的那个A就称为内部,B则称为外部。 1.成员内部 :定义在中方法外的。 定义格式:  class 外部 {  class内部{ } ...

    内部类与局部内部类

    1、什么是内部类

    将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。

    1.成员内部类 :定义在类中方法外的类。

    定义格式:

      class 外部类 {

             class内部类{

    }

    }       

     

    2.访问特点

    内部类可以直接访问外部类的成员,包括私有成员。 外部类要访问内部类的成员,必须要建立内部类的对象。

    创建内部类对象格式:    

    外部类名.内部类名 对象名=new 外部类名().new 内部类名()    

    举例代码:

    1.内部类

    package DemoTest.DemoTest2;
    public class person {
        private String name;
            public class xianren{
                public void XianShow(){
                    System.out.println("仙人模式!");
                    System.out.println("我叫"+name);
                }
            }

    public void show(){
            System.out.println("间接调用内部类!");
            xianren xr = new xianren();
            xr.XianShow();
        }

        public person() {
        }
        public person(String name) {
            this.name = name;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }

    }

    2.测试类

    package DemoTest.DemoTest2;

    public class Test {
        public static void main(String[] args) {

    //第一种调用方法
            person p = new person();
            p.setName("鸣人");
            p.show();
            System.out.println("========================");

    //第二种调用方法
            person.xianren x = p.new xianren();
            x.XianShow();
            System.out.println("========================");

    //第三种调用方法
            //外部类名.内部类名 对象名=new 外部类名().new 内部类名()
            person.xianren obj= new person("鸣人").new xianren();
            obj.XianShow();
        }
    }

    3.结果:

    间接调用内部类!

    仙人模式!

    我叫鸣人

    ========================

    仙人模式!

    我叫鸣人

    ========================

    仙人模式!

    我叫鸣人

     

    举例代码2:

    获取不同地址的值

    1.不同位置的num
    public class Denoquzhi {
        int num=10;
        class Quzhi{
            int num=20;
            public void print(){
                int num=30;
                System.out.println(num);
                System.out.println(this.num);
                System.out.println(Denoquzhi.this.num);
            }
        }
        public void da(){
            System.out.println("间接调用");
            Quzhi q = new Quzhi();
            q.print();
        }
    }

    2.测试类

    package DemoTest.Demoquzhi;

    public class Teat {
        public static void main(String[] args) {

    //间接调用
            Denoquzhi d = new Denoquzhi();
            d.da();
            System.out.println("===================");

    //格式规定的直接调用
            Denoquzhi.Quzhi dui=new Denoquzhi().new Quzhi();
            dui.print();
        }
    }

    3.结果:

    间接调用

    30

    20

    10

    ===================

    30

    20

    10

     

    2、局部内部类

    举例代码:

    1.在类的方法内包含了一个内部类

    package DemoTest.DemoSamill;

    public class Demosamill {
        public void method(){
            class MethodClass{
                int num=10;
                public void print(){
                    System.out.println("局部内部类");
                    System.out.println(num);
                }
            }
            MethodClass m = new MethodClass();
            m.print();
        }
    }

    2.测试类

    package DemoTest.DemoSamill;

    public class Test {
        public static void main(String[] args) {
            Demosamill d = new Demosamill();
            d.method();
        }
    }

    3.结果

    局部内部类

    10

     

     

     

     

     

    展开全文
  • 内部的概述和访问特点 /* 内部的概述和访问特点 内部的概述 把定义在其他的内部,这个... 局部位置:在局部位置(成员方法中)定义的被称为局部内部类 */ /* 成员内部 如何访问成员内部
  • 内部 为什么要有内部? 1.提高的安全性 2.防止外界创建对象 什么情况下可以不让外界创建对象? 1.抽象 2.接口 ...2.局部内部类 3.静态内部 4.匿名内部 内部特点: 1.外部也可以直...
  • 内部-成员内部局部内部类、匿名内部、匿名内部实际应用
  • 根据内部,定义位置的不同,又分为成员内部局部内部类 成员内部:内部位于外部的成员位置 局部内部类:内部位于外部的成员方法内 举例: class A{ //成员内部:位于外部的成员位置 class ...
  • 一、内部 1、概述 把定义在其他的内部 ...局部位置(局部内部类) 2、成员内部,外界如何创建对象(一般内部就是不让外界访问) 外部类名.内部类名 对象名 = 外部对象.内部对象 3、成员内部,...
  • 局部内部类是指在一个方法中定义的内部。示例代码如下: ...局部内部类有如下特点。 (1) 局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。 (2)...
  • 目录成员内部定义成员内部类特点如何使用成员内部静态内部定义静态内部特点如何使用静态内部类局部内部类定义局部内部类特点如何使用局部内部类匿名内部定义前提格式:匿名内部特点如何使用匿名...
  • 内部局部内部类

    2017-12-14 14:54:34
    局部内部类 在方法中定义的内部,其可见范围是当前方法和局部变量是同一个级别 1)不能使用public,private,protected,static修饰符 2)局部内部类只能在 当前方法中使用 局部内部类和实例内部一样,不能...
  • Java 内部分四种:成员内部局部内部类、静态内部和匿名内部
  • 内部 把一个定义到另一个的内部...局部内部类:内部定义在外部的局部位置(外部方法中); class A{ class B{} //成员内部 public void method(){ class C{} //成员外部 } } 内部的访问特点
  • 分为两种: 一个是 成员内部 ,一个是 局部内部类(包含匿名内部) 2、成员内部的定义及使用 定义: 修饰符 class 外部名称 { ... 修饰符 class 成员内部名称 { ... } } 使用方法:   简接调...
  • 局部内部类访问外部的成员使用:外部类名.this.成员名 对外部世界完全隐藏,只在其作用域内生成对象 限制: 局部不能加访问修饰符,因为它们不是成员 成员内部不能与外部重名 局部内部类访问作用域内的...
  • 局部内部类:在方法的局部位置 成员内部访问特点(非静态): 外部类名.内部类名 对象名 = 外部对象.内部对象; Outer.Inter oi = new Outer().new Inter(); (静态) 外部类名.内部类名 对象名 = new 外部...
  • 局部内部类(不谈修饰符)、匿名内部 成员内部 特点: 作为外部成员: 1.和外部不同,Inner class还可以声明为private或protected; 2.可以调用外部的结构 3.Inner class 可以声明为static的,但此时...
  • 局部内部类 1、如何声明? 【修饰符】 class 外部 【extends 父类】 【implements 父接口们】{ 【修饰符】 返回值类型 **方法**名(【形参列表】){ 【修饰符】 class 内部 【extends 父类】 【implemends 父...
  • 1.定义:把定义在其他的内部,这个就被称为内部。 class Outer{ class Inter{ } } 2.内部的访问特点 (1)内部可以直接访问外部的...* 局部位置:在局部位置定义,被成为局部内部类。 cl...
  • 分四种:成员内部局部内部类、静态内部和匿名内部。 1、成员内部: 即作为外部的一个成员存在,与外部的属性、方法并列。 注意:成员内部中不能定义静态变量,但可以访问外部的所有成员。 public ...
  • JAVASE基础模块十二(成员内部 局部内部类 匿名内部) 内部 内部A定义到B中 那么这个称之为内部 B称之为外部 根据内部定义的位置分为 成员内部局部内部类 成员内部:就是把内部...
  • 四大内部成员内部静态内部类局部内部类匿名内部 成员内部 静态内部 局部内部类 匿名内部 在学习内部之前我们首先要知道内部的概念:在一个的内部再定义一个完整的 内部特点: 编译之后可...
  • 内部类 内部类概念:在一个内部再定义一个完整的. 特点: 编译之后可生成独立的字节码文件。 内部类可直接访问外部的私有成员,而不破坏封装。 可为外部提供必要的内部功能组件。 成员内部类 ...
  • 目标:内部_局部内部类 ...局部内部类中的成分特点: 只能定义实例成员,不能定义静态成员 可以定义常量的。 public class InnerClass { { class A{ } } static { class B{ }...
  • 1.17 局部内部类

    2020-09-30 13:12:31
    局部内部类是指在一个...局部内部类有如下特点局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。 局部内部类只在当前方法中有效。 public class Test {
  • 分享知识 传递快乐 Java中的内部类 例: public class 外部的名称{ //外部的成员 ...内部类可以很好的实现隐藏:一般的非内部类,是不允许有 private 与protected权限的,但内部类可以; 减...
  • 局部内部类是指在一个方法中定义的内部。示例代码如下: ...局部内部类有如下特点。 (1) 局部内部类与局部变量一样,不能使用访问控制修饰符(public、private 和 protected)和 static 修饰符修饰。 (...
  • 一、什么是内部类?or 内部类的概念 内部类是定义在另一个中的;下面TestB是TestA的内部类。即内部类对象引用了实例化该内部对象的外围对象。 public class TestA{ class TestB {} } 二、 为什么需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,285
精华内容 66,514
关键字:

局部内部类的特点