zoukankan      html  css  js  c++  java
  • 课堂作业及 动手动脑问题整理

    课堂作业一

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

    程序:

    package com;

    public class Duixiang {

    public static void main(String[] args){

    duixiang a=new duixiang();

    a.out();

    duixiang b=new duixiang();

    b.out();

    }

    }

    class duixiang{

    static int n=0;

    duixiang(){

    n++;

    }

    public void out(){

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

    }

    }

    结果截图:

    课堂问题整理

    一、进行试验:

    运行结果:100   300

    Java字段初始化的规律:所有类的变量都默认初始化为null,数字类的原始数据类型默认初始化为0boolean默认初始化为false;进行初始化的地方有初始化块和构造函数,初始化快分为静态初始化块和实例初始化块。执行类成员定义时指定的默认值或类的初始化块,到底执行哪个要看哪个“排在前面”。

    二、动手动脑:

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

    请自行编写示例代码验证以上结论。

    程序:

    package com;

    public class Animal {

    public boolean live=true;

    public String skin="";

    public void eat(){

    System.out.println("动物需要吃食物");

    }

    public void move(){

    System.out.println("动物会运动");

    }

    }

    class Bird extends Animal{

    public String skin="羽毛";

    public void move(){

    System.out.println("鸟会飞");

    }

    class Zoo{

    public static void main(String[] args){

    Bird bird=new Bird();

    bird.eat();

    bird.move();

    System.out.println("鸟有:"+bird.skin);

    }

    }

    截图:

    三、动手动脑:

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

            结果截图:

    静态初始化块的执行顺序:

    1、静态初始化块只执行一次。

    2、创建子类型的对象时,也会导致父类型的静态初始化块的执行。

    四、一个有趣的问题:

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

    请编写代码验证你的想法。

    程序:

    package com;

    public class ButtonFactory {

    private static ButtonFactory _instance=null;

    public static ButtonFactory getInstance(){

    if(null==_instance)

    _instance=new ButtonFactory();

    return _instance;

    }

  • 相关阅读:
    Qt编写安防视频监控系统27-GPU显示
    Qt开源作品37-网络中转服务器
    【日拱一卒】链表——回文判断
    【日拱一卒】链表——判断链表是否有环
    【日拱一卒】链表——链表反转(递归解法)
    批处理文件bat设置环境变量path
    用来进行序列化和反序列化的工具类
    @JsonIgnoreProperties转换实体时忽略json中不存在的字段
    如何获取mac的ip地址
    objectMapper.convertValue
  • 原文地址:https://www.cnblogs.com/cn123456/p/4887659.html
Copyright © 2011-2022 走看看