Java基础--关于static的变量和方法使用的一些不解

来源:互联网 发布:郑州平面设计美工培训 编辑:程序博客网 时间:2024/05/23 19:03

    有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main(),所以它被声明为static。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制:
1.它们仅能调用其他的static 方法。
2.它们只能访问static数据。 它们不能以任何方式引用this 或super(关键字super与继承有关)。

                                                   ——这是来自百度文库里以前文章的叙述,关于main的静态说法仍不是很明白

这里借一本Java基础教材出上的关于对static的一些讲解继续学习。

被声明为static的变量,常量,方法被称为静态成员。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员,语法格式如下:

类名.静态类成员

创建StaticTest类,来调用静态成员并加以理解:

该类的主方法调用静态成员并在控制台中输出

public class StaticTest {    static double PI = 3.1415;           //在类中定义静态常量    static int id;                                  //在类中定义静态变量    public static void method1() {          //在类中定义静态方法    }    public void method2() {                      //在类中定义一个非静态方法        System.out.println(StaticTest.PI);         //调用静态常量        System.out.println(StaticTest.id);         //调用静态方法        StaticTest.method1();                        //调用静态方法    }}

静态方法同样遵循权限修饰符的规则。

在Java语言中规定不能将方法体内的局部变量声明为static。

而关于main的static,只能是先认定是main作为一个特殊的程序入口,在程序执行时必须先来分配内存,所以将其定义为static,但其可以调用非静态的成员。

在main中访问非静态的成员需要先对成员进行实例化,然后通过 对象名 . 方法或成员名的形式来调用。

 

0 0
原创粉丝点击