java使用当前类的方法 java当前对象是什么意思_java使用当前类的方法

Java 是一门面向对象的编程语言,以前听过这样一句话:一切皆对象。可见,对象在 Java 语言中是非常非常重要。那么,Java 中的对象到底是怎么回事儿呢?

在 Java 中,对象通常包括实例变量方法两种属性。

实例变量是对象本身已知的事物,它代表对象的一种状态(数据),并且同一个类型的多个对象都独立地拥有这些状态。从这个角度来看,我们也可以把对象看作是类的一个实例。

方法就是对象可以执行的动作。通常我们在构造一个类时,我们除了要初始化类的状态,我们还要构造出可以操作这种状态的方法。

举个例子:

public class DogTestDriver {
     public static void main(String[] args) {
         Dog dog = new Dog(); // 这里通过狗类 new 出了一个对象 dog
         dog.size = 40; // 已知的大小为 40,size 就是 dog 这个 dog 对象其中一个实例变量
         dog.bark(); //  bark 表示狗“吠”的动作,也就是 dog 这个对象的方法
     }

     // 编写一个狗类
     static class Dog {
         int size;
         String breed;
         String name;

         void bark () {
             System.out.println("Ruff! Ruff!");
         }
     }
}

需要注意的是,虽说 Java 中一切皆对象,但是几乎所有对象都是通过某个类的模型构造出来的。也就是说,类和对象是不可分割的,不过类和对象还是有区别的。

那么,类和对象究竟有什么不同呢?

类不是对象,类是用来构造对象的。当我们通过类 new 出该类的一个实例(对象)时,类就需要告诉虚拟机要如何创建我这个类的对象。我们可以将类视为一张设计图纸,在创建对象时,虚拟机不是时按照图纸的规定把实物做出来而已。

举个例子,当我们有一个按钮类,我们就可以通过这个按钮类创建出很多大小、颜色、形状各不相同的按钮。

我们有必要了解的是,程序代码都是 main() 方法中是不合适的。简单的测试用例可能无伤大雅,但是一旦程序复杂起来,那么势必是需要让对象和对象之间相互交互的。在这种需要对象间交互的情形,要是再把所有代码都放在 main() 方法中,程序的任何一点小改动都需要重新测试整套代码,要是代码量很大,这个过程将是灾难性的。

实际上,程序都放在 main() 方法中不是面向对象编程的思想,而 Java 语言是面向对象的语言。所以,我们在使用 Java 进行编程时,拥有面向对象编程的思想是异常重要的。

以我现在的理解,我能够想到的就是,无论什么时候编写 Java 程序,我们就刻意将所有东西对象化。比如,桌子是对象、电影是对象、狗是对象、一本书是对象...然后再去考虑这些对象都有哪些已知的状态,比如,桌子是方的、电影时长 120 min、狗毛是黄色的...除此之外,还要考虑这些对象都能够干什么,就像上面那个 dog 对象,这个 dog 对象就能 bark (吠)。

关于创建对象的知识 tips

所有对象的创建都发生在堆内存(关于内存模型,后面我们找机会详细聊下)中,并且这个堆是可回收垃圾的对内存。Java 的垃圾回收机制也是我们后面需要熟悉的,总的来说,Java 会根据对象的大小来分配堆内存空间。比如说,拥有 15 个实例变量的对象所获分配的空间就可能比只拥有 2 个实例变量的对象所获空间大。Java 对象是被使用完成后,Java 的垃圾回收机制会自动帮助我们清理内存。

大体上是这样的,当某个对象被 Java 虚拟机察觉到不会再被使用了,这时 Java 虚拟机会将这个对象标记为是可回收的。一旦内存紧张,垃圾收集器就会开始工作,清理垃圾,以便腾出内存空间投入再使用。

总结一下:

1、Java 是面向对象的程序语言,面向对象编程思想是非常重要的

2、真正的 Java 程序都是对象间的交互

3、面向对象设计拓展程序功能无需改动之前已经测试好的代码

4、所有的 Java 程序都定义在类中,类是对象的设计图纸

5、对象都有实力变量(状态)和方法(可执行动作)两种属性

这次只是一个简单的介绍,如果觉得对你有帮助到,记得点个赞再走哟~