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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值