zoukankan      html  css  js  c++  java
  • 类与对象课后题

    1.进行试验以下代码输出结果是什么?

    package test;

    class InitializeBlockClass{

        {

            field=200;

            }

        public int field=100;

        public InitializeBlockClass(int value)

        {

            this.field=value;

         }

        public InitializeBlockClass(){}

    }

    public class Test {

        public static void main(String[] args) {

            // TODO Auto-generated method stub 

            InitializeBlockClass obj=new InitializeBlockClass();

            System.out.println(obj.field);

            obj=new InitializeBlockClass(300);

               

        }

    }

    运行结果:

    Java字段初始化的规律:所有类的变量都默认初始化null,数字类的原始数据类型默认初始化为0,执行类的成员定义的默认值或类的初始化块,到底执行哪个要看哪一个排在前面。类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

    2. 当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行,请自行编写示例代码验证以上结论。

    代码:

    class A

    {

        static

        {

        System.out.println("A的静态初始化块");

        }

    }

    class B extends A

    {

        static

        {

        System.out.println("B的静态初始化块");

        }

    }

    class C extends B

    {

        static

        {

        System.out.println("C的静态初始化块");

        }

    }

    public class Test {

        public static void main(String[] args) {

            // TODO Auto-generated method stub 

            new C();

        }

    }

    运行截图:

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

    package test;

    public class news {

        private String name;

        public news(String name)

        {

            this.name=name;

        }

        public static void main(String args[])

        {

            news s=new news("xiao ");

            news s2=new news("li");

            s.ask(s);

            s.ask(s2);

        }

        public static void ask(news s)

        {

        s.say();

        }

        public void say()

        {

        System.out.println(name);

        }

    }

    截图:

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

    代码:

    package test;

    class Number

    {

           static int count;

             public Number()

                 {

                     count++;

                 }

             int  GetCount()

                {

                    return count;

                }

    }

    public class Test {

        public static void main(String[] args) {

            // TODO Auto-generated method stub 

        Number n1=new Number();

        Number n2=new Number();

        Number n3=new Number();

        System.out.println("你已经创建了"+Number.count+"对象");

        }

    }

    结果截图:

  • 相关阅读:
    c++ 有序二叉树的应用
    c++ 二叉树的遍历
    c++ 创建二叉树
    c++ 双向链表 的查找和删除
    c++ 双向循环链表
    c++ 双向链表
    Jzoj4209 已经没有什么好害怕的了
    Jzoj4209 已经没有什么好害怕的了
    后缀自动机转后缀树模板
    后缀自动机转后缀树模板
  • 原文地址:https://www.cnblogs.com/chenpengmeng/p/4888389.html
Copyright © 2011-2022 走看看