zoukankan      html  css  js  c++  java
  • java基础(static---静态方法和静态变量以及静态方法)

    静态变量  

      static变量也称作静态变量,静态变量和非静态变量的区别是:

        静态变量:静态变量被类中所有的对象所共享,它将变量值存储在一个公共的内存地址,因为地址公共,所以如果某个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响。

        非静态变量:非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

    静态方法

      静态变量和方法可以在不创建对象的情况下进行访问。

      静态方法与实例方法的区别:

        静态方法:静态方法会随着类的定义而被分配和装载入内存中。静态方法可以调用静态方法以及访问静态数据域,但静态方法不能调用实例方法或者访问实例数据域。

        实例方法:只有在类的对象创建时在对象的内存中才有这个方法的代码段。实例方法可以调用实例方法和静态方法,以及访问实例数据域或者静态数据域。

     如何判断变量或者方法是实例还是静态?

      如果一个变量或方法依赖于类的某个实例,就应该将它定义为实例变量或实例方法。反之,就定义为静态变量或静态方法。

    静态类

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

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

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

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

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

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

      参考链接:https://www.cnblogs.com/kungfupanda/p/7239414.html

  • 相关阅读:
    Cocostudio学习笔记(2) Button + CheckBox
    Oracle会话及连接数优化
    linux zip压缩和解压的各种操控
    Linux select 机制深入分析
    算法的时间复杂度
    findmaven的英文版本号上线了
    XML高速入门
    spring xml properties split with comma for list
    There is an error in invoking javac. A full JDK (not just JRE) is required
    [Swift]LeetCode134. 加油站 | Gas Station
  • 原文地址:https://www.cnblogs.com/skyline1/p/11139180.html
Copyright © 2011-2022 走看看