类与对象PPT作业

第一题

InitializeBlockDemo

 

Java字段初始化 首先初始化块进行初始化,然后构造方法进行赋值,最后字段初始值进行赋值。

 

第二题

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

请自行编写示例代码验证以上结论。(博客作业)

class father

     {

           public static int number=12;

             

       }

class son extends father

       {

              public static void out()

              {System.out.println(number);};

       }

public class Test3

      {

        public static void main(String args[])

        {

               son.out();

        }

      }

 

 

  • 第三题
  • 请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”

 

静态初始化块在普通初始化块,无参数构造器,带参构造器之前执行,同是静态初始化块按照类的先后顺序执行。

 

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

请编写代码验证你的想法。(发表到博客

public class Search

{

       private String name;

       public Search(String name)

       {

              this.name=name;

       }

       public static void main(String args[])

       {

              Search s=new Search("zhang ");

              Search s2=new Search("san");

              s.ask(s);

              s.ask(s2);

       }

    public static void ask(Search s)

       {

       s.say();

       }

    public void say()

       {

       System.out.println(name);

       }

      

}

在静态方法中用非静态的方法调用非静态的字段

 

 

第四题

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

class Record

 {

        static int r=0;

        public Record()

        {

               r++;

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

        }

        

 }

 public class Test

 {

        public static void main(String args[])

         {

         Record a=new Record();

         Record b=new Record();

        }

 }

posted @ 2015-10-17 20:03  键盘已坏  阅读(195)  评论(0编辑  收藏  举报