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){