`
lyy3323
  • 浏览: 88787 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java 基础之"实例方法,实例变量,类方法,类变量"

阅读更多
先一一分析一下这几个东东:实例方法,实例变量,类方法,类变量。


实例变量(instance variable):或叫实例域、实例字段(instance field),或叫成员变量(member variable)。实例的变量,每个实例的变量可能不同。

实例方法(instance method):或叫成员方法(member method)。供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。

类变量(class variable):或叫静态域、静态字段(static field),或叫静态变量(static variable)。出现在这样的情况下:一个类的所有实例需要一个公有的属性,比如,一,统计实例个数;二,常量。类变量与类直接关联在一起。内存当中只有一个地方存放这个变量。任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。

类方法(class method):跟类变量的基本特点一样。供类用的方法,可以没有实例,直接通过类来调用类方法。

从形式上看,类变量和类方法,比一般的变量和方法多了一个static修饰符。因为这个原因,类变量和类方法也被叫做静态变量和静态方法。

它们的使用方法:

实例方法可以直接访问实例变量,调用实例方法;
实例方法可以直接访问类变量,调用类方法。但不推荐这么做,原因是不清晰,容易把类变量误认为是实例变量,把类方法误认为是实例方法(借助IDE,它会给出警告信息。);
类方法可以直接调用类变量和类方法;
类方法不能直接调用实例变量和实例方法;
类方法里面不能使用“this”关键字,因为没有实例存在,“this”不知道引用哪个实例。
程序代码:


public class MyClass {
    public static String classVariable = "Class variable.";
    public String instanceVariable = "Instance variable.";

    public static void classMethod() {
        System.out.println("Class method.");
    }

    public void instanceMethod() {
        System.out.println("Instance method.");
    }

    public static void main(String[] args) {
        //call another class method via a class method
        classMethod();

        //call class method via class
        MyClass.classMethod();

        //access class variable via class
        System.out.println(MyClass.classVariable);
        System.out.println(classVariable);

        MyClass instance = new MyClass();
        //call class method via instance reference
        instance.classMethod();
        //access class variable via instance reference
        System.out.println(instance.classVariable);

        //call instance method via instance reference
        instance.instanceMethod();
        //access instance variable via instance reference
        System.out.println(instance.instanceVariable);
    }
}


注意这样一个特殊的情形:如果已有一个类变量,再定义一个方法去操作这个类变量。那么此方法可以不加static修饰符,本质上仍然是一个类方法。但是,现在就只能通过该类的一个实例,才能调用这个方法了。(这是典型的吃多了没事干。仅存活于某些笔试,面试题中。)
分享到:
评论

相关推荐

    Java基础编程实例

    3. **类与对象**:Java是一种面向对象的语言,所以理解类的定义、对象的创建、成员变量和方法、构造函数以及封装、继承和多态等面向对象特性至关重要。 4. **字符串处理**:Java中的String类是不可变的,提供了许多...

    Java实例变量、类变量、局部变量

    ### Java实例变量、类变量、局部变量详解 #### 一、实例变量(对象变量、类成员变量) 实例变量,也称为对象变量或类成员变量,是定义在类中的非静态变量。它们没有使用`static`关键字修饰,并且是类的一个组成...

    Java中实例变量与类变量测试的代码清单.pdf

    在Java编程语言中,类的成员变量...总之,Java 中的实例变量和类变量是对象状态和共享数据的关键元素,理解它们的概念和使用方式是成为熟练 Java 开发者的基础。正确地使用这些变量可以帮助构建健壮、可维护的代码。

    java继承类实例

    在Java编程语言中,继承是一种面向对象编程的重要特性,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。这有助于代码重用,减少冗余,并实现多态性。在这个特定的程序中,我们看到了一个关于...

    JAVA类的方法调用和变量

    类方法(静态方法)同样不需要实例化对象就可以调用,它们不能访问实例变量,因为实例变量是与对象关联的。 在 Java 中,类的访问修饰符包括: - **Public**:公共的,可以在任何地方访问。 - **Abstract**:抽象...

    类变量和实例变量.txt

    在面向对象编程中,尤其是在Java这样的语言里,类变量(也称为静态变量)和实例变量是两个重要的概念。它们都存储了对象的状态信息,但有着本质的区别。 - **实例变量**:实例变量是在每个对象创建时为其分配内存...

    java类与对象实例

    在 Java 中,类可以分为预定义类和自定义类,变量可以分为四种:类变量、实例变量、局部变量和块变量。理解这些概念对于学习 Java 语言非常重要。 Java 语言是一种面向对象的语言,它提供了许多有用的功能和特性,...

    Java类变量和方法.doc

    `static`修饰的方法是类方法,它在类加载时就被初始化,不依赖于类的实例,可以直接通过类名调用,但不能访问实例变量。实例方法则可以访问类变量和实例变量,可以操作对象的状态。方法重载允许在同一类中定义多个...

    java变量命名心得

    实例变量是指在类内部定义的变量,但不在任何方法内部,它的作用域是整个类。 在上面的实例中,我们定义了一个名为 `Scope` 的类,该类有三个变量:`x`、`y` 和 `z`。其中,`x` 和 `y` 是实例变量,而 `z` 是静态...

    Java语言基础实例

    Java语言基础实例是针对初学者精心设计的一系列编程示例,旨在帮助新手快速掌握Java编程的基本概念和常用语法。在这些实例中,你将学习到Java语言的核心特性,包括数据类型、控制结构、函数、类与对象等。下面将详细...

    java 常量 变量 详细实例

    Java中的变量有三种类型:局部变量、成员变量(包括实例变量和静态变量)和全局变量。 1. **局部变量**:在方法、构造器或块内部定义的变量,仅在该范围有效。 2. **实例变量**:属于类的每个对象实例,每个实例都...

    JAVA基础实例200题.rar

    这些实例覆盖了Java语言的各个核心概念,包括但不限于变量、数据类型、运算符、流程控制、数组、类与对象、继承、接口、异常处理、集合框架、多线程、输入输出流等。通过解决这些实例中的问题,你可以系统地提升自己...

    java基础知识运用实例

    2. **类与对象**:Java是一种面向对象的语言,类是对象的蓝图,包含属性(成员变量)和方法(成员函数)。实例化类创建对象,通过对象调用方法和访问属性。 3. **封装**:封装是面向对象的三大特性之一,它隐藏类的...

    Agile Java 习题3,4--类方法和类变量

    本话题将深入探讨Agile Java中的类方法和类变量,这些是面向对象编程的基础概念,对于理解和编写高质量的Java代码至关重要。 类方法和类变量是Java类的核心组成部分。在Java中,类是创建对象的蓝图,它定义了对象的...

    Java基础应用实例

    "Java基础应用实例"这个主题旨在为初学者提供一系列实用的示例,帮助他们理解和掌握Java编程的基本概念。这些实例覆盖了从简单的数据类型、控制结构到面向对象编程的各个方面,为初学者提供了实践和探索的平台。 1....

    再发一些Java对象、Java类学习实例.rar

    在Java编程语言中,对象和类是核心概念,它们构成了面向对象编程的基础。在这个"Java对象、Java类学习实例.rar"压缩包中,你可能会找到一系列针对初学者的实例,帮助理解这两个概念。 首先,我们要了解Java中的对象...

    java 使用类作为成员变量

    在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...

    Java成员变量局部变量静态变量成员方法全局方法等概念的区

    成员方法可以访问和修改类的实例变量,也可以调用其他成员方法。成员方法可以是实例方法(非静态)或静态方法。实例方法必须通过对象调用,而静态方法可以通过类名直接调用。 5. 全局方法(Global Methods): 在...

    java入门实例代码

    "Java入门实例代码"是针对初学者设计的一系列教程,旨在帮助新手快速掌握Java SE(Java Standard Edition)的基础知识。Java SE是Java的核心部分,包含了开发桌面应用、网络应用和移动应用所需的所有工具和API。 在...

    Java成员变量类变量局部变量的区别共5页.pdf.zip

    Java编程语言中有三种主要的变量类型:成员变量(也称为实例变量)、类变量(也称为静态变量)和局部变量。理解这些变量之间的区别是学习Java基础的重要部分,这对于编写高效、可维护的代码至关重要。 1. 成员变量...

Global site tag (gtag.js) - Google Analytics