zoukankan      html  css  js  c++  java
  • 动手动脑问题3

    一.对象变量也可以使用“==”判断两变量值是否相等吗?

      如果是引用类型的对象作比较,则比较对象地址,如果是比较字符串或数字则比较值是否相等。

    二.

    .

    请总结一下,这个方法有哪些“与众不同之处”,你能列出几条?

    构造方法与类名相同,没有返回值。

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

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

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

    运行结果:

    Java进行初始化的地方有两个:初始化块和构造函数。由上面两图中可以发现,Java字段初始化规律系统会按顺序对Java字段进行初始化,如果有好几个方法都对同一个变量进行了初始化。Java会将最后一次的初始化结果赋给该变量。

      如果在主函数中创建对象时没有形参时,如果在类中定义了公共的变量并给与了赋值,那么就会把值赋给主函数中的变量,再调用类中的默认构造函数,如果在主函数中创建对象时有形参,则调用类中对应的构造函数。

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

    输出结果:

    结论:创建Java对象时,系统总是先调用静态初始化块,静态初始化块是类相关的,用于对整个类进行初始化处理,静态初始化块也属于类的静态成员,因此不能访问非静态成员。

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

      静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),当需要在静态方法中访问本类中的静态成员时,需定义一个该类的对象,然后在方法中通过对象名.静态成员的方法来访问。在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。

    七.两对整数明明完全一样,为何一个输出true,一个输出false?

    第一次比较的的地址是取自同一个地址的数字,而第二次比较的数是创建了两个不同地址的对象,所以第一次比较的地址相同,第二次不同。

  • 相关阅读:
    socket 网络编程
    错误与异常
    正则与计算器
    正则爬虫案例
    面向对象
    模块与包
    常用模块-----configparser & subprocess
    正则表达式&re模块
    常用模块---sys&logging&序列化模块(json&pickle)
    常用模块----time&random&hushlib&os
  • 原文地址:https://www.cnblogs.com/877612838zzx/p/7700518.html
Copyright © 2011-2022 走看看