java课后答案
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){