码迷,mamicode.com
首页 > 编程语言 > 详细

java基础(static---静态方法和静态变量以及静态方法)

时间:2019-07-05 16:41:12      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:静态内部类   col   情况下   允许   创建对象   microsoft   基础   不同   调用   

静态变量  

  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

java基础(static---静态方法和静态变量以及静态方法)

标签:静态内部类   col   情况下   允许   创建对象   microsoft   基础   不同   调用   

原文地址:https://www.cnblogs.com/skyline1/p/11139180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!