`

Java静态对象和非静态对象有什么区别??

阅读更多
Java静态对象和非静态对象有什么区别??

静态对象                                                        非静态对象     
是类共同拥有的.                                                  是类独立拥有的,
内存空间上是固定的                                              空间在各个附属类里面分配
先分配静态对象的空间                                            继而再对非静态对象分配空间,也就是初始化顺序是先静态再非静态.


java静态对象和静态属性及静态方法又有什么区别呢?
这三者都和一般的对象属性和方法相似,可以将静态对象看成的静态属性.只不过楼主要注意的是在非静态方法里是不可以使用静态属性的.静态方法里也无法使用非静态属性(是属性不是参数.参数一般是指在方法里临时新建的数值或对象,属性是类声明部分声明的信息).


为什么先声明一个静态对象 static Lefthand left;还要在主函数中再实例化该对象呢left=new Lefthand();?
因为任何对象在使用之前都要进行初始化,new就是进行对象的分配空间后进行初始化.


java静态对象到底有什么好处??
我个人的理解就是静态对象可以让相同类型的类之间共享共同的属性,这个共享是同步的,而且不用new,节省了空间


1、静态对象的数据在全局是唯一的,一改都改。如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法。
2、非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据。
3、静态对象和非静态对象都是对象,是对象都是要实例化的。不同之处就是2者的数据表现和存储方式不一样。
4、静态的好处:
引用方便。对于公用类型的变量,直接用 类名.静态方法名  或者  类名.静态变量名就可引用并且直接可以修改其属性值,不用getter和setter方法。
保持数据的唯一性。此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。
有效减少多余的浪费。
分类: Java[size=xx-large][size=x-large][size=large][size=large][size=medium][/size][/size][/size][/size][/size]
分享到:
评论

相关推荐

    JAVA静态方法和非静态方法的区别和实例.doc

    JAVA静态方法和非静态方法的区别和实例 静态方法和非静态方法是 Java 编程语言中两个基本概念,它们在编程实践中扮演着重要角色。了解它们的区别和使用场景对于编写高效、可维护的代码至关重要。 什么是静态方法?...

    java中静态与非静态的区别

    ### Java中静态与非静态的区别 #### 一、静态类与非静态类 在Java中,**静态类**与**非静态类**有着明显的区别: 1. **成员组成**: - **静态类**只能包含**静态成员**和**静态方法**。这意味着你无法在静态类中...

    Java中静态方法和非静态方法的区别.docx

    Java 中静态方法和非静态方法的区别 Java 作为一种功能强大、可靠性高、跨平台的编程语言,广泛应用于企业级应用开发、移动应用开发、云计算、大数据处理等领域。了解静态方法和非静态方法的区别是 Java 编程的基础...

    java中静态与非静态的变量定义与使用

    在Java编程语言中,变量可以被声明为静态或非静态,这两种类型的变量有着显著的区别,对程序的行为产生重要影响。让我们深入探讨一下静态与非静态变量的定义与使用。 首先,静态变量是属于类级别的,这意味着它们是...

    java静态代码块与非静态代码块.doc

    Java 中的静态代码块和非静态代码块是两个重要的概念,它们在 Java 中的应用非常广泛。下面我们来详细介绍这两个概念。 静态代码块 静态代码块是 Java 中的一种特殊的代码块,它是静态的,意思是说它是属于类的,...

    java静态代码块与非静态代码块参照.pdf

    本文将通过实例代码和详细解释,阐述 Java 静态代码块与非静态代码块的区别和应用场景。 静态代码块 静态代码块是指使用静态关键字修饰的代码块,属于类级别的代码块。它的特点是:在类加载时自动执行的,且只执行...

    java静态内部类(嵌套类)

    ### Java静态内部类(嵌套类)详解 #### 一、静态内部类概念与特性 在Java编程语言中,静态内部类(也被称为嵌套类)是一种特殊的内部类形式,它通过`static`关键字来定义。与普通内部类相比,静态内部类具有以下...

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

    理解静态方法和非静态方法的使用和区别是掌握PHP面向对象编程的关键。 静态方法是通过类名直接调用的,无需创建类的实例。这使得它们在某些情况下非常有用,比如当一个方法不需要访问类的实例变量,或者当需要在类...

    Java面向对象之静态.doc

    - 非静态变量(实例变量)存储在对象的堆内存中,每个对象都有自己的一份副本。 - 静态变量则不同,它们只有一份,被所有对象共享。 #### 三、何时使用静态方法 1. **定义静态方法**: - 如果一个方法在其执行...

    《Java面向对象程序设计(第2版)》课件

    - 内部类(Inner Class):Java支持嵌套类,包括静态和非静态内部类,可以增强代码的组织性和封装性。 - 泛型(Generics):泛型提供类型安全,允许在编译时检查集合元素的类型,减少运行时错误。 3. Java面向...

    Java对象属性数据比较,返回变化数据

    这个方法遍历了给定对象类的所有非静态、非transient属性,获取它们的旧值和新值,然后通过`Objects.equals()`方法比较两者是否相等。如果属性值发生变化,就会将变化记录到结果Map中,其中`DiffResult`是一个自定义...

    java 使用静态成员变量计算内存中实例化的对象数目

    静态变量被所有类的实例共享,而每个实例都有其自己的非静态变量副本。因此,静态变量在内存中只有一份,无论创建了多少个对象,它都不会因实例化而复制。 要使用静态成员变量计算内存中的对象数目,我们通常会在类...

    JNI开发之javah生成静态和非静态的两个头文件区别代码

    例如,对于一个Java类的实例方法,非静态头文件会定义一个接受`JNIEnv*`和` jobject`参数的函数,`JNIEnv`指针用于调用JNI函数,`jobject`则是对Java对象的引用。 2. **静态头文件(-static)**: 使用`-static`...

    java 面向对象面试题

    接口只包含抽象方法和常量,不能有非静态成员变量,类可以实现多个接口;抽象类可以有抽象方法和非抽象方法,类只能继承一个抽象类。 7. **构造函数的作用?** 构造函数用于初始化新创建的对象,通常与类同名且无...

    java面向对象教程(PPT)

    7. **静态与非静态成员**:静态成员属于类,而非静态成员属于类的实例。理解这两者的区别对于有效利用内存和提高程序效率至关重要。 8. **异常处理**:Java的异常处理机制提供了对程序运行时错误的优雅处理方式。`...

    面向对象编程(Java).pdf

    在Java中,静态方法属于类,非静态方法属于对象,静态方法可以直接通过类名调用,而非静态方法需要先创建类的实例后调用。 抽象类和接口是Java中用于定义抽象概念和行为的特殊类型。抽象类可以包含抽象方法,这些...

    java 面向对象扩展编程

    在Java中,静态类不能含有实例变量(非静态变量)和实例方法,因为它们依赖于类的实例。静态类也不能包含非静态内部类,但可以包含静态内部类。静态类在程序启动时会被加载,不需要创建对象,因此在类内部无法使用`...

    LINUX C调用JAVA的静态方法和非静态方法(实例方法)小实例

    在Linux环境中,C语言可以通过Java Native Interface (JNI) 来调用Java的静态和非静态方法,实现两者之间的交互。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互,使得C/C++程序员可以编写...

    Java面向对象程序设计(源代码)

    内部类是嵌套在其他类中的类,可以有静态和非静态两种形式,提供了一种强大的封装机制。 7. **文件与IO流** (chapter13): Java的IO流库允许读写文件,进行数据输入输出操作。这包括字节流和字符流,以及文件流、...

    Java动态绑定和静态绑定.doc

    在Java中,非虚方法(final、private和静态方法)以及构造函数都是静态绑定的。例如: ```java class Animal { void sound() { System.out.println("Animal is making a sound"); } } class Dog extends Animal...

Global site tag (gtag.js) - Google Analytics