JAVA面向对象之静态属性和方法

简介:

在实际软件开发过程中,有的时候希望无论是否产生了对象,或是产生了多少对象,某些特定的数据在内存中只有一份,JAVA中通过static关键字来解决这个问题。

在类内使用关键字static修饰的成员变量和成员方法分别称为静态变量和静态方法,也称为类变量和类方法,而没有static修饰的变量和成员方法称为对象变量和对象方法。

一、静态变量

静态变量的特点是它不是属于某个对象,而是属于整个类的,它们在类被载入时就被创建,只要类存在,static变量就存在,因此静态变量不是保存在某个对象的存储单元中,而是保存在类的公共内存单元中,任何一个类的对象都可以访问、修改它、静态变量一旦被某个对象修改后,则保存修改后的值,直到下次被修改为止。因此,静态变量是共享的。静态变量定义规则如下:

static 类型 变量名;

静态变量可以通过“类名.成员名”的方式直接访问,也可以先创建对象,通过“对象名.成员名”的方式进行访问(不建议)。

二、静态方法

静态方法与静态变量类似,同样是属于类的,调用方式也与静态变量雷同,不再介绍。静态方法在使用时需要注意以下几点:

  1. 在创建对象时,由于非静态方法是属于对象的,所以在对象占用的内存中又该方法的代码。而静态方法是属于整个类的,因此在对象占有的内存中没有该方法。
  2. 在静态方法里只能直接调用类中的其它静态成员。
  3. 静态方法不能以任何形式引用this和super关键字。



目录
相关文章
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
331 18
|
3月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
243 4
|
4月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
183 11
|
3月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
337 5
|
4月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
181 1
|
4月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
4月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
206 0
|
5月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
5月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
503 0
|
5月前
|
存储 Java 数据处理
Java映射操作:深入Map.getOrDefault与MapUtils方法
结合 `getOrDefault`方法的简洁性及 `MapUtils`的丰富功能,Java的映射操作变得既灵活又高效。合理地使用这些工具能够显著提高数据处理的速度和质量。开发人员可以根据具体的应用场景选择适宜的方法,以求在性能和可读性之间找到最佳平衡。
237 0