java练习

请输入并运行以下代码,得到什么结果?

public class Test {

      public static void main(String[]  args){

                    Foo obj1=new Foo();  

                    Foo obj2=new Foo();  

                    System.out.println(obj1==obj2);//?

 }  

}

class Foo{

           int value=100;

}

得到false;

 以下代码为何无法通过编译哪儿出错了

public class Test {

        public static void main(String[]  args){

                  Foo obj1=new Foo();

 }

}

class Foo{

         int value;

         public Foo(int initValue ){

                 value=initValue;  

}

}

  Foo obj1=new Foo();应该为  Foo obj1=new Foo(数);

使用上页幻灯片中定义的类,以下代码输出结果是什么?
请依据代码的输出结果,自行总结Java字段初始化的规律。(发表到博客)

public class Test {

      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=200;

 }  

      public int field=100;

      public InitializeBlockClass(int value)

{  

       this.field=value;

 }  

       public InitializeBlockClass()  {  

   }

}

Java字段初始化的规律:

所有类的变量都默认初始化为null,比如String a; Integer b; 数字类的原始数据类型默认初始化为0,比如int a; short b; char c; boolean默认初始化为false
;
当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行:

public class InitializeBlockDemo {

      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(){     

     }

}

静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法):

public class Ex

{   

        int i =123; static int Temp;

        public static void A()

         System.out.println(Temp);

         public int B()

{

             int x = 100;

             return x;

}

public static void main(String args[]) {

           Ex e = new Ex();

           Temp = e.B();

            e.A();

}

}

使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”:

 

public class Student{

 

            public static void main(String[] args){

 

                   Information a = new Information();

 

                   a.OutputInformation();

 

                   Information b = new Information();

 

                   b.OutputInformation();

 

}

}

//定义类

class Information{

 

              static int num=0;

 

              Information()

 

{   

              num++;

 

}

 

 public void OutputInformation()

 

 {

 

             System.out.println("你已经创建了"+num+"个对象!");

 

}

 

}

 



 
原文地址:https://www.cnblogs.com/liguoshuai/p/4888271.html