精华内容
下载资源
问答
  • ``` class Outer1 { int x=100; void method(int a) ... public static void main(String[]args) ...看公开课上说,局部内部类只能访问final的变量,为什么我可以,JDK版本不同的原因吗?还是什么?
  • java中的Static class

    2016-10-08 14:41:00
    在java中我们可以有静态实例变量(java 没有静态局部变量)、静态方法、静态块。类也可以静态的。 Java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中...

    Java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量(java 没有静态局部变量)、静态方法、静态块。类也可以是静态的。

    Java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中,我们不能用static修饰顶级类(top level class)。只有内部类可以为static。

         静态内部类和非静态内部类之间到底有什么不同呢?下面是两者间主要的不同。

        (1)静态内部类不需要有指向外部类的引用。非静态内部类需要持有对外部类的引用。

        (2)非静态内部类能够访问外部类的静态和非静态成员。静态内部类不能访问外部类的非静态成员。它只能访问外部类的静态成员。

        (3)非静态内部类不能脱离外部类实体被创建,非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

    基于上面的讨论,我们可以通过这些特性让编程更简单、有效。

    /* 下面程序演示如何在java中创建静态内部类和非静态内部类 */
    class OuterClass{
       private static String msg = "GeeksForGeeks";
    
       // 静态内部类
       public static class NestedStaticClass{
           // 静态内部类只能访问外部类的静态成员
           public void printMessage() {
             // 试着将msg改成非静态的,这将导致编译错误 
             System.out.println("Message from nested static class: " + msg); 
           }
        }
    
        // 非静态内部类
        public class InnerClass{
           // 不管是静态方法还是非静态方法都可以在非静态内部类中访问
           public void display(){
              System.out.println("Message from non-static nested class: "+ msg);
           }
        }
    } 
    
    class Main
    {
        // 怎么创建静态内部类和非静态内部类的实例
        public static void main(String args[]){
           // 创建静态内部类的实例
           OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
           // 创建静态内部类的非静态方法
           printer.printMessage();   
           // 为了创建非静态内部类,我们需要外部类的实例
           OuterClass outer = new OuterClass();        
           OuterClass.InnerClass inner  = outer.new InnerClass();
           // 调用非静态内部类的非静态方法
           inner.display();
           // 我们也可以结合以上步骤,一步创建的内部类实例
           OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
           // 同样我们现在可以调用内部类方法
           innerObject.display();
        }
    }

    参考链接

    http://stackoverflow.com/questions/7486012/static-classes-in-java

    展开全文
  • 不可修饰:Static不可修饰外部类、局部变量static 属于类的,局部变量属于其方法,并不属于类】 注意:static 方法不能兼容this关键字【static代表类层次,this代表当前类的对象】 引发问题:构造方法静态...
  • static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 2、程序的...
  • 所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...
  • C语言编程要点

    2017-09-18 00:10:37
    2.17. 可以在头文件中说明static变量吗? 28 2.18. 用const说明常量有什么好处? 28 第3章 排序与查找 28 排序 28 查找 29 排序或查找性能? 30 3.1. 哪一种排序方法最方便? 32 3.2. 哪一种排序方法最快? 33 3.3. 对外...
  •  1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗?  1.11 extern在函数声明中什么意思?  1.12 关键字auto到底有什么用途?  类型定义(typedef)  1.13 对于用户定义类型,...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 35 1.11 extern在函数声明中什么意思? 35 1.12 关键字auto到底有什么用途? 36 类型定义(typedef) 36 1.13 对于用户定义类型,...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 35 1.11 extern在函数声明中什么意思? 35 1.12 关键字auto到底有什么用途? 36 类型定义(typedef) 36 1.13 对于用户定义类型,...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 1.11 extern在函数声明中什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 1.11 extern在函数声明中什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗?  1.11 extern在函数声明中什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef)  1.13 对于用户定义类型,typedef和#...
  •  存储类型 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 1.11 extern在函数声明中什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,...
  • 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,...
  • 7.7.1 什么是局部变量(Local Variable) 175 7.7.2 什么是实例变量(Instance Variable) 177 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露的...
  • 7.7.1 什么是局部变量(Local Variable) 175 7.7.2 什么是实例变量(Instance Variable) 177 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露的...
  • 7.7.1 什么是局部变量(Local Variable) 175 7.7.2 什么是实例变量(Instance Variable) 177 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露的...
  • java 面试题 总结

    2009-09-16 08:45:34
    Static Nested Class被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...
  • o 4.10 如果我不使用表达式的值, 我应该用 ++i 或 i++ 来自增一个变量吗? o 4.11 为什么如下的代码 int a = 100, b = 100; long int c = a * b; 不能工作? o 4.12 我需要根据条件把一个复杂的表达式赋值给两个...
  • 局部变量,一般来讲就是具有块作用域的变量;全局变量,就是具有文件作用域的变量。 2-16 已知x、y两个变量,写一条简单的if语句,把较小的的值赋给原本值较大的变量。 解: if (x > y) x = y; else // y > x || y...
  • 3.6.2 局部变量 69 3.6.2.1 寄存器变量 69 3.6.3 静态变量 70 3.6.4 外部变量 71 3.6.4.1 连接 71 3.6.5 常量 72 3.6.5.1 常量值 72 3.6.6 volatile变量 73 3.7 运算符及其使用 73 3.7.1 赋值 73 3.7.2 ...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.4 这个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 我可否用括号来强制执行我所需要的计算顺序? . . . . . . . . ....
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 ...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

外部static是局部变量吗