Java变量的初始化以及静态方法

Posted 海南之风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java变量的初始化以及静态方法相关的知识,希望对你有一定的参考价值。

1.变量初始化

 1 package treat;
 2 class InitializeBlockClass
 3 {
 4     public int field=100;
 5     {
 6         field=200;
 7     }
 8     public InitializeBlockClass(int value)
 9     {
10         this.field=value;
11     }
12     public InitializeBlockClass()
13     {
14         
15     }
16 }
17 
18 public class treat {
19     public static void main(String args[])
20     {
21         InitializeBlockClass obj=new InitializeBlockClass();
22         System.out.println(obj.field);
23         obj=new InitializeBlockClass(300);
24         System.out.println(obj.field);
25     }
26 }

 

 在main函数中第一次输出是200,第二次是300,这是因为第一次调用的是默认构造函数,而类中的变量在之前已经初始化,而构造函数并不能改变变量的值所以变量值是初始化框里的200,第二次调用了带参数的构造函数,构造函数直接将值返回,就算构造函数在前输出的值也一样都是300.

2.如何在静态方法中调用非静态方法和字段

 1 package treat;
 2 
 3 public class treat {
 4     
 5     public int dg=0;
 6     void fun()
 7     {
 8         System.out.println("hello world!!");
 9     }
10     static void play(treat a)//通过形参传递对象实现非静态方法的调用
11     {
12         a.fun();
13         a.dg=8;//调用对象改变非静态字段的值
14         System.out.println(a.dg);
15     }
16     public static void main(String args[])
17     {
18         treat a=new treat();
19         treat.play(a);
20     }
21 }

 

 在上面的程序中可以发现可以通过形参传递对象的方法来调用非静态方法和字段。

  

  

以上是关于Java变量的初始化以及静态方法的主要内容,如果未能解决你的问题,请参考以下文章

Java中static关键字和代码块的学习

Java变量的初始化以及静态方法

java基础(static---静态方法和静态变量以及静态方法)

java中的静态变量,静态方法与静态代码块详解

静态块非静态块(方发体)以及构造方法的执行顺序

java中为啥说静态方法先执行?