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

static修饰符的使用

阅读更多

static修饰符能修饰内部类,方法,变量,代码块。

静态 成员意味着该成员属于类级,而不依赖于类的实例,也不依赖于任何一个类的成员,可以不通过创建类的实例来使用静态成员。

静态变量在类被加载入时初始化,一个类只有一个静态变量的内存空间,而不会依赖于对象再次分配空间。局部变量不能被声明为静态变量。

静态方法只能访问静态变量(静态方法没有this变量)。静态方法只能被重写成静态的,不能被重写成非静态的。非静态方法不能重写成静态的。

例子:

以下为没有使用静态方法的:

public class d
{
 public static void main(String args[]) 
 {
  Child c=new Child();
  c.doStuff();
  Parent p=new Parent();
  p.doStuff();
  p=c;
  p.doStuff();
  Parent a=new Child();
  a.doStuff();
  a.x=11;
  a.doStuff();
  p.doStuff();
  Parent b=new Parent();
  b.doStuff();
 }
}

class Parent
{
 Parent(){System.out.println("Parent init~~~");}
 int x=100;
 public void doStuff()
 {
  System.out.println("Parent~!~!~");
  System.out.println(x);
 }
}
class Child extends Parent

 Child(){System.out.println("Child init~~~");}
 int x=200;
 public void doStuff()
 {
  System.out.println("Child~!~!~");
  System.out.println(x);
 }
}

输出结果为:

Parent init~~~
Child init~~~
Child~!~!~
200
Parent init~~~
Parent~!~!~
100
Child~!~!~
200
Parent init~~~
Child init~~~
Child~!~!~
200
Child~!~!~
200
Child~!~!~
200
Parent init~~~
Parent~!~!~
100

而当使用静态方法时:

public class d
{
 public static void main(String args[]) 
 {
  Child c=new Child();
  c.doStuff();
  Parent p=new Parent();
  p.doStuff();
  p=c;
  p.doStuff();
  Parent a=new Child();
  a.doStuff();
  a.x=11;
  a.doStuff();
  p.doStuff();
  Parent b=new Parent();
  b.doStuff();
 }
}

class Parent
{
 Parent(){System.out.println("Parent init~~~");}
 static int x=100;
 public static void doStuff()
 {
  System.out.println("Parent~!~!~");
  System.out.println(x);
 }
}
class Child extends Parent

 Child(){System.out.println("Child init~~~");}
 static int x=200;
 public static void doStuff()
 {
  System.out.println("Child~!~!~");
  System.out.println(x);
 }
}

输出结果为:

Parent init~~~
Child init~~~
Child~!~!~
200
Parent init~~~
Parent~!~!~
100
Parent~!~!~
100
Parent init~~~
Child init~~~
Parent~!~!~
100
Parent~!~!~
11
Parent~!~!~
11
Parent init~~~
Parent~!~!~
11

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics