搜索
写经验 领红包
 > 科技

你有认真想过java中静态方法与非静态方法吗(java静态和非静态)

导语:你有认真想过Java中静态方法与非静态方法的区别吗?

关于java中静态方法和非静态方法的区别,对于面向对象编程语言来说,最本质的区别就是静态方法属于类本身,而非静态方法属于对象。而更好的让大家理解这个区别,我将以一些列子进行演示说明。

1. 什么是静态方法

java静态方法的定义是在普通方法的基础上加上static关键字,java中静态方法又称类方法(静态变量亦然)。

静态方法的定义

2. 如何使用静态方法

静态方法竟然称之为“类方法”,那么静态方法自然是通过类本身来调用。具体形式为:“类名.静态方法名称”。(注意:图中右侧为运行结果)

3. 静态方法和非静态方法的区别

静态方法随线程的创建而存在,随线程的关闭而销毁,而非静态方法是在创建对象时才被引入内存,随对象的销毁而销毁。下面用代码来做二者的简单对比。

注意:静态方法也可以通过"对象.静态方法名称"的方式调用,但是这是一种及其错误的使用方法,因为静态属于类,而不是某一个对象。

4. this关键字的使用问题

在java中,this关键字指向的是当前对象,而super指向的是父类对象,因此在静态方法中不能使用this关键字。我们可以通过例子,来说明this指向当前对象。

上图中,我们可以看到this和当前对象的hashCode值相同,因此可以确定指向的是同一个对象。

新人求关注,谢谢。

本文内容由快快网络小快整理编辑!