高分网 > 答案大全 > 作业答案 > 课后作业答案 >

java课后答案

时间: 炎婷2 课后作业答案

  java的课后答案

  答:首字母大写, 望名知意

  2.类体内容有哪两种重要成员?

  答:成员变量,和成员方法。

  3.实例方法可以操作类变量吗?类方法可以操作实例变量吗?

  答:实例方法可以操作类变量。

  而类方法不可以操作实例变量。

  4.当类的字节码加载到内存时,类变量就一定分配了内存空间吗?

  答:实例成员变量不分配内存,而类变量一定分配内存。

  5.类的实例变量在什么时候分配内存?

  答:声明之后,在用new关键字创建实例的时候才分配内存。

  6.一个类的类变量被该类创建的所有对象共享吗?

  答:共享

  7.不同对象的实例变量分配的内存地址一定不同吗?

  答:当出现引用赋值语句时两个实例变量的内存地址相同。

  8.什么叫方法的重载?构造方法可以重载吗?

  答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。构造方法可以重载。

  9.请阐述为什么类方法不能调用实例方法?

  答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道一个方法从何处开始执行,当然不能调用。

  10.请阐述,为什么类方法中不能操作实例成员变量?

  答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类创建之前,实例成员变量还没有分配内存空间。没内存空间当然无法操作。

  11.实例方法可以用类名直接调用吗?

  答:不能,因为实例方法,用new创佳对象后才分配入口地址,而类名,一经声明就分配类名地址。而这时对象创建之前实例方法还没有入口地址。实例方法表现实例的功能,或改变实例变量。用类调用改变那个实例的实例变量,表现那个实例的功能,不明确。

  12.关键字this可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方法中吗?

  答:可以出现在构造方法中,代表该类构造方法所创造出的对象。

  可以出现在实例方法中,代表使用该方法的当前对象。

  This不能出现在类方法中,因为类方法是通过类名调用的。

  13.源文件声明编写的类一定在同一个包中吗?

  答:不一定,当不在同一包中时,可用import语句将其所在的包引入该源文件中。

  14.“import java.awt.*”与“import java.awt.Button”有什么不同?

  答:前者引入了awt包中的所有类,后者只引入了Button一个类。

  15.程序中使用了“import java.util.*;”程序运行时,是要加载java.util包中的全部类到内存吗?

  答:不,只加载本程序用到的类到内存中,因为java程序是动态加载,字节码类文件。

  16.有哪几种访问权限修饰符?说出一种的作用。

  答:访问权限修饰符有public, private,protected.

  Private作用是只允许本类的对象访问。

  17.怎样反编译一个类?

  答:使用SDK提供的反编译器javap.exe文件可以实现将字节码文件反编译为源码文件。可查看源码中public方法和public成员变量的名字。

  如加入参数-private则可列出其全部的成员方法和成员变量。

  如:

  Javap –private java.awt.Button则可以列出Button类中全部的方法和成员变量。

  18.下面程序中那个语句是错的?

  class A

  {

  private float weight; //weight被修饰为private的float型变量。

  public float f(float a,float b) //方法 f是public方法。

  { return a; } }

  public class B

  {

  void g()

  {

  A a=new A();

  a.weight=23f;

  a.f(3,4); } }

  答:a.weight=23f;错

  1.编写一个类,该类创建的对象可以计算等差数列的和。

  解:class DengCha{

  int start,d;

  DengCha(){  }

  DengCha(int start,int d){

  this.start=start;

  this.d=d; }

  void setStart(int s){

  start=s;  }

  void setD(int d){

47754