课后作业及动手动脑

  • 1.早期我们经常这样定义变量

                   int value=100;

  • 前面的示例中这样定义变量

                   MyClass obj = new MyClass();

这两种方式定义的变量是一样的吗?

答:不一样。普通定义的变量是可以在整个程序中使用,而类定义的变量只可以在这个类当中使用,可以供类中所有对象使用。

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

不一定可以。如果是引用类型的可以,其他的不可以。

  • 3.请输入并运行以下代码,得到什么结果?

运行结果:false。

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

函数名与类名相同;没有返回值;在程序没有定义构造函数时系统会自动定义一个无参的构造函数。

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

因为在主函数当中的构造函数是无参的,而在下边定义的函数是有参的,系统无法调用。

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

输出结果:100

300

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

执行类的构造函数。。

先执行静态初始化块,在每个对象生成时都会执行一次,它可以初始化类的实例变量。

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

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

 

public class hello {

   int x=3;

   static int y=4;

   public static void method()

   {

      System.out.println("实例变量x="+new hello().x);

      System.out.println("静态变量x="+new hello().y);

   }

 

   public static void main(String[] args) {

      hello.method();

      hello ex=new hello();

      System.out.println("x="+ex.x);

   }

}

9. Integer类的装箱和拆箱到底是怎样实现的?

以输入int类型数值为例,在装箱时调用的是interger中的valueOf(int)方法。在拆箱时调用的是interger中的intValue方法

课后作业:

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

源代码:

package test;

 

public class Example {

   public static int i=0;

   public Example()

   {

      i++;

   }

   public static void main(String[] args) {

      // TODO 自动生成的方法存根

      Example e1=new Example();

      Example e2=new Example();

      Example e3=new Example();

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

   }

 

}

实验结果验证截图:

 

 

原文地址:https://www.cnblogs.com/zzh2019979439/p/7698397.html