`
zhlx2835
  • 浏览: 11817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

静态方法

    博客分类:
  • java
阅读更多

 成员变量随着对象创建而创建,对象存在,成员变量才存在,每个对象都各自拥有自己的成员变量

例:在main方法中使用Stu的成员变量name,必须先初始对象(先创建对象)

publicclass Stu {

    intage

    publicstaticvoid main(String[] args) {

        //创建对象1

        Stu s1=new Stu();

        //创建完对象后,才能使用对象s1的成员变量age

        s1.age=12;

        //只能通过对象名s1输出age的值

        System.out.println(s1.age);

       

        //输出匿名对象的age默认值

        System.out.println("匿名对象age的值:"+new Stu().age);

    }

}

 

4.2)静态变量也叫类变量,随着类存在而存在,每个类有一份,所有实例对象共享,在一个对象中修改了静态变量的值,就等于修改了其他所有对象中该静态变量的值.static修饰符来声明一个静态变量.和一个静态常量,如: 

Java代码  

publicclass Stu {

    staticintage

    publicstaticvoid main(String[] args) {

        //创建对象1

        Stu s1=new Stu();

        s1.age=12;

        System.out.println(s1.age); //输出对象s1的值为12;

       

        Stu s2=new Stu();

        //输出对象s2的值为12?因为静态变量age被所有实例对象共享,s1对象赋值age后,所有对象的age值都是12

        System.out.println(s2.age);

        s2.age=20;

        //输出对象s2的值为20

        System.out.println(s2.age);

        //输出对象s1的值为20?对象s2修改了静态变量age的值,就等于修改了其他所有对象中该静态变量age的值

        System.out.println(s1.age);

       

    }

 

}

4.3静态变量的内存空间是在程序中第一次使用该变量所在的类时分配的,所以静态变量可以通过类名直接调用。

 

publicclass Stu {

    staticintage

    publicstaticvoid main(String[] args) {

        //直接通过类名对age赋值

        Stu.age=12;

        System.out.println(Stu.age); //所有的对象值都赋为12,直接通过类名输出所有对象的age

        System.out.println(new Stu().age); //也可以通过对象输出age的值

    }

}

 


 
备注:1、方法内的局部变量不能声明为静态的,因为程序无法知道什么时候会调用该方法. 

 2、在使用final修饰符声明常量时,通常会使用static进行再次声明.因为常量的值是不可变的,索性就让它们当做类的所有对象所共享的唯一值. 

4.3)在同一个类中,静态变量只能被静态方法直接调用;而成员变量可被所有的方法直接调用

0
1
分享到:
评论

相关推荐

    C#静态方法与非静态方法的比较

    ### C#静态方法与非静态方法的比较 在C#编程语言中,静态方法与非静态(实例)方法是两种非常重要的方法定义方式。这两种方法各有特点,在不同的场景下使用可以带来不同的效果。 #### 一、概念理解 **1. 静态方法...

    (js)静态与非静态方法

    在JavaScript中,静态方法与非静态方法是面向对象编程中的两个基本概念,它们在类的定义和实例化过程中扮演着重要角色。理解这两者之间的区别对于编写高效、可维护的代码至关重要。 ### 静态方法 #### 定义 静态...

    Springboot Thymeleaf模板文件调用Java类静态方法

    方法名(参数)}”这种格式来调用Java类的静态方法。 开发环境:IntelliJ IDEA 2019.2.2 Spring Boot版本:2.1.8 新建一个名称为demo的Spring Boot项目。 1、pom.xml 加入Thymeleaf依赖 <groupId>org.spring...

    PHP中静态方法(static)与非静态方法的使用及区别.docx

    1. 调用方式:静态方法通过类名直接调用,非静态方法需要先创建对象再调用。 2. 存储方式:静态属性是类级别的,所有实例共享;非静态属性是对象级别的,每个实例有自己的副本。 3. 访问限制:静态方法和属性不能...

    利用PowerMock模拟静态方法和私有方法的示例

    然而,有些情况下,正常的单元测试框架可能无法覆盖到所有的情况,比如静态方法和私有方法的测试。这时,我们就需要引入特殊的工具,如PowerMock。本文将详细介绍如何利用PowerMock来模拟静态方法和私有方法,以便...

    Java中的Static块与静态方法

    本文将深入探讨Java中的静态块与静态方法,解析它们的区别、联系以及执行顺序,帮助读者更全面地理解`static`关键字在Java中的运用。 ### 静态方法 静态方法是通过`static`关键字声明的,它属于类而不属于类的任何...

    【C# winform 代码】类的静态成员及静态方法

    Microsoft Visual Studio 2010做的C# winform类的静态成员及静态方法,主要代码: public class Student { private int IDBase = 20080000; private int ID; public static int StudentNumber; public string ...

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...

    EXT dojochina Ext类静态方法.rar

    EXT dojochina Ext类静态方法是一个关于EXT框架在JavaScript中的使用的主题,主要聚焦于Ext类的静态方法。EXT是一个强大的前端开发框架,由Sencha公司开发,它提供了丰富的组件库,用于构建复杂的Web应用程序。在EXT...

    JMOCKIT mock 静态方法 单元测试

    可以用来Mock JAVA代码中的静态方法

    从JVM内存管理的角度谈谈静态方法和静态属性

    静态方法内不能直接访问非静态(实例)属性,因为这些属性属于特定对象,而静态方法没有隐含的对象引用。 非静态方法(实例方法)则包含一个隐含的参数,即对象实例的引用,这个引用在栈中存储。当调用非静态方法时...

    通过反射调用静态方法

    本文将详细讲解如何通过反射调用静态方法,并探讨在特定场景下,如MyBatis中的应用。 首先,理解反射的概念是至关重要的。在Java中,反射API(java.lang.reflect)允许我们获取类的信息,包括类名、构造函数、方法...

    jni调用java静态方法

    在上面的代码中,`FindClass()`用于获取Java类的`jclass`对象,`GetStaticMethodID()`用于获取静态方法的ID,最后`CallStaticVoidMethod()`执行静态方法。注意检查可能的错误,如找不到类或方法,并处理可能出现的...

    静态方法同步 与 非静态方法同步

    本篇文章将深入探讨“静态方法同步”与“非静态方法同步”的差异、应用场景以及它们如何影响程序的并发性能。 首先,我们来了解什么是同步。在Java中,同步是通过`synchronized`关键字实现的,它用于确保同一时间...

    静态成员与静态方法

    静态成员与静态方法 静态成员变量是一种特殊类型的成员变量,它可以在不创建类的对象的情况下使用,並被所有该类的实例所共享。静态成员变量的特点是,它可以在不创建类的对象实例的情况下使用,並且所有该类的实例...

    【Flutter】Dart 面向对象 ( get 方法 set 方法 静态方法 ).zip

    【Flutter】Dart 面向对象 ( get 方法 | set 方法 | 静态方法 ) https://hanshuliang.blog.csdn.net/article/details/113883540 博客源码快照

    静态方法,静态成员变量的调用

    在Java编程语言中,静态方法和实例方法是两种不同类型的成员,它们在使用和功能上有所区别。静态方法是属于类级别的,而实例方法是属于对象级别的。理解这两种方法的特性对于编写高效的代码至关重要。 首先,调用...

    静态(static)方法重写(override)

    当涉及到静态方法时,我们通常不会说“重写”,而是更倾向于使用“隐藏”这一术语来描述子类与父类之间静态方法的关系。 #### 二、静态方法与重写详解 1. **静态方法的特点** - **类级别的访问**:静态方法可以...

    20.静态方法.zip

    20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20.静态方法.zip20....

    C#中静态与非静态方法比较

    ### C#中静态与非静态方法的深入解析 #### 引言 在C#编程语言中,静态方法和非静态方法是两种常见的方法类型。它们各自具有独特的特性和用途,在不同的场景下发挥着不可替代的作用。本文将从多个角度详细探讨这两...

Global site tag (gtag.js) - Google Analytics