• 动手动脑及课后作业03


    1.动手动脑一

    答:如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

    2.课后试验一

    运行结果:

    初始化规律:按照顺序初始化,如果有多个方法对字段初始化,将按照最后一次初始化输出。

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

    结果:

    静态初始化块的执行顺序:1.静态初始化块只执行一次。 2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。

    4.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)? 请编写代码验证你的想法。

    代码:

    package demo;
    
    //2016.10.20 胡建峰
    //静态方法中引用实例数据
    
    public class Staticnum {
    
    	public static void main(String[] args) {
    		A.output();
    	}
    }
    
    class A
    {
    	int x = 1;//实例数据
    	static int y = 0;//静态数据
    	
    	int getx()
    	{
    		return x;
    	}
    	
    	static void output()
    	{
    		System.out.println("实例数据x=" + new A().x);//类的实例化后访问实例数据
    		System.out.println("实例数据x=" + new A().getx());//类的实例化后访问实例方法
    		System.out.println("静态数据y=" + y);//直接访问静态数据
    	}
    }
    

      运行结果:

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

    代码:

    package demo;
    
    //2016.10.20 胡建峰
    //查询创造对象数
    
    public class Newnum {
    
    	public static void main(String[] args) {
    		C one = new C();//在其中添加双斜线或去掉验证
    		C two = new C();
    		//C three = new C();
    		System.out.println("已创建了" + one.get() + "个对象");
    	}
    }
    
    class C
    {
    	static int shu = 0;//计数
    	
    	C()
    	{
    		shu ++;
    	}
    	
    	int get()
    	{
    		return shu;
    	}
    }
    

      运行结果:

  • 相关阅读:
    ISC DHCP: Enterprise grade solution for configuration needs
    The most widely used name server software: BIND
    不是技术牛人,如何拿到国内IT巨头的Offer--转
    NVIDIA---CUDA
    BIOS
    Computer form factor
    OC-常见错误 方法与函数的区别
    OC-面向对象
    OC-基本
    C-结构体、枚举
  • 原文地址:https://www.cnblogs.com/fylove/p/5981466.html
Copyright © 2020-2023  润新知