zoukankan      html  css  js  c++  java
  • JAVA课后作业

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

     

    Foo类中定义了一个有参数的构造函数,所以创建对象时不能再默认为无参构造函数了,使用new Foo()就无法通过编译。应该创建有对应参数的对象或再构建一个无参构造函数。

    2.使用上页幻灯片中定义的类,以下代码的输出结果时什么?

      

    结果截图:

    JAVA初始化有初始化块和构造函数,初始化块分为静态初始化块和实例初始化块,静态初始化块是由static修饰的初始化块,实例初始化块没有任何关键字修饰主函数创建对象时没有对象时没有形参时,再类中定义了公共变量并赋初值,就会把值赋给主函数中的变量,再调用类中的默认构造函数,如果在主函数中创建对象时有形参,则调用类中对应的构造函数。

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

      父类的静态初始化块>子类的静态初始化块>父类的初始化块>父类的构造函数>子类的初始化块>子类的构造函数。

    4.如何在静态方法中访问类的实例成员?

    public class A {

      public static void main(String[] args) {
        A a=new A();
        System.out.println("value="+a.AB());

      }
      static int AB() {
        A a=new A();
        int value=a.AC();
        return value;
      }
      int AC() {
        int value=1;
        return value;
      }

    }

    5.为何一个输出true,一个输出false?

     java在通过valueOf方法创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。i1j1的数值为100,因此会直接从cache中取已经存在的对象,所以i1i2指向的是同一个对象,而i2j2则是分别指向不同的对象。"=="符号在比较对象的时候是比较的内存地址,而对于原始数据类型是直接比对的数据值。

  • 相关阅读:
    两种图像缩放算法的对比与实现
    字节流与字符流
    自己的网站 首都易搜网 又修改了一下。。首页改变了
    序列化和反序列化 .NET
    关于 C#异步方法的使用
    vs2010 设计视图中控件无法加载,提示未将对象设置到对象的实例。
    .Net 中的反射(查看基本类型信息) Part.2
    URL重写
    .Net 中的反射(序章) Part.1
    数据库死锁问题 及 解决方法
  • 原文地址:https://www.cnblogs.com/limengke/p/7700777.html
Copyright © 2011-2022 走看看