1. c#使用介面,照抄的別進來!
interface水果
{
string甜嘛();
}
publicclass橙子:水果
{
publicstring甜嘛()
{
return"甜";
}
}
publicclass臍橙:橙子
{
publicnewstring甜嘛()
{
return"很甜";
}
}
classProgram
{
staticvoidMain(string[]args)
{
InterfaceTest.水果一個水果=newInterfaceTest.橙子();
Console.WriteLine(一個水果.甜嘛());
一個水果=newInterfaceTest.臍橙();
Console.WriteLine(一個水果.甜嘛());
Console.WriteLine("---兩者都實現了介面,但臍橙的方法並不是重寫,實際上都是調用橙子的方法");
InterfaceTest.橙子一個橙子=newInterfaceTest.橙子();
Console.WriteLine(一個橙子.甜嘛());
一個橙子=newInterfaceTest.臍橙();
Console.WriteLine(一個橙子.甜嘛());
Console.WriteLine("---兩者都實現了同個名稱的方法,但臍橙的方法並不是重寫,實際上都是調用橙子的方法");
InterfaceTest.臍橙一個臍橙=newInterfaceTest.臍橙();
Console.WriteLine(一個臍橙.甜嘛());
Console.WriteLine("---這是臍橙的實例,此時調用的才是臍橙實現的方法");
Console.ReadLine();
}
}
2. 在實際介面測試中,介面測試工作的詳細開展方式是怎麼樣的
在實際工作中,介面的展現形式不是固定。但是市場上,最多的還是HTTP協議的介面測試。
基於HTTP協議的介面測試,工作開展方式類似於這樣:
項目立項階段 -> 項目經理、產品經理、測試經理、CEO等人員參與
需求階段 -> 產品經理根據項目,輸出需求規則說明書,產品說明書;然後需求評審
項目排期 -> 項目經理根據產品功能,確定開發、測試、上線計劃的時間節點
研發階段 -> 輸出概要設計和詳細設計文檔,並且各個角色根據文檔設計系統架構、資料庫、配置文件;並開始編寫業務功能的代碼
測試階段 -> 單元測試、集成測試、系統測試、驗收測試(介面測試屬於集成測試)
發布上線 -> 上線問題驗證和維護
測試階段的細節:
測試工作的開展,與公司對測試流程的管理和把控有很大關系,不同的公司,把控力度都不一樣。在標準的測試流程裡面,我們需要編寫測試用例,但是有的公司甚至測試用例都不用寫,對測試質量的控制,停留在「測試人員的責任心和技術水平」上。
如果是一個有前後端的項目,那麼介面測試流程是這么開展的:
1. 後端開發人員完成代碼編寫,輸出介面文檔
2. 前端開發和後端開發進行前後端聯調,打通主幹流程;聯調結束後,後端開發人員提測介面
3. 介面測試人員,根據後端開發的提測的介面,按照介面文檔在【測試環境】進行介面測試。此時前端開發人員在並行開發前端頁面
4. 此時,由於項目中,前端開發、後端介面都在同時進行,所以會出現測試和前端開發的進度問題:
前端開發完成、介面測試完成:這是最理想的情況,此時手工功能測試介入測試,介面測試人員進入驗收測試。
前端開發完成、介面測試未完成:此時手工功能測試也會介入測試,與介面測試並行測試;(PS:如果功能測試結束了,介面測試依然未完成,那麼手工功能和介面一起進入驗收測試。)
前端開發未完成、介面測試已完成:手工功能測試無法介入。
5. 【測試環境】的介面測試結束後,介面測試人員需要在【驗收環境】進行驗收回歸測試
6. 【驗收環境】執行通過後,介面測試人員,可以把介面自動化腳本,利用持續集成技術,集成到平台中,進行持續的校驗。
7. 最後發布上線後,一般介面測試人員不需要介入生產環境的介面測試。但是少數情況下,介面測試人員,也需要在生產環境進行介面測試(不建議)
了解了嗎?如果想晉升,或者是學習軟體測試的最新知識,歡迎來看黑馬程序員視頻庫內容,有最新的軟體測試學習內容哦!
3. API是什麼不同的編程語言的API一樣的嗎說的淺顯一點,我是新手
API 我給你打一個比方吧,比如你的鍵盤它就是人對計算機進行操作時所使用的統一設備,也可以叫做人與系統的一個介面。 程序在設計中,很多要用到內存的控制,設備的控制,電源的控制,以及對其他程序,WINDOWS設置,等等的操作,但是這些操作需要接觸到底層的指令,但因為某些時候運行在操作系統之上的程序無法直接操作底層,並且直接操作底層的方式很多樣化,這樣容易導致處於應用程序與硬體之間的操作系統與硬體之間失去同步,造成操作系統故障。所以Windows將指令集統一成平台中的程序介面,在用戶使用介面操作的時候,是由操作系統代理完成,這樣就會減少開發難度,增大系統穩定性能。
4. 介面文檔該由誰來寫
介面文檔的話,一般是由文員來寫吧,因為普通的廳蔽檔文員就是做的這些工作的,所以說你可並啟以完全交給他,是沒扮亂有問題的
5. C#中的介面的作用和它一般的用法
1、C#介面的作用 :
C#介面是一個讓很多初學C#者容易迷糊的東西,用起來好像很簡單,定義介面,裡麵包含方法,但沒有方法具體實現的代碼,然後在繼承該介面的類裡面要實現介面的所有方法的代碼,但沒有真正認識到介面的作用的時候就覺得用介面是多此一舉,當然你這樣想那是絕對絕對錯誤的,比爾蓋茨的微軟請的員工都是比蓋茨還聰明的人,他們的C#能添這樣的多足嗎?!關於介面的作用,網上有一位就真的深入淺出給我們做了很好理解的分析。
我們定義一個介面
public interface IBark
{
void Bark();
}
再定義一個類,繼承於IBark,並且必需實現其中的Bark()方法
public class Dog:IBark
{
public Dog()
{}
public void Bark()
{
Consol.write("汪汪");
}
}
然後,聲明Dog的一個實例,並調用Bark()方法
Dog 旺財=new Dog();
旺財.Bark();
試想一樣,若是想調用Bark()方法,只需要在顫森Dog()中聲明這樣的一個方法不就行了嗎,干什麼還要用介面茄棗畝呢.因為介面中並沒有Bark()具體實現.真的實現還是要在Dog()中.那麼使用介面不是多此一舉嗎?
還有人是這樣說的:從介面的定義方面來說,介面其實就是類和類之間的一種協定,一種約束.還拿上面的例子來說.所有繼承了IBark介面的類中必需實現Bark()方法.那麼從用戶(使用類的用戶)的角度來說,如果他知道了某個類是繼承於IBark介面,那麼他就可以放心大膽的調用Bark()方法,而不用管Bark()方法具體是如何實現的.比如,我們另外寫了一個類.
public class Cat:IBark
{
public Cat()
{}
public void Bark()
{
Consol.write("喵喵");
}
}
當用戶用到Cat類或是Dog類的時候,知道他們繼承於IBark,那麼不用管類里的具體實現,而就可以直接調用Bark()方法,因為這兩個類中肯定有關於Bark()方法的具體實現.
如果我們從設計的角度來看.一個項目中用若干個類需要去編寫,由於這些類比較復雜,工作量比較大,這樣每個類就需要佔用一個工作人員進行編寫.比如A程序員去定Dog類,B程序員去寫Cat類.這兩個類本來沒什麼聯系的,可是由於用戶需要他們都實現一個關於"叫"的方法.這就要對他們進行一種約束.讓他們都繼承於IBark介面,目的是方便統一管理.另一個是方便調用.當然了,不使用介面一樣可以達到目的.只不過這樣的話,這種約束岩正就不那麼明顯,如果這樣類還有Duck類等等,比較多的時候難免有人會漏掉這樣方法.所以說還是通過介面更可靠一些,約束力更強一些.
2、C#中介面的深入淺出:
通過學習對C#中介面的作用有了更進一步的理解,拿出來跟大家分享一下,有說的不對的地方請大家指教。
假設我們公司有兩種程序員:VB程序員,指的是用VB寫程序的程序員,用clsVBProgramer這個類表示;Delphi程序員指的是用Delphi寫程序的程序員,用clsDelphiProgramer這個類來表示。每個類都有一個WriteCode()方法。定義如下:
class clsVBProgramer()
{
....
WriteCode()
{
//用VB語言寫代碼;
}
....
}
class clsDelphiProgramer()
{
....
WriteCode()
{
//用Delphi語言寫代碼;
}
....
}
現在公司來了一個項目,要求派某個程序員寫一個程序。
class clsProject()
{
....
WritePrograme(clsVBProgramer programer)//用VB寫代碼
{
programer.WriteCode();
}
WritePrograme(clsDelphiProgramer programer)//重載方法,用Delphi寫代碼
{
programer.WriteCode();
}
......
}
在主程序中我們可以這樣寫:
main()
{
clsProject proj=new clsProject;
//如果需要用VB寫代碼
clsVBProgramer programer1=new clsVBProgramer;
proj.WritePrograme(programer1);
//如果需要用Delphi寫代碼
clsDelphiProgramer programer2=new clsDelphiProgramer;
proj.WritePrograme(programer2);
}
但是如果這時公司又來了一個C#程序員,我們怎麼改這段程序,使它能夠實現用C#寫程序的功能呢?我們需要增加一個新類clsCSharpProgramer,同時在此clsProject這個類中要再次重載WritePrograme(clsCSharpProgramer programer)方法。這下麻煩多了。如果還有C程序員,C++程序員,java程序員呢。麻煩大了!
但是如果改用介面,就完全不一樣了:
首先聲明一個程序員介面:
interface IProgramer()
{
WriteCode();
}
然後聲明兩個類,並實現IProgramer介面:
class clsVBProgramer():IProgramer
{
....
WriteCode()
{
//用VB語言寫代碼;
}
....
}
class clsDelphiProgramer():IProgramer
{
....
WriteCode()
{
//用Delphi語言寫代碼;
}
....
}
對clsProject這個類進行一下修改:
class clsProject()
{
....
WritePrograme(IProgramer programer)
{
programer.WriteCode();//寫代碼
}
......
}
main()
{
clsProject proj=new clsProject;
IProgramer programer;
//如果需要用VB寫代碼
programer=new clsVBProgramer;
proj.WritePrograme(programer);
//如果需要用Delphi寫代碼
programer=new clsDelphiProgramer;
proj.WritePrograme(programer);
}
如果再有C#,C,C++,JAVA這樣的程序員添加進來的話,我們只需把它們相關的類加進來,然後在main()中稍做修改就OK了。擴充性特別好!
另外我們如果把clsProject這個類封成一個組件,那麼當我們的用戶需要要擴充功能的時候,我們只需要在外部做很小的修改就能實現,可以說根本就用不著改動我們已經封好組件!是不是很方便,很強大!
6. 怎樣理解編程時常說的「介面」這個名詞
硬體中的「介面」概念--------------------------
硬體介面即I/O設備適配器,具體指CPU和主存、外圍設備之間通過匯流排進行連接的邏輯部件。
介面部件在它動態連接的兩個部件之間起著「轉換器」的作用,以便實現彼此之間的信息傳送。
為了使所有的外圍設備能夠兼容,並能在一起正確地工作,CPU規定了不同的信息傳送控制方法。 一個標准介面可能連接一個設備,也可能連接多個設備。
典型的介面通常具有如下功能:
1.控制
介面靠程序的指令信息來控制外圍設備的動作,如啟動、關閉設備等。
2.緩沖
介面在外圍設備和計算機系統其他部件之間用作為一個緩沖器,以補償各種設備在速度上的差異。
3.狀態
介面監視外圍設備的工作狀態並保存狀態信息。狀態信息包括數據「准備就緒」、「忙」、「錯誤」等等,供CPU詢問外圍設備時進行分析之用。
4.轉換
介面可以完成任何要求的數據轉換,例如並--串轉換或串--並轉換,因此數據能在外圍設備和CPU之間正確地進行傳送。
5.整理
介面可以完成一些特別的功能,例如在需要時可以修改字計數器或當前內存地址寄存器。
6.程序中斷
每當外圍設備向CPU請求某種動作時,介面即發生一個中斷請求信號到CPU。
事實上,一個適配器必有兩個介面:
一是和系統匯流排的介面,CPU和適配器的數據交換一定的是並行方式;
二是和外設的介面,適配器和外設的數據交換可能是並行方式,也可能是串列方式。根據外圍設備供求串列數據或並行數據的方式不同,適配器分為串列數據介面和並行數據介面兩大類。
編程中的「介面」概念--------------------------
編程中所謂的介面,實際上也是一個類,只是在介面中聲明了一組常量和方法,但事實上沒有實現任何方法。這有點類似抽象類,介面需要其他類來提供實現自己所定義方法的過程,而不是自己提供。
這里的用介面實現多繼承實際上就是可以用類來實現多個介面中的方法。
7. 給講講java介面的概念!
希望你仔細閱讀。對初學者來說,介面不是很好理解。我教過的學生也都提出過這個問題。
我們來看一個類
class A {
private int a;
public int getA() {
return a;
}
}
這個類的屬性是私有的,外界不能訪問,而外界可以通過公有方法來訪問這個類。我們說一個類的公有方法就是這個類的對外介面。通常
一個類的屬性都是私有的,方法大多是公有的。外界只能過個這些公有方法來訪問類。這也是Java封裝性的體現。如果一個類沒有公有屬性,
也沒有公有方法,這個類就是無法使用的類了。所以我們需要為一個類提供對外介面。
一個類中的方法,不只是說明了它要「做什麼」,而且方法的內容也說明了「怎麼做」。打個不太恰當的例子,一個殺人方法。從名字上
看,你知道了「做什麼」,但沒有辦法看到「怎麼做」。而方法的內容說明了「怎麼做」。
class killer {
private String name;
private int age;
private String phone;
private String addr;
......
public void kill(Person p) {
Qiang qiang = new Qiang("ak47");
qiang.fire(p);
}
}
這個類的kill方法內容說明了殺人的過程。如果你不想用這種方式殺人。因為你很BT,你想用毒葯殺人。那麼這個類的內容就需要改。但
是,還有很多其它的「客戶」,需要用不同的方式殺人。怎麼辦呢?一個很好的辦法就是,我們只定義「做什麼」,而不定義「怎麼做」。
interface Killer {
public void kill(Person p);
}
介面說明了「做什麼」,而實現這個介面的類,也就是實現類需要說明「怎麼做」。
class Killer1 implements Killer {
public void kill(Person p) {
Qiang qiang = new Qiang("ak47");
qiang.fire(p);
}
}
class Killer2 implements Killer {
public void kill(Person p) {
Bane bane = new Bane();
p.eat(bane);
}
}
public class Test {
public static void main(String[] args) {
Killer jingKe = new Killer1();
Person yingZheng = new Person();
jingKe.kill(yingZheng);
}
}
介面可以把「做什麼」和「怎麼做」分離開來。這給Java帶來了很多好處。雖然代碼量增加了,可我們的程序的可維護性加強了。我們的程序是可以拆分的。就象電腦一樣,可以拆分成很多組件。我一直在想,如果我的MP3耳機可以拆分就好了,那樣在耳機只壞掉一個的時候就不用重新買一個了。
不過上面的例子看不到什麼太大的好處。你可能會說,如果你
的目的是為了不修改代碼,那麼,如果我想使用Killer2來完成任務,還是需要修改main方法為:Killer jingKe = new Killer2();。沒有錯,
不過你可以通過一個工廠來完成上面的任務。也就是說,不通過new語句來獲得Killer對象,而是通過工廠來獲得Killer對象。
public class KillerFactory {
public static killer getKiller() {
return new Killer1();
}
public static Killer getKiller(String path) throws Exception {
Properties prop = new Properties();
prop.load(new FileInputStream(path));
String className = prop.getProperty("killer");
Class clazz = Class.forName(className);
return (Killer)clazz.newInstance();
}
}
代碼確實增加了很多,可是這對後期的系統維修和系統升級帶來了很多好處。
水龍頭與出水管的關系,我們需要把水龍頭安裝到出水管上。如果有一天我們需要更換水龍頭時,只需要把老的水龍頭拆卸下來,把新的
水龍頭安裝到出水管上既可。如果水龍頭與出水管是一體的,就是無法拆卸的怎麼辦呢?或是說出水管只能安裝水龍頭,而不能安裝淋浴器,
這就使我們生活很不方便。我們可以理解為出水管的連接方法,連接的對象是「出水設備」,而這個「出水設備」是一個介面。而水龍頭與淋
浴器都是這個介面的實現類。但是介面在哪裡呢?它長什麼樣子?我們沒看到。它是一個標准,連接處的內徑與外徑。螺絲摳的密度等。這就
和你的電腦上為什麼可以連接USB設備一樣。如果電腦和某一個USB設備電焊到一起,那麼其它的USB設備就無法使用了。電腦使用的是實現了
USB介面的電子設備,而我們的U盤、MP3、移動硬碟及滑鼠都是USB介面的實現類。
用Java寫出來的程序也和我們現實生活中的設備一樣。如電腦,我們希望電腦的所有部件都可以更換,如果主板上的內存插槽與內存條不
附。我們說,內存條沒有實現某某介面。Java是完全面向對象的,而面向對象是我們最為熟悉的東東。面向對象並不簡單,而是我們太熟悉它
了。所以我們學習Java會很方便。在現實社會中,所有的標准到了Java中都是介面。一盒香煙多少支煙,煙的長度等都是標准。一個光碟的大
小。Java中的JDBC就是一個標准,而各大資料庫廠商及第三方廠商實現了這一標准。JDBC只說明了目的,沒有說明怎麼完成的目的。
面向對象就在我們眼前,不過我們有時不太注意它。希望你在今後學習Java時,多與現實社會聯系。這樣可以有利與你的理解。
代碼量加大了,但對後期的維護與升級提供了方便。軟體公司賣給客戶的是class文件,而不是java文件。如果你的客戶需要更換Killer對
象,只需修改資源文件既可。
下面我們來看一個定時器類。現在什麼都是自動化的,如空調、電視、洗衣機等等。都要用到定時器這個類。對了,還有定時炸彈也要用
它。那我們可不可以只寫一個定時器類,應用到所有的需要定時器的設備上呢?答案是肯定的,我們需要這個類。
好了,我們來分析一下定時器需要完成什麼工作吧。定時器應該有啟動、停止方法。定時器啟動之後,每過一定時間就執行某個動作。其
中時間間隔為long型,而要執行的動作可能是輸出一個字元串,也可能是列印作業。具體要干什麼由使用定時器的用戶來完成。而定義定時器
時,根本就不知道要干什麼。
public class Timmer {
private long time;
private Action action;
public Timmer() {}
public Timmer(long time, Action action) {
this.time = time;
this.action = action;
}
public void start() {
state = START;
if(th == null) {
th = new Thread() {
public void run() {
while(state == START) {
try {
Thread.sleep(time);
action.action();
} catch(Exception e) {
}
}
}
};
}
th.start();
}
public void stop() {
state = STOP;
}
public void setTime(long time) {
this.time = time;
}
public void setAction(Action action) {
this.action = action;
}
public long getTime() {
return (this.time);
}
public Action getAction() {
return (this.action);
}
}
Action是一個介面,它只有一個方法,就是要完成的任務。我們在定時器啟動時調用這個介面的方法。而這個Action介面的對象,代表一
個動作,這個動作就是用戶要完成的動作。
public interface Action {
public void action();
}
public static void main(String[] args) {
Timer t = new Timer(2000, new Action() {
public void action() {
System.out.println("Hello World!");
}
});
t.start();
javax.swing.JOptionPane.showMessageDialog(null, "點擊確定按鈕停止定時器");
t.stop();
System.exit(0);
}
這是一個典型的回調方法例子。在AWT中,java使用了大量的監聽器。這些監聽器都是回調方法。在XML解析器SAX中,也使用了回調方法來解析XML文檔。
介面要比抽象類還要抽象。抽象類需要子類繼承,而Java是單繼承,所以抽象類被限制了。而介面不同,一個類可以實現多個介面。好比人類與程序員類之間的關系。可以說程序員是人類的子類,如果程序員是一個介面。用人類的子類來實現它就會更好。這個子類還可以去實現會計介面、音樂家介面等等。
在struts2.0、spring、hibernate等框架中,都大量使用介面。我們關心的是某個介面與另一個介面之間的關系。而不關心某個實現類與另一個介面實現類的關系。在客觀世界中,我們交談時都大量使用介面,只是我們沒有注意罷了。如:我公司需要一個程序員(一個實現了程序員介面的對象)。上課時,講師有一台計算機,用白板筆在白板上寫字(計算機是介面,白板及白板筆也是介面)。講師希望學生能學會所有的知識(講師及學生都是介面)。
就說這么多了,還有什麼不明白可以與我聯系。QQ:51038648
我在北京中科院計算所培訓中心做兼職java講師。我的經驗是,要想學好Java,一定要多打代碼、吃透代碼。如果不勤奮,就一定學不好。看來你是剛剛開始學習Java,你後面的路還很長,而且不是很好走。
8. 什麼是介面介面的作用是什麼它與抽象類有什麼區別
一 介面表示一個完全抽象類,其成員變數為常量,應該定義為public static final.如果成員變數前沒有添加修飾符,系統會默認修飾符為public static final.所有的方法為public abstract抽象方法
介面是一些抽象方法和常量所組成的集合,(1) 介面可以定義多繼承.多繼承可以通過在extends後面使用多個父介面來實現.(2)介面不存在最高層,與類的最高層為Object類是不同的.介面是用來規范類的,它可以避免類在設計上的不一致 這在多人合作的開發中猶為重要 , 你象一個人,把他封裝一個類對象,作為一個介面實現的話,一繼承就能實現人的所有的屬性和方法,並且重復多次的利用,就不用每次都自己寫了,而某個人的某個行為與大多數人不同的話,就可以重寫這個方法,要是普通類的話只能調用的不能重寫,這就是介面的好處 在商業上說的話,你做一個項目,如果這個項目有專門的一套介面的話,只需要重寫這些方法就可以了,所以說真正的JAVA高手都封裝到介面,這是我們這些普通的程序員無法做到的,如果能做到把一個項目所有的都封裝到介面的話,那你的工資就相當可觀了,可能超出你的預測(3)介面中的方法都是使用abstract修飾的方法;(4)介面中的成員變數默認為final定義的常量;
9. Java程序員寫介面是怎麼回事我也是程序員,可是我只是寫增刪改查什麼的別的基本都是公司封裝的功能
跟你平時用的其實差別不多,只是把最終結果以JSON之類的返回了,現在的介面一般是RESTful的居多,你搜索一下 java RESTful 就知道了。
10. 怎麼給自己的程序提供介面(API)給別的程序操作
API(Advanced Programmers Interface,高級程序員介面)(注:API實際是指Application Programming Interface,應用程序編程介面;此處疑為原文錯誤,不過在VB中也可以這么說吧!)是一套用來控制Windows的各個部件(從桌面的外觀到位一個新進程分配的內存)的外觀和行為的一套預先定義的Windows函數.用戶的每個動作都會引發一個或幾個函數的運行以Windows告訴發生了什麼.
這在某種程度上很象Windows的天然代碼.其他的語言只是提供一種能自動而且更容易的訪問API的方法.VB在這方面作了很多工作.它完全隱藏了API並且提供了在Windows環境下編程的一種完全不同的方法.
這也就是說,你用VB寫出的每行代碼都會被VB轉換為API函數傳遞給Windows.例如,Form1.Print...VB 將會以一定的參數(你的代碼中提供的,或是默認參數)調用TextOut 這個API函數.
同樣,當你點擊窗體上的一個按鈕時,Windows會發送一個消息給窗體(這對於你來說是隱藏的),VB獲取這個調用並經過分析後生成一個特定事件(Button_Click).
API函數包含在Windows系統目錄下的動態連接庫文件中(如User32.dll,GDI32.dll,Shell32.dll...).
API 聲明
正如在"什麼是API"中所說,API函數包含在位於系統目錄下的DLL文件中.你可以自己輸入API函數的聲明,但VB提供了一種更簡單的方法,即使用API Text Viewer.
要想在你的工程中聲明API函數,只需運行API Text Viewer,打開Win32api.txt(或.MDB如果你已經把它轉換成了資料庫的話,這樣可以加快速度.注:微軟的這個文件有很多的不足,你可以試一下本站提供下載的api32.txt),選擇"聲明",找到所需函數,點擊"添加(Add)"並"復制(Copy)",然後粘貼(Paste)到你的工程里.使用預定義的常量和類型也是同樣的方法.
你將會遇到一些問題:
假設你想在你州碧的窗體模塊中聲明一個函數.粘貼然後運行,VB會告訴你:編譯錯誤...Declare 語句不允許作為類或對象模塊中的 Public 成員...看起來很糟糕,其實你需要做的只是在聲明前面添加一個Private(如 Private Declare Function...).--不要忘了,可是這將使該函數只在該窗體模塊可用.
在有些情況下,你會得到"不明確的名稱"這樣的提示,這是因為函數.常量或其他的什麼東西共用了一個名稱.由於絕大多數的函數(也可能是全部,我沒有驗證過)都進行了別名化,亦即意味著你可以通過Alias子句使用其它的而不是他們原有的名稱,你只需簡單地改變一下函數名稱而它仍然可以正常運行.
你可以通過查看VB的Declare語句幫助主題來獲取有關Alias的詳細說明.
消息(Messages)
好了,現在你已經知道什麼是API函數了,但你也一定聽說過消息(如果你還沒有,你很快就會)並且想知道它是什麼.消息是Windows告訴你的程序發生了哪些事件或要求執行特定操作的基本方法.例如,當用戶點擊一個按鈕,移動滑鼠,或是向文本框中鍵入文字時,一條消息就會扒跡戚被發送給你的窗體.
所有發送的消息都有四個參數--一個窗口句柄(hwnd),一個消息編號(msg)還有春陵兩個32位長度(Long)的參數.
hwnd即要接受消息的一個窗口的句柄,msg即消息的標識符(編號).該標識符是指引發消息的動作類型(如移動滑鼠),另外兩個參數是該消息的附加參數(例如當滑鼠移動時游標的當前位置)
但是,當消息發送給你時你為什麼看不到呢--就象有人在偷你的信一樣?請先別惱火,讓我告訴你.
小偷其實是Visual Basic.但它並沒有偷走你的信,而是在閱讀了之後挑出重要的以一種好的方式告訴你.這種方式就是你代碼中的事件(Event).
這樣,當用戶在你的窗體上移動滑鼠時,Windows會發送一條WM_MOUSEMOVE消息給你的窗口,VB得到這條消息以及它的參數並運行你在事件MouseMove中的代碼,同時VB會把這條消息的第二個32位數(它包含了x,y坐標,單位為像素(Pixel),每個位16位)轉換為兩個單精度數,單位為緹(Twip).
現在,如果你需要游標坐標的像素表示,然而VB已經把它轉換成了緹,因此你需要重新把它轉換為以像素為單位.在這里,Windows給了你所需要的,但VB"好意地"進行了轉換而使你不得不重新轉換.你可能會問--我難道不能自己接收消息嗎?答案是肯定的,你可以使用一種叫做子類處理(Subclass)的方法.但你除非必須否則最好不要使用,因為這與VB的安全程序設計有一點點的違背.(注:子類處理確實有很大的風險,但如果使用得當,是很有用處的.不過有一點一定要注意,即千萬不要使用VB的斷點調試功能,這可能會導致VB崩潰!)
需要補充說明的是:你可以發送消息給你自己的窗口或其他的窗口,只需調用SendMessage或PostMessage(SendMessage會使接受到消息的窗口立刻處理消息,而PostMessage是把消息發送到一個稱為消息隊列的隊列中去,等候處理(它將會在該消息處理完後返回,例如有些延遲)).你必須制定接受消息的窗口的句柄,欲發送消息的編號(所有的消息的編號均為常量,你可以通過API Text Viewer查得)以及兩個32位的參數。
另一種含義:
1:美國石油協會(API:American Petrolenm Institute):制定機油標準的組織。汽車用發動機機油必須符合API提出的標准。
2:API還有一種含意:空氣污染指數。【英文 air pollution index 的縮寫】
3:在JAVA中,API除了有應用「程序程序介面」的意思外,還特指JAVA API的說明文檔,也稱為JAVA幫助文檔。
參考資料:http://bk..com/view/16068.htm