導航:首頁 > 編程語言 > 北京java兼職

北京java兼職

發布時間:2024-06-25 10:50:44

A. 給講講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,你後面的路還很長,而且不是很好走。

B. java的就業方向是什麼

就我們對市場的調查和判斷來說,目前Java的初級人才的供給量已經有些過剩——很多的大學和培訓中心都在開設Java開發課程,而課程的重點也都是Core Java,Oracle,JSP,SSH這些內容,雖然學員的學習效果和實際能力大相徑庭,但是從簡歷上、從外在表現上,大家看上去都差不多。而且,普通的Java開發職位的數量在這兩年也沒有很大的增長,這就造成了很多的用人企業在選用Java初級人才的時候非常謹慎,輕易不會開出很高的工資,或者乾脆就只招聘三年以上工作經驗的老手。

但是這並不代表Java就沒有生命力了,java目前仍然是編程語言排行榜第一名的高級語言,而且從Google公司推出Android移動操作系統以來,Java+Android的開發變得非常火熱,同時掌握Java高級面向對象編程和Android系統和應用開發的人才,成為炙手可熱的香餑餑,有些公司初級Android開發員的工資已經開到月薪6000元以上,這就是市場需求!所以,對於在學校里有過Java學習基礎的同學來說,學習Android開發、或者參加Android開發的短期實訓,可以充分利用這個市場需求,獲得進入IT軟體行業的高進入門檻,一般來說,投入三個月左右的實訓時間,即可真正入門,得到企業的認可。

另外要提醒你的是,技術上的「熱浪」,只是個短暫的現象,對於一個有志於從事軟體開發工作的學生來說,最重要的事情是要把面向對象的編程基礎打扎實,不斷積累項目經驗。無論你是學習Java還是C#還是C++,只要堅持,都能有個很好的發展前景。有了扎實的基礎,無論熱點轉向什麼方向,你都能很快地識別並適應!我們華大銳志的很多專兼職老師和技術界的朋友,由於有著深厚的技術背景和功底,所以在職場上總是能拿到那些最高的薪水:在Java流行的時候依靠EJB獲得一萬三的薪水,在開源流行的時候依靠SSH承接數百萬元的項目,在手機開發流行的時候一邊依靠Android技術拿著公司三十萬元的年薪,一邊自己做手機小游戲全球下載量超過十萬!

保持你的信心、選定你的方向、選擇合適的學習途徑,你會成功!

閱讀全文

與北京java兼職相關的資料

熱點內容
django19常用版本 瀏覽:521
三國志11保存在哪個文件夾 瀏覽:88
iphone4s加速 瀏覽:108
編程內存和顯卡哪個重要 瀏覽:672
android連接網路列印機 瀏覽:195
linuxsftp如何上傳文件 瀏覽:603
蘋果文件覆蓋 瀏覽:327
網路足彩名人有哪些 瀏覽:639
pc共享網路給電腦 瀏覽:796
linuxkill重啟進程 瀏覽:658
sketchup景觀教程 瀏覽:730
win10管理找不到模塊 瀏覽:472
蘋果手機查看電腦文件 瀏覽:61
微信不訪問視頻文件夾嗎 瀏覽:259
文件夾加密大師注冊碼 瀏覽:1
onedrive怎麼上傳文件 瀏覽:488
android多線程寫文件棧溢出 瀏覽:242
台電酷閃量產工具 瀏覽:837
如何破壞文件 瀏覽:15
從什麼網站上查找國家標准 瀏覽:254

友情鏈接