zoukankan      html  css  js  c++  java
  • 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 }

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

      

      

  • 相关阅读:
    RocketMQ4.5.2在centos7的安装
    android 9.x 实现应用内更新安装
    android listview 禁止滚动
    Failed to resolve loader: less-loader
    yarn的 文件名、目录名或卷标语法不正确
    Interceptor无法用Autowired自动注入Bean
    STL文件格式研究
    在C#中用COM操作CAD
    AVEVA CSG 几何图形输出接口
    PDMS数据库快速索引查询
  • 原文地址:https://www.cnblogs.com/w669399221/p/11695261.html
Copyright © 2011-2022 走看看