• Java学习10.10(动手动脑)


    1.对象判等

    对于原始数据类型的变量(比如int),可以直接使用“==”判断两变量值是否相等

     

    整型数据可以直接用==来判断是否相等,字符串类型不可以,需要equal()方法来判断是否相等,比如value1.equal(value2);

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

    public class Test{
        public static void main(String [] args){
            Foo obj1=new Foo();
        }
    }
    
    class Foo{
        int value;
        public Foo(int initValue){
            value=initValue;
        }
    }

    由于类Foo中的构造方法是含有参数的,导致系统不再提供默认构造方法,此时需要怎加一个默认构造方法。

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

    class Root
    {
        static
        {
            System.out.println("Root的静态初始化块");
        }
        {
            System.out.println("Root的普通初始化块");
        }
        public Root()
        {
            System.out.println("Root的无参数的构造器");
        }
    }
    class Mid extends Root
    {
        static
        {
            System.out.println("Mid的静态初始化块");
        }
        {
            System.out.println("Mid的普通初始化块");
        }
        public Mid()
        {
            System.out.println("Mid的无参数的构造器");
        }
        public Mid(String msg)
        {
            //通过this调用同一类中重载的构造器
            this();
            System.out.println("Mid的带参数构造器,其参数值:" + msg);
        }
    }
    class Leaf extends Mid
    {
        static
        {
            System.out.println("Leaf的静态初始化块");
        }
        {
            System.out.println("Leaf的普通初始化块");
        }    
        public Leaf()
        {
            //通过super调用父类中有一个字符串参数的构造器
            super("Java初始化顺序演示");
            System.out.println("执行Leaf的构造器");
        }
    
    }
    
    public class TestStaticInitializeBlock
    {
        public static void main(String[] args) 
        {
            new Leaf();
            
    
        }
    }

    测试截图:

     总结:

    先对子类由最低层开始的静态初始化块进行执行,随后对父类root的普通和无参初始化块进行初始化,最后对mid的初始化块进行执行。

  • 相关阅读:
    [问题2014A13] 解答
    [问题2014A12] 解答
    [问题2014A13] 复旦高等代数 I(14级)每周一题(第十五教学周)
    [问题2014A10] 解答
    php使用amqplib方式使用rabbitmq
    Ubuntu 16.04 源码编译安装PHP7+swoole
    Ubuntu apt-get更换阿里云源
    微信企业号网页授权
    nginx转发swoole以及nginx负载
    PHP 命名空间
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13809216.html
Copyright © 2020-2023  润新知