Java面向对象中 static关键字的详解

简介: Java面向对象中 static关键字的详解

static的使用

  1. static:静态的
  2. static可以用来修饰:属性,方法,代码块,内部类
  3. 使用static修饰属性:静态变量(或类变量)
    3.1属性:按照是否使用static修饰,又分为:静态属性和非静态属性(实例变量)
    实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中的同样的属性值修改。
    静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其它对象调用此静态变量时,是修改过了的。
    3.2.static修饰属性的其他说明:
    1.静态变量随着类的加载而加载,可以通过’'类.静态变量"的方式进行调用。
    2.静态变量的加载要早于对象的创建。
    3.由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。
  4. 使用static修饰方法:静态方法
    4.1.随着类的加载而加载,可以通过"类.静态方法"的方式去调用。
    4.2. 静态方法 非静态方法
    类 yes no
    对象 yes yes
    4.3.静态方法只能调用静态的方法或属性
    非静态方法,既能调用非静态的方法或属性,也能调用静态的方法或属性。
  5. 注意事项
    5.1.在静态的方法内,不能使用super,this关键字
    5.2.关于静态属性和静态方法,从生命周期的角度去理解。
  6. 开发中,如何确定一个属性是否要声明为static的?
    –>属性是可以被多个对象所共享的,不会随着对象的不同而不同。
    –>类中的常量也常常声明为static
    开发中,如何确定一个方法是否要声明为static的?
    –>操作静态属性的方法,通常设置为static的。
    –>工具类中的方法:习惯上声明为static的,比如Math,Arrays,Collections

共勉:每一发奋努力的背后,必有加倍的赏赐。


目录
相关文章
|
4天前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
11 4
|
5天前
|
存储 Java
Java之静态(static)与实例(instance)
Java之静态(static)与实例(instance)
|
4天前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
19天前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
34 2
|
7天前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
15天前
|
Java 开发者
Java编程之旅:探索面向对象的力量
【9月更文挑战第16天】在编程的世界中,Java以其强大的面向对象编程特性而闻名。本文将带你走进Java的世界,一起探索类与对象的奥秘,学习如何通过封装、继承和多态性构建健壮的软件系统。无论你是初学者还是有经验的开发者,本文都旨在提供实用的代码示例,帮助你提升Java技能。准备好开始这段旅程了吗?让我们启程吧!
|
4月前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
28 0
|
5月前
|
安全 Java 编译器
Java多线程基础-6:线程安全问题及解决措施,synchronized关键字与volatile关键字(一)
线程安全问题是多线程编程中最典型的一类问题之一。如果多线程环境下代码运行的结果是符合我们预期的,即该结果正是在单线程环境中应该出现的结果,则说这个程序是线程安全的。 通俗来说,线程不安全指的就是某一代码在多线程环境下执行会出现bug,而在单线程环境下执行就不会。线程安全问题本质上是由于线程之间的调度顺序的不确定性,正是这样的不确定性,给我们的代码带来了很多“变数”。 本文将对Java多线程编程中,线程安全问题展开详细的讲解。
82 0
|
5月前
|
存储 安全 Java
【亮剑】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制
【4月更文挑战第30天】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制。`ThreadLocal`为每个线程提供独立变量副本;`Volatile`确保变量可见性,但不保证原子性;`Synchronized`实现同步锁,保证单线程执行;`Atomic`类利用CAS实现无锁并发控制。理解其原理有助于编写高效线程安全代码。根据业务场景选择合适机制至关重要。
36 0