精华内容
下载资源
问答
  • 静态变量

    千次阅读 2021-01-16 11:05:47
    什么是静态变量 1)静态变量就是被static修饰的变量 (如 static int a) 2)静态方法就就是被static修饰的方法(如 public static void fangFa(){ }) 关于静态的注意事项 1)定义静态的变量----成员位置----成员...

    什么是静态变量

    1)静态变量就是被static修饰的变量 (如 static int a)
    2)静态方法就就是被static修饰的方法(如 public static void fangFa(){
    })
    关于静态的注意事项
    1)定义静态的变量----成员位置----成员变量 —加入static
    2)非静态的成员方法能不能访问静态的成员变量呢?
    既可以访问非静态的成员变量,也可以访问静态的变量!
    3)非静态的成员方法能不能调用静态的成员方法呢?
    既可用于调用非静态的成员方法,也可以调用静态的成员方法呢
    4)静态的成员方法,能不能访问非静态的成员变量呢?
    不能, 只能访问静态的成员变量
    5)静态的成员方法,能不能调用非静态的成员方法呢?
    不能,只能调用静态的成员方法

    总结:

    1)非静态的成员方法,既可以访问静态的成员变量/非静态的成员变量
    也可以可以访问静态的成员方法/非静态的成员方法
    2) 静态只能访问静态!

    展开全文
  • python静态变量和静态方法

    万次阅读 2019-04-15 19:36:42
    一、静态变量和静态方法 1、静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象。 2、静态变量和静态方法都可以通过类名和...

    一、静态变量和静态方法

    1、静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象。
    2、静态变量和静态方法都可以通过类名和对象进行访问。

    二、静态变量示例

    class StaticMenthod:
    count = 0 #静态变量,不需要显示的声明

    def __init__(self):
        StaticMenthod.count += 1
    
    def __del__(self):
        StaticMenthod.count -= 1
    

    sMenthod = StaticMenthod() #创建对象实例

    sMenthod.count += 1 #通过对象实例操作静态变量
    print(“sMenthod:%d”%(sMenthod.count)) #通过对象实例调用静态变量
    print(“StaticMenthod:%d”%(StaticMenthod.count)) #通过类名调用静态变量

    运行结果如下:
    在这里插入图片描述

    通过上面的测试结果可以看出通过对象实例访问静态变量和通过类名访问静态变量的结果是不一样的,由此也证明了通过对象访问实例和通过类名访问实例是互相不干扰的。

    三、静态方法

    1、静态方法相关描述
    1》、静态方法中不需要传入self参数,因此无法访问在静态方法中访问静态实例变量。
    2》、静态方法中不可以直接访问类的静态变量,但可以通过类名引用静态变量。
    3》、可以通过装饰符定义静态变量。

    2、静态方法示例

    class StaticFunc:
    str = “this is static variable!”

    @staticmethod
    def static_func():
        print("this is static function!")
    

    StaticFunc.static_func()

    sFunc = StaticFunc() sFunc.static_func()

    print(StaticFunc.str)

    运行结果如下:
    在这里插入图片描述

    通过结果分析可以知道:通过对象名调用静态方法和通过类名调用静态方法的结果是没有什么区别的。

    说明:如有错误,欢迎指正。。。

    展开全文
  • [Java]静态变量与非静态变量的区别

    千次阅读 2016-08-30 12:56:47
    ①java类的成员变量有俩种: ...类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周
     ①java类的成员变量有俩种:
            一种是被static关键字修饰的变量,叫类变量或者静态变量
            另一种没有static修饰,为成员变量
     
        ②通俗点说:
            类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
            而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
     
    注意点:
        1.JAVA中初始化的顺序:
            加载类;
            静态变量初始化;
            静态块;【其只能调度静态的,不能调度非静态的】
            成员变量;
            构造方法; 
     
        2.为显示静态块的优先级,我来显示一个没有Main方法的程序,javac后其是没有任何错误的。
    public class Test {
        static {
            System.out.println("static ");
            System.exit(0);
        }
    }
    展开全文
  • Java学习笔记之静态方法(类方法),非静态方法(成员方法),静态变量(类变量),非静态变量(成员变量)之间的关系 首先明白这几个名词的意思: 静态方法:即类方法,在类之中,以static关键字申明的方法。 ...

    Java学习笔记之静态方法,非静态方法,静态变量,非静态变量四者之间的关系

    前言:
    静态方法,静态变量在程序开始运行时就进行初始化;非静态方法,非静态变量在创建该对象时才进行初始化。引用未初始化变量/方法即会报错。

    首先明白这几个名词的意思:

    1. 静态方法:即类方法,在类之中,以static关键字申明的方法。
      使用方法:直接使用类名.类方法名来进行调用。
    2. 非静态方法:即成员方法,没有static关键字申明。
      使用方法:需要先创建类对象,使用类对象名.成员方法名来进行调用。
    3. 静态变量:即类变量,在类之中,方法之外,以static关键字申明的变量,它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。
      使用方法:直接使用类名.类变量名来进行访问。
    4. 非静态变量:即成员变量,在类之中,方法之外,没有static关键字申明。
      使用方法:需要先创建类对象,使用类对象名.成员变量名来进行调用。

    这四者之间的关系

    1. 静态方法中
      可以直接调用同类或其他类中的静态变量或静态方法,原因:被调用者均已初始化;
      不可以直接调用同类或其他类中的成员变量或成员方法,原因,此时被调用者还未初始化,若仍需调用,则需先声明创建对象,再进行调用。
      注:不推荐在静态方法中调用非静态变量/方法
    class Test2 {
        //非静态变量
        public String name2 = "我是Test2的非静态变量name2!";
        //静态变量
        public static String hobby2 = "我是Test2的静态变量hobby2!";
    
        public static void method1() {
            System.out.println("我是Test2的静态方法method1!");
            System.out.println(Test2.hobby2);
        }
        public void method2() {
            System.out.println("我是Test2的非静态方法method2!");
        }
    }
    
    public class Test {
        //非静态变量
        public String name = "我是Test的非静态变量name!";
        //静态变量
        public static String hobby = "我是Test的静态变量hobby!";
    
        public static void method1() {
            System.out.println("我是Test的静态方法method1!");
            System.out.println(Test2.hobby2);
            System.out.println(hobby);
            Test2.method1();
        }
        public void method2() {
            System.out.println("我是Test的非静态方法method2!");
        }
    
        public static void main(String[] args) {
            method1();
        }
    
    1. 在非静态方法中
      可直接调用同类或其他类中的静态变量或静态方法,原因:被调用者均已初始化;
      可直接调用同类中的成员方法/变量,不可直接调用其他类中的成员方法/变量,原因:同类中的成员方法/变量在执行该成员方法时已完成初始化,而其他类中的成员方法/变量此时还未创建类对象,未初始化。若仍需调用其他类中的成员方法/变量,则需先创建对应类对象,再进行调用。
    class Test2 {
        //非静态变量
        public String name2 = "我是Test2的非静态变量name2!";
        //静态变量
        public static String hobby2 = "我是Test2的静态变量hobby2!";
    
        public static void method1() {
            System.out.println("我是Test2的静态方法method1!");
        }
        public void method2() {
            System.out.println("我是Test2的非静态方法method2!");
            System.out.println(name2);
            System.out.println(hobby2);
        }
    }
    
    public class Test {
        //非静态变量
        public String name = "我是Test的非静态变量name!";
        //静态变量
        public static String hobby = "我是Test的静态变量hobby!";
    
        public static void method1() {
            System.out.println("我是Test的静态方法method1!");
        }
        public void method2() {
            System.out.println("我是Test的非静态方法method2!");
            //同类中静态变量及方法调用
            System.out.println(hobby);
            method1();
            System.out.println("-------------------------------");
            //其他同类中静态变量及方法调用
            System.out.println(Test2.hobby2);
            Test2.method1();
            System.out.println("-------------------------------");
            //同类中非静态变量及方法调用
            System.out.println(name);
            method3();
            System.out.println("-------------------------------");
            //其他同类中非静态变量及方法调用
            Test2 test2 = new Test2();
            System.out.println(test2.name2);
            test2.method2();
        }
        public void method3() {
            System.out.println("我是Test的非静态方法method3!");
        }
    
        public static void main(String[] args) {
            Test test = new Test();
            test.method2();
        }
    

    以上是我在学习Java的过程觉得容易被弄晕的地方,所以总结了一下,如果有什么不对的地方,欢迎指出。

    展开全文
  • C语言中的静态变量和非静态变量

    万次阅读 多人点赞 2017-11-30 15:05:52
    1.全局静态变量:在全局变量前面加上关键词static,全局变量就被定义成一个全局静态变量。 (1)内存中的位置:静态存储区。 (2)作用域:在程序任何地方都是可见的。 2.局部静态变量:在局部变量前面加上关键词...
  • java中静态变量与非静态变量的区别

    千次阅读 2018-09-17 18:33:36
    静态变量与非静态变量的区别如下: 1.内存分配 静态变量在应用程序初始化时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡; 而非静态变量需要被实例化后才会分配内存。 2.生存周期 静态变量生存...
  • python局部变量全局变量-静态方法-实例变量静态变量代码解析。
  • c语言静态函数调用静态变量 C中的静态变量 (Static Variables in C) Basically, when static variables are declared, they create only a single copy of them and are also termed as Class Variables. 基本上,...
  • kotlin定义静态变量、方法可以采用伴生对象companion object的方式。 下面这篇文章主要给大家介绍了关于Kotlin使用静态变量与静态方法的相关资料,需要的朋友可以参考下
  • 1.全局静态变量只能被当前源文件引用,不能被工程里其它源文件引用。 除了这点特殊,其它与普通的全局变量一样。 2.局部静态变量,只执行一次初始化,只能被所在函数引用,函数执行 完毕,变量仍存在,生存周期...
  • 全局变量、全局静态变量、局部变量、局部静态变量区别
  • 静态变量static

    千次阅读 多人点赞 2018-09-05 21:09:07
    静态变量静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放 ,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来...
  • C#中静态变量与非静态变量的区别

    千次阅读 2017-12-08 09:42:32
    静态变量与非静态变量的区别如下:  1.内存分配  静态变量在应用程序初始化时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡;  而非静态变量需要被实例化后才会分配内存。  2.生存周期  静态...
  • 为什么静态方法不能调用非静态变量,非静态方法可以引用静态变量?理由很简单,静态方法不属于对象,是属于类的,是不需要实例化的,而非静态变量是属于对象的,需要先实例化。在一个类的静态成员中去访问其非静态...
  • 静态变量与非静态变量的区别

    千次阅读 2016-09-04 16:16:57
    静态变量或方法: 就是以static修饰的变量或方法, 如static int count; 它的意义是让系统分配一个静态空间给这个变量count, 那么包含这个变量的类的全部实例就会共用这个变量, 任何一个改变了count都会对其余的...
  • c# 静态变量与非静态变量区别

    千次阅读 2015-05-23 16:08:31
    c# 静态变量与非静态变量区别 静态变量静态变量使用 static 修饰符进行声明 在所属类被装载时创建 生存周期为应用程序的存在周期 通过类进行访问 所属类的所有实例的同一静态变量都是同一个值(全局变量,被所有类...
  • 静态变量与动态变量

    万次阅读 多人点赞 2018-08-02 20:21:10
    静态变量,全局动态变量都是静态存储 2)动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放 3)静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。通常把由于变量存储方式...
  • 静态变量只存在于函数作用域内,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。下次再调用这个函数的时候,该变量的值会保留下来。 静态的变量的基本用法 1. 在类...
  • 在工具类中,通常会初始化一些单例变量,这些变量由于只会初始一次,并不适合放在构造函数中,因此通常选择在静态代码块中执行,那么在一个类中,就会涉及到静态变量和静态代码块的初始化执行顺序问题。 public ...
  • 静态变量和非静态变量的区别

    千次阅读 2013-09-03 21:33:49
    静态变量和非静态变量的区别: 非静态变量可以有局部变量和全局变量 静态变量实际上就是指在内存中的地址是静态不变的。 1、内存分配:局部变量存储在堆区或者栈区,静态变量和全局变量一样存储在全局区, 静态...
  • SpringBoot使用@Value给静态变量注入值

    万次阅读 多人点赞 2018-07-17 21:34:52
    SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值 例如,application-dev.properties 配置文件有如下配置: 给普通变量赋值时,直接在变量声明之上添加@Value()注解即可,如下所示: ...
  • (类变量)静态变量和实例变量的区别?

    万次阅读 多人点赞 2017-07-21 21:34:29
    静态变量在类中,不属于实例对象,属于类所有,只要程序加载了字节码,不用创建实例对象静态变量就会被分配空间,已经可以使用。 实例变量是某个对象的属性,只有实例化对象后,才会被分配空间,才能使用。 类变量...
  • 局部静态变量:静态区 全局变量: 静态区的常量区 全局静态变量:静态区 在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别:   1、栈区(stack)— 由编译器自动分配...
  • python 类中静态变量 Python类/静态变量 (Python Class / Static Variables) Class or Static variables are class-related variables that are shared among all objects but the instance or non-static variable ...
  • Java 静态类、静态方法和静态变量

    万次阅读 多人点赞 2017-11-06 15:44:52
    转载自Java 静态类、静态方法和静态变量Java 静态类、静态方法和静态变量static 是Java中的一个关键字,我们不能声明普通外层类或者包为静态的。static用于下面四种情况。1.静态变量:我们可以将类级别的变量声明为...
  • static 静态变量加载

    2012-03-09 14:04:50
    statilocal java 静态变量和静态块加载顺序,静态变量和同名静态变量块加载的顺序。
  • kotlin 定义静态变量

    千次阅读 2019-05-08 16:54:30
    Kotlin 取消了关键字static,也就无法直接声明静态成员,在kotlin中定义静态变量需要使用伴生类 companion 先看看下java 的定义 如果直接复制粘贴过去如下 但是这些却不是静态变量 我们如下写法即可 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,131,844
精华内容 452,737
关键字:

静态变量