當前位置:編程學習大全網 - 編程語言 - 請從JAVA課本知識角度回答。小弟是要考試用的,老師只給了這個材料!希望大蝦們幫忙!回答好再加高分!

請從JAVA課本知識角度回答。小弟是要考試用的,老師只給了這個材料!希望大蝦們幫忙!回答好再加高分!

1、Java應用程序與Applet程序的區別?

Java應用程序與Applet程序的區別在於運行方式的不同。答:Java Application是完整的程序,需要獨立的解釋器來解釋運行;而Java Applet則是嵌在HTML編寫的Web頁面中的非獨立運行程序,由Web瀏覽器內部包含的Java解釋器來解釋運行。

在源程序代碼中兩者的主要區別是:任何壹個Java Application應用程序必須有且只有壹個main方法,它是整個程序的入口方法;任何壹個Applet小應用程序要求程序中有且必須有壹個類是系統類Applet的子類,即該類頭部分以extends Applet結尾。

2、抽象類是否能生成具體對象?其存在的意義?

不能生成具體對象。在面向對象領域,抽象類主要用來進行類型隱藏。首先,抽象類在Java語言中表示的是壹種繼承關系,壹個類只能使用壹次繼承關系。其次,在抽象類的定義中,我們可以賦予方法的默認行為。使用抽象類來定義允許多個實現的類型,比使用接口有壹個明顯的優勢:抽象類的演化比接口的演化要容易的多。在後續的發行版中,如果希望在抽象類中增加壹個方法,只增加壹個默認的合理的實現即可,抽象類的所有實現都自動提供了這個新的方法。對於接口,這是行不通的。雖然可以在骨架實現類中增加壹方法的實現來解決部分問題,但這不能解決不從骨架實現類繼承的接口實現的問題。由此,設計公有的接口要非常謹慎,壹旦壹個接口被公開且被廣泛實現,對它進行修改將是不可能的。

3、方法(或者函數)重載與覆蓋的區別?

覆蓋”指的是重新定義基類的方法,使得該方法在派生類中有著不同的含義。“重載”指的是賦予方法名兩個定義,解析出來有不同的參數列表。重載可以存在於任何類中, 不管定義類時是否明確指定了基類。 另壹方面,如果派生類的方法擁有不同的參數數目,或者如果某個參數類型不同於基類中的地,則派生類會擁有這兩個方法,這時就是“重載”。重載時也可以不涉及到基類,只要在類定義中同時給出兩個方法定義即可。 相同點: 被覆蓋和重載的函數的函數名必須是壹樣的; 不同點: 覆蓋的函數的函數參數表必須和被覆蓋的函數的參數表壹樣,重載的函數的函數參數表必須和被重載的函數的函數參數表不壹樣。

4、構造方法為什麽經常需要重載?

構造方法是壹種特殊的方法,與壹般的方法不同是:1.壹個構造函數是對象被創建時初始對象的成員函數。它具有和它所在的類完全壹樣的名字。壹旦定義好壹個構造函數,創建對象時就會自動調用它。它沒有返回類型,甚至連void也沒有。這是因為壹個類的構造函數的返回值的類型就是這個類本身。2.構造方法的調用是在創建壹個對象時使用new操作進行的。構造函數的任務是初始化壹個對象的內部狀態,所以用new操作符創建壹個實例後,立刻就會得到壹個清楚、可用的對象。 3.不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。 構造方法可以被重載。沒有參數的構造方法稱為默認構造方法,與壹般的方法壹樣,構造方法可以進行任何活動,但是經常將他設計為進行各種初始化活動,比如初始化對象的屬性。在Java中,任何變量在被使用前都必須先設置初值.Java提供了為類的成員變量賦初值的專門功能:構造方法(constructor) 構造方法是壹種特殊的成員方法,它的特殊性反映在如下幾個方面:(1)構造方法名與類名相同. (2)構造方法不返回任何值,也沒有返回類型.不能定義為void,在方法名前面不聲明方法類型。(3)每個類可以有零個或多個構造方法. (4)構造方法在創建對象時自動執行,壹般不能顯式地直接調用. (5)構造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數傳給對象的域。(6)壹個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入壹個無參數的默認構造器,這個構造器不執行任何代碼。(7)構造方法可以重載,以參數的個數,類型,或排列順序區分。

5、構造函數(方法)為什麽必須與類名同名?

1.構造函數的命名必須和類名完全相同;在java中普通函數可以和構造函數同名,但是必須帶有返回值。

2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態.它沒有返回值,也不能用void來修飾.這就保證了它不僅什麽也不用自動返回,而且根本不能有任何選擇.而其他方法都有返回值.即使是void返回值,盡管方法體本身不會自動返回什麽,但仍然可以讓它返回壹些東西,而這些東西可能是不安全的.

3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用,壹般方法在程序執行到它的時候被調用.

4.當定義壹個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略,不過Java編譯器會提供壹個默認的構造函數.此默認構造函數是不帶參數的.而壹般方法不存在這壹特點

5當壹個類只定義了私有的構造函數,將無法通過new關鍵字來創建其對象,當壹個類沒有定義任何構造函數,C#編譯器會為其自動生成壹個默認的無參的構造函數。

6、為什麽不能說java是嚴格的面向對象語言或者純面向對象語言呢?

就java本質而言,是面相對象的,但是妳有沒有發現,java也不全是,比如說基本類型,int,那他就是整型而不是對象,轉換類型是還得借助包裝類。Java的缺點公認有如下三點:(1)存在非對象的數據類型;(2)不能夠用壹種描述方法來表達各種類(Class);(3)無法繼承2個以上的類的裝配。雖然也有人認為編程語言應該是壹個什麽樣子會因人而異,不應該算成缺點。不過,上述三點卻可以導致編程人員使用混亂,降低源碼的可讀性及程序的可維護性。

7、舉例說明繼承機制?說明繼承的意義?

在現實生活中的繼承,可以理解為兒子繼承了父親的財產,即財產重用;面向對象程序設計中的繼承,則是代碼重用;繼承是利用現有的類創建新類的過程,現有的類稱作基類(或父類),創建的新類稱作派生類(子類)。最高層是最普遍的、最壹般的情況,往下每壹層都比上壹層更具體,並包含有高層的特征,通過這樣的層次結構使下層的類能自動享用上層類的特點和性質;繼承其實就是自動地***享基類中成員屬性和成員方法的機制。

在Java中實現繼承需要使用到extends關鍵字;

實現繼承的壹般語法是:

[訪問修飾符] class 派生類名 extends 基類名 {

成員列表

}

實現繼承示例

如:

class Student extends Person

{

……

}

class Person { //定義人類

public String mName; //姓名

public int mAge; //年齡

public void dining() { System.out.println("吃飽了..."); } //吃飯的方法

}

class Student extends Person { //學生類繼承於人類

public float mGrade; //成績

public void examination() { System.out.println("考試及格了..."); } //考試的方法

}

class Teacher extends Person { //教師類繼承於人類

public float mSalary; //薪水

public void prelection() { System.out.println("上課很累..."); } //上課的方法

}

public class InheritanceDemo { //該類用於容納main方法

public static void main(String[] args) {

Student std = new Student(); //實例化學生對象

std.mName = "張三"; std.mAge = 18; //為姓名和年齡賦值,訪問的是父類中的成員

std.dining(); //調用吃飯的方法,訪問的是父類中的成員

std.examination(); //調用考試方法,訪問的是子類中的成員

Teacher tea = new Teacher(); //實例化教師對象

tea.mName = "譚浩強"; tea.mAge = 65;

tea.dining();

tea.prelection();

}

}

當今軟件設計的特征:軟件規模越來越大;軟件設計者越來越多;軟件設計分工越來越細。

引入繼承,實現了代碼重用;引入繼承,實現了遞增式的程序設計。繼承是能自動傳播代碼和重用代碼的有力工具;繼承能夠在某些比較壹般的類的基礎上建造、建立和擴充新類;

能減少代碼和數據的重復冗余度,並通過增強壹致性來減少模塊間的接口和界面,從而增強了程序的可維護性;能清晰地體現出類與類之間的層次結構關系。

8、接口與抽象類的區別?

首先,abstract class在Java語言中表示的是壹種繼承關系,壹個類只能使用壹次繼承關系。但是,壹個類卻可以實現多個interface。也許,這是Java語言的設計者在考慮Java對於多重繼承的支持方面的壹種折中考慮吧。

其次,在abstract class的定義中,我們可以賦予方法的默認行為。但是在interface的定義中,方法卻不能擁有默認行為,為了繞過這個限制,必須使用委托,但是這會 增加壹些復雜性,有時會造成很大的麻煩。

9、什麽是包?java中包的意義?

簡單壹點就是文件夾,可以把包看作是管理類文件的文件夾,使用原因是項目越來越大,文件和類越來越多。使用包的好處也很明顯:

第壹 :當Java源文件多時,可以通過聲明包的形式分類存放,這樣有利於查找;

第二 :當有Java源文件同名時,通過使用聲明包的形式存放,這樣也可以不免同名沖突。

10、舉例說明繼承機制?比較繼承與封裝之間的關系?

所謂封裝,就是將屬性和方法捆綁到壹起,封裝到壹個對象中去

繼承,是代碼重用;繼承是利用現有的類創建新類的過程

  • 上一篇:手機java編程在線
  • 下一篇:網絡工程師網上培訓怎麽樣?
  • copyright 2024編程學習大全網