码迷,mamicode.com
首页 > 编程语言 > 详细

java第三章动手动脑

时间:2015-10-18 00:56:21      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

 

public class InitializeBlockDemo {

 

         /**

          * @param args

          */

         public static void main(String[] args) {

                  

                   InitializeBlockClass obj=new InitializeBlockClass();

                   System.out.println(obj.field);

                  

                   obj=new InitializeBlockClass(300);

                   System.out.println(obj.field);

         }

 

}

 

class InitializeBlockClass{

         //下面这句在初始化块之前与之后,会影响到field字段的初始值

         //public int field=100;

        

         {

             field=200;

         }

         public int field=100;

         public InitializeBlockClass(int value){

                   this.field=value;

         }

         public InitializeBlockClass(){

                  

         }

}

结果为100  300;明显java中类的初始化块会优先运行切只运行一次,如果类中再对这个变量赋值就会改变这个变量的值,其中也包括调用函数赋值。

 

 

 

 

package demo;

 

 

public class In extends Father{

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        In x;

        x = new In();

 

    }

 

}

class Father{

    {

        int i = 100;

        System.out.println(i);

    }

}

 

结果为100 说明当当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行

 

 

package demo;

 

 

public class In{

    static int n = 10;

   

    public static void main(String[] args){

        Stac s = new Stac();

        n = s.fuzhi();

        s.Output(n);

    }

}

 

class Stac{

    int a = 20;

    int fuzhi(){

        int x;

        x = a;

        return x;

    }

    static void Output(int b){

        System.out.println(b);

    }

}

结果为 20

 

用静态方法访问类的实例成员是将类的实例变量赋值给静态变量再用静态方法输出。

java第三章动手动脑

标签:

原文地址:http://www.cnblogs.com/zczhtml/p/4888600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!