java中什么叫静态方法,java静态类和静态方法

  java中什么叫静态方法,java静态类和静态方法

  

  什么是java静态

  java静态包括静态变量、静态方法、静态初始化块,以下为静态详解。(推荐教程:java教程)

  1. 什么是静态变量

  众所周知,我们可以基于同一个类创建一个类的多个对象,每个对象都有自己的成员,彼此独立。

  然而,在某些时候,我们更希望这个类的所有对象共享同一个成员。至此,静显身手的时候到了!

  Java中用static修饰的成员称为静态成员或类成员。它属于整个类,而不是一个对象,即由类的所有对象共享。

  静态成员可以通过类名或对象名直接访问。当然,鉴于他角色的特殊性,更建议按类名访问。

  使用static来修饰变量、方法和代码块。

  公共类Test1 {

  //static修饰的变量是静态变量,类的所有对象共享爱好。

  静态字符串爱好= Tedu

  公共静态void main(String[] args) {

  //不用创建对象,直接使用类名就可以访问静态变量。

  system . out . println( Access Hobby by Class Name: test1 . Hobby );

  //创建类的对象

  Test1 t1=new Test1();

  //使用对象名访问静态变量

  System.out.println(用对象名访问爱好: t1 . Hobby );

  //以对象名的形式修改静态变量的值

  t1.hobby= cjj

  //使用类名再次访问静态白色变量,值已被修改。

  system . out . println( Access Hobby by Class Name: test1 . Hobby );

  }

  }运行结果:

  访问爱好:按班级名称Tedu

  使用对象名称来访问爱好:Tedu

  访问爱好:cjj按类名注:

  静态成员属于整个类。当系统第一次使用该类时,会为其分配内存空间,直到该类被卸载,资源才会被回收!

  2. static 使用之静态方法

  和静态变量一样,我们也可以用静态来修饰方法,我们称之为静态方法或类方法。

  其实我们之前一直在写的主要方法是静态方法。

  公共类Test01 {

  //使用static关键字声明静态方法

  公共静态void print() {

  System.out.println(欢迎:Cjj!);

  }

  公共静态void main(String[] args) {

  //用类名直接调用静态方法

  test 01 . print();

  //也可以通过对象名调用。当然,更建议用类名来称呼。

  test 01 t1=new test 01();

  t1 . print();

  }

  }复制代码

  欢迎:Cjj!

  欢迎:Cjj!注意:

  1.在静态方法中,可以直接调用同类的静态成员,但不能直接调用非静态成员。比如:

  如果要在静态方法中调用非静态变量,可以通过创建类的对象来访问非静态变量,然后通过对象来访问它。比如:

  2.在普通成员方法中,你可以直接访问同一类非静态变量和静态变量,比如:

  3.非静态方法不能在静态方法中直接调用,但需要通过对象访问。比如:

  公共类Test01 {

  String name= Cjj//静态成员变量

  静弦爱好=‘学习’;//非静态成员变量

  //普通成员方法

  公共void print1() {

  System.out.println(普通成员方法~ ~ ~ );

  }

  //静态成员方法

  公共静态void print2() {

  System.out.println(静态成员方法~ ~ ~ );

  }

  公共静态void main(String[] args) {

  //普通成员方法必须通过对象调用

  test 01 t1=new test 01();

  t1 . print 1();

  //可以直接调用静态方法

  print 2();

  }

  }3. static 使用之静态初始化块

  在Java中,可以通过初始化块来分配数据。比如:

  公共类Test02 {

  字符串名称;//定义成员变量

  //通过初始化块为成员变量赋值

  {

  name= cjj

  }

  }依次执行这些代码块。如果初始化块是用static修饰的,就叫静态初始化块。

  注意:

  静态初始化块只在类被加载时执行,并且只执行一次。同时,静态初始化块只能给静态变量赋值,不能初始化普通成员变量。

  让我们来看一段代码:

  公共类Test02 {

  int num1

  int num2

  静态int num3

  public 02(){//构造方法

  num1=11

  System.out.println(通过构造方法给变量num1赋值);

  }

  {//初始化块

  num2=22

  System.out.println(通过初始化块给变量num2赋值);

  }

  静态{//静态初始化块

  num3=33

  System.out.println(通过静态初始化块给静态变量num3赋值);

  }

  公共静态void main(String[] args) {

  test 02 t1=new test 02();//创建一个对象

  system . out . println( num 1: t1 . num 1 );

  system . out . println( num 2: t1 . num 2 );

  system . out . println( num 3: num 3 );

  }

  }运行结果:

  通过静态初始化块给静态变量num3赋值。

  通过初始化块给变量num2赋值。

  通过构造方法给变量num1赋值。

  num1:11

  数量2:22

  Num3:33通过输出结果我们可以看到,程序运行时,首先执行静态初始化块,然后执行普通初始化块,最后执行构造方法。因为静态初始化块在类加载时只执行一次,所以当再次创建对象hello2时,静态初始化块不会执行。

  类在第一次使用时被加载,加载后不会被移除。java静态细节就是这样。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: