Java中静态关键字的使用方法介绍三
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中静态关键字的使用方法介绍三相关的知识,希望对你有一定的参考价值。
1.1 静态方法main()的解析
1.1.1 静态方法main()的语句组成
在我们使用java语言进行编程中,常常用到要一个main()函数,这是一个程序的入口,是整个程序中最为重要的部分之一。通常,main函数按照以下格式进行书写。
public static void main(String[] args) { }
我们发现main()函数前面存在静态修饰符Static那说明main函数就是一个静态方法。那么这个main函数语句到底由什么组成呢?下面我们就来分析一下main函数语句的组成。
1、 关键字public,这代表main函数的权限是最大的“public”。
2、 关键字static,这代表main函数是一个静态方法。
3、 关键字void,这代表main函数没有返回值。
4、 main,这代表函数名,不可更改。更改后就不在是主函数,而是自定义方法。
5、 String[],这代表main函数的参数类型是字符型数组
6、 args,这是参数名,也是主函数中唯一能够修改的。
1.1.2 args到底是什么?
main()主函数在运行过程中,Java虚拟机会往main()主函数传递参数,那么java虚拟机到底传递了什么样的参数?为了弄清楚这个问题,我们需要修改一下main主函数,还是以Car类作为例子:
public class Car { public static void main(String[] args) { System.out.println(args); System.out.println("args数组长度为:"+args.length); } }
运行结果如下:
[Ljava.lang.String;@98385c
args数组长度为:0
现在来分析一下运行结果,第一行中“[Ljava.lang.String”表示对象的类型为字符串数组,“@98385c” 表示对象的哈希值。第二行表示args数组的长度为0。也就是说java虚拟机向main函数中传递了一个数组为长度为0的字符串数组。
1.2 静态方法怎么样调用方法?
在前面我们介绍了静态方法main(),在静态方法main()中常常需要调用各种方法,这其中包括静态方法和非静态方法。对于这两种方法,静态方法main()如何调用。当我们需要调用的方法是静态方法时,非常简单,直接调用即可,以下面代码为例:
public class Car { public static void stop() { System.out.println("汽车停了下来。"); } public staticvoid main(String[] args) { stop(); } }
运行结果如下:
汽车停了下来。
如果main()函数调用非静态方法时,应该如何使用?首先我们将静态stop()改为非静态方法,看看会出现什么情况。代码如下:
public class Car { public void stop() { System.out.println("汽车停了下来。"); } public staticvoid main(String[] args) { stop(); } }
编译时会发现报错。
报错内容:Cannotmake a static reference to the non-static method stop() from the type Car
这说明当一个方法不是静态方法时,静态方法main()不能够直接调用。那么该如何调用非静态方法呢?我们将代码按照以下方式修改。
public class Car { public void stop() { System.out.println("汽车停了下来。"); } public staticvoid main(String[] args) { newCar().stop(); } }
运行结果如下:
汽车停了下来。
这说明,静态方法main()可以通过构建对象来调用非静态方法。那么如果不是main()主函数还是一般静态方法是不是一样可以调用非静态方法呢?我们以一下代码为例。
public class Car { voidrun(){ System.out.println("汽车开动!"); } public static void stop() { System.out.println("汽车停了下来。"); newCar().run(); } public static void main(String[] args) { stop(); } }
运行结果如下:
汽车停了下来。
汽车开动!
从运行结果我们可以得知,普通静态方法与main()方法通过一样的方式来调用非静态方法。
本文出自 “菜鸟进阶” 博客,转载请与作者联系!
以上是关于Java中静态关键字的使用方法介绍三的主要内容,如果未能解决你的问题,请参考以下文章