版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
郝斌2016年2月25日16:54:54學(xué)完學(xué)數(shù)據(jù)庫(kù)。
根據(jù)ppt上講的順序去敲代碼,有不懂得可以查幫助文檔API
1、java概述
sun公司Green項(xiàng)目hotjava瀏覽器
2、java特點(diǎn)
簡(jiǎn)單易學(xué):沒(méi)有c和C++的指針,內(nèi)存申請(qǐng)和釋放
安全性高:強(qiáng)類(lèi)型,垃圾回收機(jī)制,禁止非法內(nèi)存訪(fǎng)問(wèn)。
跨平臺(tái):作為一種網(wǎng)絡(luò)語(yǔ)言,其源代碼被編譯成一種結(jié)構(gòu)中立的
中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。
java源程序被編譯成一種與機(jī)器無(wú)關(guān)的字節(jié)碼格式,在Java虛擬機(jī)
上運(yùn)行。
硬件操作系統(tǒng)編譯器高級(jí)語(yǔ)言程序用戶(hù)
多線(xiàn)程的。即能夠使得一個(gè)程序同時(shí)執(zhí)行多個(gè)任務(wù)。
3、java虛擬機(jī)JVM
4、JVM的平臺(tái)相關(guān)性:java源代碼與字節(jié)碼是與機(jī)器無(wú)關(guān)的,故在
裝有不同操作系統(tǒng)的機(jī)器上,需要有專(zhuān)門(mén)為該操作系統(tǒng)開(kāi)發(fā)的JVM,
JVM是與機(jī)器有關(guān)的。
5、java的應(yīng)用領(lǐng)域
1、J2SE,主要用來(lái)開(kāi)發(fā)桌面應(yīng)用軟件
2、J2ME,嵌入式開(kāi)發(fā),像手機(jī)里的軟件,掌上電腦
3、J2EE,屬于網(wǎng)絡(luò)編程,JSP等,
6、怎么學(xué)JAVA語(yǔ)言。
《java就業(yè)培訓(xùn)》張孝祥,《java學(xué)習(xí)筆記》林信良
張孝祥,孫鑫,張利國(guó),馬士兵
7、學(xué)習(xí)目標(biāo),了解程序語(yǔ)言及發(fā)展歷史,掌握語(yǔ)法規(guī)則,掌握常用
類(lèi)的使用掌握編程邏輯思維能力:會(huì)看懂程序,會(huì)調(diào)試程序,理解并
應(yīng)用面對(duì)對(duì)象的設(shè)計(jì)思想。為將來(lái)學(xué)習(xí)J2EE做準(zhǔn)備。
8、環(huán)境變量的設(shè)置:2016年2月26日15:03:45
為什么要設(shè)置path:1、在dos的任何目錄下我們都可以運(yùn)行系統(tǒng)
自帶的命令;2、要想在dos下運(yùn)行用戶(hù)自己的程序,則必須進(jìn)入
到改程序的當(dāng)前目錄下方課運(yùn)行;3、如果希望在dos的任何目錄
下都可以運(yùn)行自己創(chuàng)建的程序,則需要我們自己手動(dòng)設(shè)置操作系統(tǒng)自
帶的環(huán)境變量path.
path的設(shè)置:操作系統(tǒng)是利用path變量來(lái)尋找當(dāng)前程序所存放的
路徑,并且以最先找到的為準(zhǔn)。路徑與路徑之間用分號(hào);分開(kāi)。
setpath=%path%;c:\Intel;
java語(yǔ)言運(yùn)行
publicclassMyApp{
publicstaticvoidmain(String[]args){
System.out.printin("我能學(xué)好Java語(yǔ)言!");
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++
C:\Users\asus>cdF:\java
C:\Users\asus>f:
F:\java>javacMyapp.java
C:\Users\asus>f:
F:\java>javaMyapp
錯(cuò)誤:找不到或無(wú)法加載主類(lèi)MyappF:\>cdjava
F:\java>JavaMyAppF:\java>javacMyApp.java
我能學(xué)好Java語(yǔ)言!
F:\java>javaMyApp
F:\java>我能學(xué)好Java語(yǔ)言!
c語(yǔ)言編譯后exe運(yùn)行:
C:\Users\asus>cdF:\java
C:\Users\asus>f:
F:\java>fff.exe
a=5,b=3
9、classpath的設(shè)置。
操作系統(tǒng)是利用classpath變量來(lái)尋找當(dāng)前后綴為class的字節(jié)碼
文件所存放的路徑,并且以最先找到的為準(zhǔn)。
10、常見(jiàn)dos命令。
cd\表示進(jìn)入當(dāng)前根目錄下
cdA\B\C表示當(dāng)前目錄下的A文件夾下的B文件夾下的C文
件夾下面
E:進(jìn)入E盤(pán)根目錄
dir查看文件夾下文件信息
cis清屏
javacname..java編譯java文件
javaname運(yùn)行java文件,即打開(kāi).class文件,
編譯時(shí)寫(xiě)文件名,運(yùn)行時(shí)寫(xiě)文件中的類(lèi)名。故文件的名字和類(lèi)名
最好一樣。
11、Java語(yǔ)言的基本要素——標(biāo)識(shí)符
程序員對(duì)程序中的各個(gè)元素加以命名時(shí)使用的命名記號(hào)稱(chēng)為標(biāo)識(shí)
符(identifier)包括:類(lèi)名、變量名、常量名、方法名、...
標(biāo)識(shí)符是以字母,下劃線(xiàn)(_)美元符($)開(kāi)始的一個(gè)字符序列,
后面可以跟字母,下劃線(xiàn),美元符,數(shù)字。
關(guān)鍵字:abstractdefaultifprivate
12、數(shù)據(jù)類(lèi)型
基本數(shù)據(jù)類(lèi)型:
數(shù)值型(整數(shù)類(lèi)型(int,byte,short,long),浮點(diǎn)類(lèi)型(float,
double))
字符型(char)
布爾型(boolean)
引用數(shù)據(jù)類(lèi)型:(類(lèi)(class),接口(interface),數(shù)組);
13、輸出數(shù)據(jù)的格式控制:
%d(int,longint,)
%f(float,double)
%c(char)
%x,%X,%#X,%#x(intlongint)
%s(string)
14、常量
(1)整型常量:十進(jìn)制,十六進(jìn)制,八進(jìn)制
一個(gè)常量整數(shù)默認(rèn)是int類(lèi)型,如果數(shù)字過(guò)大,則必須在末尾
力口L,否貝IJ會(huì)報(bào)錯(cuò)。例:longi=5678678956789;//error
longi=5678678956789L;//ok
⑵浮點(diǎn)型:一個(gè)實(shí)數(shù)默認(rèn)是double類(lèi)型。如果希望一個(gè)實(shí)數(shù)是
float類(lèi)型,可以在數(shù)字后面加f(F)。將一個(gè)double類(lèi)型數(shù)值付給float
類(lèi)型變量,編譯時(shí)會(huì)報(bào)錯(cuò)。
例:floatx=2.2;//errorfloatx=2.2f;//ok
(3)字符常量:
必須用單引號(hào)括起來(lái);Java中字符和字符串都用Unicode編
碼表示;在Unicode編碼中一個(gè)字符占兩個(gè)字節(jié)?!產(chǎn)''\n'\uxxxx'
特殊字符的常量表示法
'\\"\n'
(4)布爾類(lèi)型:用boolean表示,不能寫(xiě)成bool;布爾型數(shù)據(jù)只有
兩個(gè)值true和false,且他們不對(duì)應(yīng)于任何整數(shù)值。
定義:booleanb=true
只能參與邏輯關(guān)系運(yùn)算:&&II
classBiJiao
publicstaticvoidmain(String[]args)
(
floata=12.45f;
doubleb=45.5;
booleane;
booleand;
System.out.printf("e=%b\n",e=a<=b);
System.out.printf("d=%b\n",d=12.45<=45.5);
|
}
結(jié)果:e=true
d=true
+++++++++++++++++++++++++++++++++++++++++++++++
15、不同類(lèi)型變量的字節(jié)。(一個(gè)字節(jié)byte八位bit)
■We占用一個(gè)字節(jié),數(shù)字大小為.27—27-1
■陋t占用兩個(gè)字節(jié),數(shù)字大小為.2"—2忤1
■叫自用四個(gè)字節(jié),數(shù)字大小為-2”—23L1
■Ig吧占用八個(gè)字節(jié),數(shù)字大小為,63—263」
■float占用四個(gè)字節(jié),數(shù)字大小為1.4E45~3.4E+38,-1.4E-45?3.4E+38
7■用二進(jìn)制的指數(shù)形式表示一個(gè)浮點(diǎn)數(shù)的格式,如:101*22,101*2V
■double占用八個(gè)字節(jié),數(shù)字大小為4.9E,324~1.7E+308,-4.9E-324--
1.7E+308。
■char占兩個(gè)字節(jié),數(shù)字大小為0-216-1,是Unicode編碼。
一,X
■boolean占一個(gè)字節(jié),其取值只有兩個(gè),true和falsM。
16、不同類(lèi)型的變量相互轉(zhuǎn)換:一般小字節(jié)可以轉(zhuǎn)換成高字節(jié)。否
則得執(zhí)行強(qiáng)制轉(zhuǎn)換。
byteb=10;//1個(gè)字節(jié)
inti=6;//4個(gè)字節(jié)
i=b;//okb=i;//error會(huì)丟失數(shù)據(jù)
b=(byte)i;//ok強(qiáng)制類(lèi)型轉(zhuǎn)化
//b=i;//本語(yǔ)句錯(cuò)誤,上面的(byte)i并沒(méi)有改變i本身的數(shù)據(jù)類(lèi)
型。
17、算術(shù)運(yùn)算符:
(1)“+”可以表示數(shù)值的相加,字符串的聯(lián)接,也能把非字符轉(zhuǎn)換
成字符串。
如:“123”+“abc”的結(jié)果是“123abc”如:“x”+123;的結(jié)果是“x123”
System.out.printin('a'+l);System.out.printin(""+'a'+l);
結(jié)果98al
(2)除法運(yùn)算符(/)
跟C語(yǔ)言一樣。
(3)取余運(yùn)算符(%)
java中允許取余取余運(yùn)算符的被除數(shù)和除數(shù)是實(shí)數(shù),(與C/C++
不同)。但所得余數(shù)的正負(fù)只和被除數(shù)相同。
⑷邏輯與,邏輯或。
跟C語(yǔ)言一樣。
(5)位運(yùn)算符:(0表示正數(shù),1表示負(fù)數(shù))
&(按位與)把兩個(gè)數(shù)字所有的二進(jìn)制位相與:=1&0=0,
0&0=0;0&1=0
I(按位或)把兩個(gè)數(shù)字所有的二進(jìn)制位相與:1|1=1,1|0=1,
0|0=0;0|1=1
~(按位取反)把一個(gè)數(shù)字的所有二進(jìn)制位取反。~1=0~0=1
A(按位異或)把兩個(gè)數(shù)字的所有二進(jìn)制位異或1八1=0,1Ao=1,
0A0=0;0Al=l
利用異或?qū)崿F(xiàn)換值一
importjava.util.Seanner;
publicclassVariableExchange
publicstaticvoidmain(String[]args)
(
Scannerscan=newScanner(System.in);
System.out.printing請(qǐng)輸入A的值");
longA=scan.nextLongQ;
System.out.printing請(qǐng)輸入B的值");
longB=scan.nextLongQ;
System.out.println("A="+A+"\tB="+B);
System.out.printin("執(zhí)行變量互換...");
A=AAB;
B=BAA;
A=AAB;
System.out.println("A="+A+"\tB="+B);
importjava.util.Scanner;//是util而不是until
publicclassLeapYear
publicstaticvoidmain(String[]args)〃后面不應(yīng)該加分號(hào)
(
Scannerscan=newScanner(System.in);
System.out.printing請(qǐng)輸入一個(gè)年份:");
longyear=scan.nextLongO;
if(year%4==0&&year%100!=0||year%4==0)
System,out.print(year+"年是閏年!");
else
System.out.print(year+"年是不是閏年!");
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++電子書(shū)113
>>(右移)與C/C++不同,對(duì)于有符號(hào)數(shù),在右移時(shí),符號(hào)位將隨
同移動(dòng),當(dāng)為正數(shù)時(shí),最高位0,最高位補(bǔ)零,而為負(fù)數(shù)時(shí),最高位
為1,最高位補(bǔ)1。移位能讓用戶(hù)實(shí)現(xiàn)整數(shù)除以或乘以2的n次方的效
果。
?>(右移)無(wú)論最高位是0還是1,左邊移空的都補(bǔ)為零。
(6)自增自減
??a(-a)〃表示在使用變量a之前,先使a的值加(W)V
a-w(a-)〃表示在便用變量a之后,使a的值加〈WD1
【例3.22】粗略地分析++a與a++的作用都相當(dāng)于8=8+1,賦值a=4,計(jì)算a++和Ha的值.
inta=4:〃聲明變?a,并*值
b=++a;//#a自加Kt給b
b=a??://Ha自加It給b
第2條語(yǔ)句是先將a自加1.把a(bǔ)自加后的值賦給b,自加后a的值是5,b的值也是5;第3條語(yǔ)
句是先將a的值賦給b,然后再將a自加,自如后a的值是5,而b的值是4.
(7)三元運(yùn)算符booleanb=20<=45?true:false;
18、流程控制
同C語(yǔ)言。
classTriangle//啟動(dòng)類(lèi)
(
inta,b,c;
intzhouchangQ
(
returna+b+c;
}
doublearea()
doublep=1.0*(a+b+c)/2;
returnMath.sqrt(p*(p-a)*(p-b)*(p-c));
classTestTriangle
publicstaticvoidmain(String[]args)
Trianglet=newTriangleQ;
t.a=3;
t.b=4;
t.c=5;
System.out.printf("%d%f\n",t.zhouchangO,t.area());
)
}
+++++++++++++++++++++++++++2016年2月26日18:32:12
9
19、面向過(guò)程設(shè)計(jì)思想
優(yōu)點(diǎn):1、分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一
步一步實(shí)現(xiàn)。
2、以算法為核心,
3、自頂向下設(shè)計(jì),要求一開(kāi)始必須對(duì)問(wèn)題有很深的了解
4、將大問(wèn)題轉(zhuǎn)化為若干問(wèn)題來(lái)求解
5、表現(xiàn)形式:用函數(shù)來(lái)作為劃分程序的基本單位
6、直接面向問(wèn)題。
缺點(diǎn):數(shù)據(jù)和操作分離開(kāi),對(duì)數(shù)據(jù)與操作的修改變得很困難;數(shù)據(jù)的
安全性得不到保證;程序架構(gòu)的依賴(lài)關(guān)系不合理。
20、面向?qū)ο蟮脑O(shè)計(jì)思想
1、確定該問(wèn)題由哪些問(wèn)題組成!先用類(lèi)模擬出該事物
2、通過(guò)類(lèi)簡(jiǎn)介解決問(wèn)題。
21、類(lèi):把一類(lèi)事物靜態(tài)屬性和動(dòng)態(tài)可以執(zhí)行的操作組合在一起所
得的這個(gè)概念就是類(lèi)
類(lèi)是抽象的,用來(lái)模擬一類(lèi)事物,是一個(gè)概念,一旦定義了,類(lèi)
的概念就永遠(yuǎn)存在
22、對(duì)象:類(lèi)的一個(gè)個(gè)體;具體的實(shí)實(shí)在在存在的事物;生命周期
是短暫的。
汽車(chē)設(shè)計(jì)圖
一
!1~~1
第一輛第二輛第三輛
■如果將對(duì)象比作汽車(chē),那么類(lèi)就是汽車(chē)的設(shè)計(jì)圖紙
類(lèi)的定義:
classPerson
{
intage;
voidshout()
(
System.out.println("oh,mygod!"+age);
}
}
age是類(lèi)的屬性,也叫類(lèi)數(shù)據(jù)成員,也叫字段,也叫域
shout是方法,也叫類(lèi)的成員函數(shù)
shout方法可以直接訪(fǎng)問(wèn)同一個(gè)類(lèi)中的age變量。
23、內(nèi)存分配
--------------------類(lèi)對(duì)象實(shí)例1---------------------------------
classA
inti;
intj;
}
classTestMemo
(
publicstaticvoidmain(String[]args)
(
Aaa=newA();//(A*)malloc(sizeof(A))
//newA();在堆中動(dòng)態(tài)分配一塊區(qū)域,被當(dāng)作了A對(duì)象
//aa本身的內(nèi)存是在棧中分配的
//堆中內(nèi)存的地址付給了aa
//aa指向堆中的內(nèi)存,aa代表了堆中的內(nèi)存。
//aa.i代表aa靜態(tài)指針變量所指向的動(dòng)態(tài)內(nèi)存中的A對(duì)象
這個(gè)i成員
//aa.j代表aa靜態(tài)指針變量所指向的動(dòng)態(tài)內(nèi)存中的A對(duì)象
這個(gè)j成員
aa.i=10;
aa.j=20;
System.out.printf("%d,%d\n",aa.i,aa.j);
+++++++++++++++++++++++++++++2016年2月26日23:47:30
11未完
-------------------------------------------------------------貼
吧看到的。
"畢竟我是新來(lái)的,什么都不懂,就說(shuō)了一句對(duì)不起",這樣不行的,
得說(shuō)給我1個(gè)小時(shí)保證能做出來(lái),做不出來(lái)砍手(只是舉個(gè)例子,得
給個(gè)時(shí)間,給個(gè)保證,讓人安心,回個(gè)對(duì)不起,很難不讓人聯(lián)想到已
經(jīng)做不出來(lái)了,如果對(duì)不起有用的話(huà),還要警察叔叔干什么);
"后來(lái)大姐說(shuō)她自己來(lái),不需要我了",不能指望所有人都有安全感,
能夠一直信任別人,畢竟他不是你的腦殘粉對(duì)吧,而且能夠說(shuō)出"還
不如她自己寫(xiě)‘這句話(huà),說(shuō)明他也有任務(wù)在身,教人的時(shí)間是不算入
工作時(shí)間的,上頭需要一個(gè)結(jié)果,他就自己幫你寫(xiě)好了,這個(gè)是花費(fèi)
了他的時(shí)間,算你的成果,有人會(huì)甘心么,只好在圣上面前參你一本,
“最后就自己摸索的寫(xiě)了幾個(gè)頁(yè)面交給她了",超時(shí)了,而且你寫(xiě)的跟
他的肯定不一樣,難道讓他花時(shí)間看你的,然后改他的?有人會(huì)甘心
么;
"讓我模仿著寫(xiě)登錄,我想終于能寫(xiě)Java代碼了,所以前臺(tái)頁(yè)面就隨
便寫(xiě)了寫(xiě)",以后問(wèn)任務(wù)的時(shí)候要問(wèn)清楚要什么效果,不清楚就要問(wèn)
清楚,因?yàn)橐坏┏鲥e(cuò)(要求做完結(jié)果只做了一般或者做出來(lái)不一樣的
東西)需要自己加班彌補(bǔ),沒(méi)人會(huì)承認(rèn)自己沒(méi)說(shuō)清楚(信息傳輸?shù)倪^(guò)
程會(huì)有損失,口口相傳更為嚴(yán)重,到了最后會(huì)發(fā)現(xiàn)跟第一個(gè)人說(shuō)的已
經(jīng)不是一個(gè)意思了),只會(huì)說(shuō)我以為他都懂了,而且他也沒(méi)問(wèn),所以
就沒(méi)說(shuō);
"看bootstrap看的挺細(xì)致的,兩天看完",30多歲的大哥哥,對(duì)于2
天看完bootstrap是不會(huì)接受的,
http:///article/19192ad83aa565e53e570
7cl.html,拿來(lái)復(fù)制粘貼,照著文檔改一改就出來(lái)了,有人可能會(huì)
說(shuō)這是碼農(nóng)的行為,死記硬背,不理解就干,這個(gè)沒(méi)錯(cuò),但是細(xì)致地
看去理解,這個(gè)應(yīng)該是下班之后做的(這就是學(xué)校和公司的區(qū)別,學(xué)
校你掏錢(qián),你做主,公司他掏錢(qián),他做主),如果布置個(gè)活得考慮給
個(gè)完全理解的時(shí)間,花費(fèi)太高,實(shí)習(xí)3000元的公司承擔(dān)不起;
“別人都不跟我說(shuō)話(huà)",你指望著他們跟你說(shuō)話(huà),他們指望著你跟他們
說(shuō)話(huà),隔著一層窗戶(hù)紙,都不說(shuō)破,最后形同陌路,摸不到青春的奶
子,你小時(shí)候?yàn)槭裁唇徊坏脚笥?,其?shí)現(xiàn)在想一想,勇敢點(diǎn)是不是
就破處了,破處之后是不是就會(huì)一直想著要了
---------------類(lèi)對(duì)象實(shí)例2----------------------2016年2月27日
21:39:59
classA
inti;
intj;
classTestMemo
{
publicstaticvoidmain(String[]args)
Aaal=newA();
Aaa2=newA();
aa.i=50;
aa.j=80;
System.out.printf("%d,%d\n",aal.i,aa2.i);
}
)
結(jié)論:一個(gè)newA()生成的對(duì)象是不一樣的。
++++++++++++結(jié)果5080
+++++++++++++++++++++++++++++++++
--------------類(lèi)對(duì)象實(shí)例3---------------------------------------
classA
inti;
intj;
classTestMemo
publicstaticvoidmain(String[]args)
(
Aaal=newA();
Aaa2=aal;//最后aal和aa2同時(shí)指向堆中的一個(gè)對(duì)象。
aal.j=50;
System.out.printf("%d\n",aa2.j);//
)
}
++++++++++++結(jié)果50
+++++++++++++++++++++++++++++++++
-------------訪(fǎng)問(wèn)控制符-------------------------------------
類(lèi)的訪(fǎng)問(wèn)控制符有四種:publicprotect默認(rèn)private
在一個(gè)類(lèi)的內(nèi)部,所有的成員可以相互訪(fǎng)問(wèn),訪(fǎng)問(wèn)控制符是透明的;
訪(fǎng)問(wèn)控制符是針對(duì)外部訪(fǎng)問(wèn)而言的。
在一個(gè)類(lèi)的外部:通過(guò)類(lèi)對(duì)象名.私有成員名
的方式是無(wú)法訪(fǎng)問(wèn)該對(duì)象中的私有成員的,這樣寫(xiě)編譯時(shí)會(huì)出
錯(cuò)。
classTriangle_2
privateinta,b,c;//如果不加訪(fǎng)問(wèn)控制符private,將默認(rèn)為
default,可以被任何一個(gè)對(duì)象去使用。
intzhouchangQ
(
returna+b+c;
|
voidset(inti,intj,intk)
(
a=i;
b=j;
c=k;
}
doublearea()
£
doublep=1.0*(a+b+c)/2;
returnMath.sqrt(p*(p-a)*(p-b)*(p-c));
classTestTriangle_2
publicstaticvoidmain(String[]args)
(
Trianglet=newTriangleQ;
t.set(3,4,5);
System.out.printf("%d%f\n",t.zhouchangO,t.area());
}
)
+++++++++++++++++++++++++++++++++++++++++++++++++
+++++++
------------類(lèi)的構(gòu)造函數(shù)----------------------------------
一14
classA
{
privateinti;
privateintj;
publicA()
//System.out.printf("嘿嘿!\n\n");
//構(gòu)造函數(shù)
publicA(inta,intb)
i=a;
j=b;
System.out.printf("無(wú)參構(gòu)造函數(shù)被調(diào)用了!\n");
publicvoidshow()
System.out.printf("i=%d,j=%d\n",i,j);
classTestConst_2
publicstaticvoidmain(String[]args)
Aaa=newA(l,2);
//Aaa2=newA(l,2,3);//error
Aaa3=newA();
//
////System.out.printf("%d%d\n",aa.i,aa.j);
//aa.show();
}
)
------------------------------------------------------2016年2月27日
23:16:04
老程序員的事業(yè)忠告
咱當(dāng)程序員也有不少年頭了,不算有出息,環(huán)顧四周,也沒(méi)有看見(jiàn)幾
個(gè)有出息的!回顧程序員生涯,感慨萬(wàn)千,愿意講幾句掏心窩子的話(huà),
也算給咱們師弟師妹們提個(gè)醒,希望他們比咱們強(qiáng)!
方法/步驟
一、好好規(guī)劃自己的路,不要跟著感覺(jué)走!
根據(jù)個(gè)人的理想決策安排,絕大部分人并不指望成為什么院士或教
授,而是希望活得滋潤(rùn)一些,爽一些。那么,就需要慎重安排自己的
軌跡。從哪個(gè)行業(yè)入手,逐漸對(duì)該行業(yè)深入了解,不要頻繁跳槽,特
別是不要為了一點(diǎn)工資而轉(zhuǎn)移陣地,從長(zhǎng)遠(yuǎn)看,這點(diǎn)錢(qián)根本不算什
么,當(dāng)你對(duì)一個(gè)行業(yè)有那么幾年的體會(huì),以后錢(qián)根本不是問(wèn)題。頻繁
地動(dòng)蕩不是上策,最后你對(duì)哪個(gè)行業(yè)都沒(méi)有摸透,永遠(yuǎn)是新手!
二、可以做技術(shù),切不可沉湎于技術(shù)。
千萬(wàn)不可一門(mén)心思鉆研技術(shù)!給自己很大壓力,如果你的心思全部放
在這上面,那么注定你將成為孔乙己一類(lèi)的人物!適可而止為之,因
為技術(shù)只不過(guò)是你今后前途的支柱之一,而且還不是最大的支柱,除
非你只愿意到老還是個(gè)程序員!
三、不要去做技術(shù)高手,只去做綜合素質(zhì)高手!
在企業(yè)里混,我們時(shí)常瞧不起某人,說(shuō)他“什么都不懂,憑啥拿那
么多錢(qián),憑啥升官!”這是普遍的典型的工程師的迂腐之言。人家能
上去必然有他的本事,而且是你沒(méi)有的本事。你想想,老板搞經(jīng)營(yíng)那
么多年,難道見(jiàn)識(shí)不如你這個(gè)新兵?人家或許善于管理,善于領(lǐng)會(huì)
老板意圖,善于部門(mén)協(xié)調(diào)等等。因此務(wù)必培養(yǎng)自己多方面的能力,包
括管理,親和力,察言觀(guān)色能力,攻關(guān)能力等,要成為綜合素質(zhì)的
高手,則前途無(wú)量,否則只能躲在角落看示波器!技術(shù)以外的技能才
是更重要的本事??!從古到今,美國(guó)日本,一律如此!
四、多交社會(huì)三教九流的朋友!
不要只和工程師交往,認(rèn)為有共同語(yǔ)言,其實(shí)更重要的是和其他類(lèi)人
物交往,如果你希望有朝一日當(dāng)老板或高層管理,那么你整日面對(duì)
的就是這些人。了解他們的經(jīng)歷,思維習(xí)慣,愛(ài)好,學(xué)習(xí)他們處理問(wèn)
題的模式,了解社會(huì)各個(gè)角落的現(xiàn)象和問(wèn)題,這是以后發(fā)展的巨大
的本錢(qián),沒(méi)有這些以后就會(huì)笨手笨腳,跌跌撞撞,遇到重重困難,交
不少學(xué)費(fèi),成功的概率大大降低!
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++
管理與技術(shù)?
-------------------------------------------------------------2016年2月
29日14:47:00
classB
{
publicinti=10;
publicvoidshow()
(
System.out.printf("%d\n",i);
classM
publicstaticvoidmain(String[]args)
Bbbl=newB();
Bbb2=newB();
//bbl=bb2;
//bbl.i=20;
//bb2.show;//結(jié)果為20.想不明白的時(shí)候畫(huà)一下圖。
bbl.i=20;
bb2.show();//結(jié)果為10
+++++++++++++++++++++++++++++++++++++++++++++++++
函數(shù)的重載:同名的函數(shù)通過(guò)不同的形參做類(lèi)似的事情,就叫做函數(shù)
的重載。
函數(shù)重載要求:函數(shù)的形參個(gè)數(shù),形參順序,形參數(shù)據(jù)類(lèi)型,三個(gè)至
少有一個(gè)是不一樣的
如果兩個(gè)函數(shù)只是函數(shù)的返回值不一樣,其他的一樣,就不構(gòu)成重載,
編譯時(shí)會(huì)出錯(cuò)。
classTestOver
staticintadd(inta,intb)
returna+b;
staticdoubleadd(doublex,doubley)//如果改為static
doubleadd(intx,inty)將會(huì)報(bào)錯(cuò)
returnx+y;
staticintadd(inta,intb,intc)
returna+b+c;
publicstaticvoidmain(String[]args)
System.out.printf("%d\n",add(1,2));
System.out.printf("%f\n",add(1.3,2.2));
System.out.printf("%d\n",add(1,2,3));
++++++++++++++結(jié)果:33.500000
6++++++++++++++++++++++++++++++++
-------------------構(gòu)造函數(shù)例子2-------------------------------------
classA
{
publicinti=2;
publicbooleanflag=true;
publicA(intj,booleanf)//public:構(gòu)造方法修飾符,A構(gòu)造方
法的名稱(chēng)
i=j;
flag=f;
}
publicvoidshow()
System.out.printf("%d\n",i);
System.out.printf("%b\n",flag);//boolean
出
classTestconst_2
(
publicstaticvoidmain(String[]args)
(
Aaa=newA(88,false);
aa.show();
}
}
結(jié)論:系統(tǒng)會(huì)先執(zhí)行定義時(shí)賦的初值,然后再執(zhí)行構(gòu)造函數(shù)中賦的初
值。如果在定義的時(shí)候不初始化,則他的值是系統(tǒng)自動(dòng)分配好的默認(rèn)
值。
+++++++++++++++++++++++++結(jié)果88false
+++++++++++++++++++
---------------this關(guān)鍵字一視頻19電子書(shū)191—2016
年3月5日07:43:39
this是一個(gè)系統(tǒng)隱含的指針被自動(dòng)附加在非靜態(tài)的成員函數(shù)參
數(shù)列表中。
當(dāng)前時(shí)刻,哪個(gè)對(duì)象調(diào)用該函數(shù),那么this就指向當(dāng)前調(diào)用該函
數(shù)的對(duì)象,系統(tǒng)會(huì)自動(dòng)在該函數(shù)的參數(shù)列表中添加一個(gè)隱藏的指針,
并且把調(diào)用該函數(shù)的對(duì)象的地址賦給this指針,這樣一來(lái),在函數(shù)的
內(nèi)部通過(guò)this就可以訪(fǎng)問(wèn)當(dāng)前正在調(diào)用該函數(shù)的對(duì)象的成員
靜態(tài)函數(shù)內(nèi)部,沒(méi)有this指針。
關(guān)鍵字this代表當(dāng)前正在調(diào)用該方法的那個(gè)對(duì)象,具體可分為兩
種情況:1、在普通方法中,this代表方法的調(diào)用者,即本次調(diào)用了
該方法的對(duì)象。2、在構(gòu)造方法中,關(guān)鍵字this代表了該方法本次運(yùn)
行所創(chuàng)建的那個(gè)新對(duì)象。
classA
(
privateinti;
publicA(inti)
{
this.i=i;//將形參i賦給該構(gòu)造方法本次運(yùn)行所創(chuàng)建的
那個(gè)新對(duì)象的i數(shù)據(jù)成員
}
publicvoidshow(){
System.out.println("i="+this.i);
//this表示當(dāng)前時(shí)刻正在調(diào)用show方法的對(duì)象
//this可以省略
publicclassTestThis
{
publicstaticvoidmain(String[]args){
Aaal=newA(100);
aal.show();
Aaa2=newA(200);
aa2.show();
}
)
i=100i=200
+++++++++++++++++++++++++++++++++++++++++++++++++
+++++++
--------------------static------------20---------2016年3月5
日09:34:17
static屬性i是屬于類(lèi)本身,或者講:沒(méi)有對(duì)象,我們?nèi)匀豢梢灾?/p>
接通過(guò)類(lèi)名的方式訪(fǎng)問(wèn)該類(lèi)內(nèi)部的static屬性。
static屬性和方法雖然屬于類(lèi)本身,雖然可以通過(guò)類(lèi)名的方式訪(fǎng)
問(wèn),但static屬性和方法很明顯也屬于類(lèi)本身,當(dāng)然也可以通過(guò)類(lèi)對(duì)
象和方法來(lái)訪(fǎng)問(wèn)。
只有非private的static成員才可以通過(guò)類(lèi)名的方式訪(fǎng)問(wèn)。
static只是表明了該成員具有了可以通過(guò)類(lèi)名訪(fǎng)問(wèn)的潛在特征,
但是否能通過(guò)類(lèi)名訪(fǎng)問(wèn),還必須滿(mǎn)足一個(gè)條件,就是該類(lèi)名是非
private成員。
/*
2016年3月5日10:01:20
本程序證明了:
靜態(tài)方法不能訪(fǎng)問(wèn)非靜態(tài)成員
非靜態(tài)方法可以訪(fǎng)問(wèn)靜態(tài)成員
*/
classA
{
privatestaticinti=10;
publicintj=99;
publicstaticvoidf()
//g();//error靜態(tài)方法不能訪(fǎng)問(wèn)非靜態(tài)成員
//j=22;//error
System.out.printf("FFFF\n");
}
publicvoidg()
i
//f();//OK說(shuō)明非靜態(tài)方法可以訪(fǎng)問(wèn)靜態(tài)成員
System,out.printf("GGGG\n");
System.out.printf("%d\n",i);
classTestStatic_5
(
publicstaticvoidmain(String[]args)
Aaa=newA();
//aa.g();
aa.f();
//A.g();//error,無(wú)法從靜態(tài)上下文中引用非靜態(tài)方法
類(lèi),對(duì)象,方法,屬性,
sourcefile
classfile
method1
statement
method2
statement
statement
++++++++++++++++++++++++++++++++
繼承extends:利用繼承可以較好的模擬出現(xiàn)實(shí)世界事物之間的關(guān)
系。為多態(tài)創(chuàng)造條件。
2009年5月31日14:59:26
本程序證明了:
1、子類(lèi)內(nèi)部可以訪(fǎng)問(wèn)父類(lèi)非私有的成員
私有成員無(wú)法被子類(lèi)方法訪(fǎng)問(wèn)
2、通過(guò)子類(lèi)對(duì)象名只能訪(fǎng)問(wèn)從父類(lèi)繼承過(guò)來(lái)的非私有成員
總結(jié):
私有不能被繼承
私有物理上已經(jīng)被繼承過(guò)來(lái),只不過(guò)邏輯上程序員不能去訪(fǎng)問(wèn)
它
因此繼承必須慎重,否則會(huì)浪費(fèi)內(nèi)存
*/
classA{
publicinti;
protectedintj;
privateintk;
publicvoidg(){}
privatevoids()0
protectedvoidb(){}
}
classBextendsA{
privatevoidm(){
i=10;
j=20;
//k=30;//error私有屬性不能被繼承
g();
b();
//s();//error私有方法不能被繼承
}
publicvoidf(){
i=10;
j=20;
//k=30;//error私有屬性不能被繼承
g();
b();
//s();//error私有方法不能被繼承
classM{
publicstaticvoidmain(String[]args){
Bbb=newB();
bb.i=20;
bb.j=30;
//bb.k=40;//errork可以在B中訪(fǎng)問(wèn)private
bb.b();
bb.g();
//B.g();//無(wú)法從靜態(tài)上下文中引用非靜態(tài)方法
//bb.s();//error
//bb.k=22;
}
)
+++++++++++++++++++++++++++++++++
java只支持單繼承,不允許多重繼承。單繼承就是一個(gè)類(lèi)只能有一個(gè)
父類(lèi)。多繼承就是一個(gè)類(lèi)可以有多個(gè)父類(lèi)??梢杂卸鄬永^承,即一個(gè)
類(lèi)可以繼承某一個(gè)類(lèi)的子類(lèi),如類(lèi)B繼承了類(lèi)A,類(lèi)C繼承類(lèi)B,那么
類(lèi)C也間接繼承了類(lèi)A。
子類(lèi)可以繼承父類(lèi)所有的成員變量和成員方法,但子類(lèi)永遠(yuǎn)無(wú)法繼承
父類(lèi)的構(gòu)造方法,在子類(lèi)的構(gòu)造方法中可使用語(yǔ)句super(參數(shù)列表)
調(diào)用父類(lèi)的構(gòu)造方法。
++++++++++++++++++++++++2016年3月5日11:54:4928
?headfirstjava?
2016年3月5日14:21:47
子類(lèi)訪(fǎng)問(wèn)父類(lèi)成員的三種方式
在子類(lèi)內(nèi)部訪(fǎng)問(wèn),通過(guò)子類(lèi)對(duì)象名訪(fǎng)問(wèn),通過(guò)子類(lèi)的類(lèi)名訪(fǎng)問(wèn)。經(jīng)驗(yàn)
證子類(lèi)無(wú)法通過(guò)以上三種方式訪(fǎng)問(wèn)父類(lèi)的私有成員,所以,得出結(jié)論,
私有成員無(wú)法被子類(lèi)繼承。
super:
classA{
A(){
System,out.printin("AAAA");
}
A(inti){}
classBextendsA{
B(){
super(2);//如果把該語(yǔ)句注釋掉的化,則編譯器默認(rèn)的是自
動(dòng)隱藏調(diào)用super。;但如果父類(lèi)沒(méi)有無(wú)參的構(gòu)造函數(shù),則會(huì)報(bào)錯(cuò)
//一個(gè)子類(lèi)的構(gòu)造函數(shù)中只能出現(xiàn)一個(gè)super(….)
System.out.println("BBBB");
classCextendsB
(
CO
(
//intk=10;//如果該語(yǔ)句生效則會(huì)出錯(cuò),因?yàn)闀?huì)導(dǎo)致
super。語(yǔ)句不是構(gòu)造函數(shù)的第一條語(yǔ)句
super();//35行每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱
含地調(diào)用super。,如果父類(lèi)沒(méi)有無(wú)參的構(gòu)造函數(shù),那么在編譯的時(shí)
候就會(huì)報(bào)錯(cuò)。
//super。;語(yǔ)句可以寫(xiě),也可以不寫(xiě),不寫(xiě)的化,系
統(tǒng)會(huì)自動(dòng)調(diào)用的
//如果顯示寫(xiě)出來(lái)的話(huà),編譯器要求該語(yǔ)句前面不
能加任何語(yǔ)句,也就是說(shuō)該語(yǔ)句必須保證是第一條語(yǔ)句
//super。也可以改為super⑵;但前提是父類(lèi)必須
有帶一個(gè)參數(shù)的構(gòu)造函數(shù),否則也會(huì)報(bào)錯(cuò)
//如果把35行改為super(2);編譯時(shí)就會(huì)報(bào)錯(cuò)!
System.out.println("CCCC");
classTestSuper_l
(
publicstaticvoidmain(String[]args)
(
Ccc=newC();
//System.out.println("HelloWorld!");
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++
總結(jié):
1、每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super。,
如果父類(lèi)沒(méi)有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。
2、如果顯示的寫(xiě)出super。;語(yǔ)句,則必須保證該語(yǔ)句是第一條語(yǔ)
句,否則會(huì)出錯(cuò)
3、super。;如果不寫(xiě),則編譯器會(huì)自動(dòng)添加,所以此時(shí)如果父類(lèi)沒(méi)
有無(wú)參的構(gòu)造函數(shù)就會(huì)出錯(cuò)
4、既可以顯示寫(xiě)super。;前提是父類(lèi)必須有無(wú)參的構(gòu)造函數(shù)也可
以顯示寫(xiě)super(實(shí)參);前提是父類(lèi)必須有帶參的構(gòu)造函數(shù)
5、調(diào)用父類(lèi)的構(gòu)造函數(shù)的語(yǔ)句必須借助于super,不能直接寫(xiě)父
類(lèi)的類(lèi)名,這與C++不同
6、一個(gè)子類(lèi)的構(gòu)造函數(shù)中只能出現(xiàn)一個(gè)super(....)
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++
重寫(xiě)父類(lèi)方法:是指在子類(lèi)中重新定義父類(lèi)中已有的方法
重寫(xiě)方法必須和被重寫(xiě)方法具有相同的方法名詞、參數(shù)列表和返回值
類(lèi)型
子類(lèi)中不允許出現(xiàn)與父類(lèi)同名同參但不同返回類(lèi)型的方法,如果出
現(xiàn),編譯時(shí)會(huì)報(bào)錯(cuò)
覆蓋方法時(shí),不能使用比父類(lèi)中被覆蓋的方法更嚴(yán)格的訪(fǎng)問(wèn)權(quán)限。
classA{
//publicvoidf(){
//System.out.printf("AAAA\n");
//}
publicvoidf(inti){
System.out.printf("哈哈\n");
classBextendsA{
publicvoidf(){
//super.f();//調(diào)用從父類(lèi)繼承過(guò)來(lái)的f方法
f(10);
System.out.printf("BBBB\n");
publicclassTestOver_2{
publicstaticvoidmain(String[]zhangsan){
Bbb=newB();
bb.f();
)
}
++++++++++++++++++++++++++++++++++++2016年3月5日
16:15:1031
-------------------------------------------------------2016年3月7日
06:23:02
classHuman{
privateStringname;
privateintage;
publicHuman。//不用加分號(hào)
(}
publicHuman(Stringname,intage){
this,name=name;
this,age=age;
}
publicvoidSetName(Stringname){
this,name=name;
}
publicvoidSetage(intage){
this,age=age;
}
publicStringgetlnfor。//是String類(lèi)型而不是void類(lèi)型
Stringstrlnf=name+":"+age;
returnstrlnf;
classStudentextendsHuman{
publicStringschool;
publicStudent(用
publicStudent(Stringname,intage,Stringschool){
super(name,age);
//this.name=name;//error,共有不能訪(fǎng)問(wèn)私有;
//this,age=age;
this,school=school;
)
publicvoidsetSchool(Stringschool){
this,school=school;
publicStringgetlnfor(){
//Stringstrlnf=name+":"+age+""+school;//error,
共有不能訪(fǎng)問(wèn)私有;
Stringstrlnf=super.getlnfor()+":"+school;
returnstrlnf;
}
}
publicclassTestStudent{
publicstaticvoidmain(String[]args){
Studentstl=newStudent("校長(zhǎng)",22,"一中");
System.out.printf("%s\n",stl.getlnforQ);//是stl不是st
“L”
}
07:23:16
****多態(tài)
定義:同一代碼可以隨上下文的不同而執(zhí)行不同的操作,俗稱(chēng)多
O
子類(lèi)對(duì)象可以直接賦給父類(lèi)引用,但父類(lèi)對(duì)象在任何情況下都不可以
直接賦給子類(lèi)引用。
通過(guò)父類(lèi)的引用只能訪(fǎng)問(wèn)子類(lèi)對(duì)象從父類(lèi)繼承過(guò)來(lái)的成員
通過(guò)父類(lèi)引用不能訪(fǎng)問(wèn)子類(lèi)對(duì)象所特有的成員
父類(lèi)引用永遠(yuǎn)不可能直接賦給子類(lèi)引用(只有在父類(lèi)引用本身指向的
就是一個(gè)子類(lèi)對(duì)象時(shí),才可以把父類(lèi)引用強(qiáng)制轉(zhuǎn)化為子類(lèi)引用,其他
情況下不允許把父類(lèi)引用強(qiáng)制轉(zhuǎn)化為子類(lèi)引用)
/*
2009年2月11日17:27:54
父類(lèi)引用永遠(yuǎn)不可能直接賦給子類(lèi)引用
注意:
只有在父類(lèi)引用本身指向的就是一個(gè)子類(lèi)對(duì)象時(shí),才可以把父
類(lèi)引用強(qiáng)制轉(zhuǎn)化為子類(lèi)引用
其他情況下不允許把父類(lèi)引用強(qiáng)制轉(zhuǎn)化為子類(lèi)引用
*/
classA
classBextendsA
publicclassTestPoly_3
publicstaticvoidmain(String[]args)
(
Aaa=newA();
Bbb=newB();
//bb=aa;//error
//bb=(B)aa;//24行編譯沒(méi)有錯(cuò)誤,但運(yùn)行時(shí)出錯(cuò)!
因?yàn)閍a指向的是父類(lèi)對(duì)象
Aaa2=newB();
//bb=aa2;//error永遠(yuǎn)不可以把父類(lèi)引用直接賦給子
類(lèi)引用
bb=(B)aa2;//OK因?yàn)閍a2本身指向的就是一個(gè)B類(lèi)對(duì)
象所以可以進(jìn)行強(qiáng)制轉(zhuǎn)化,注意與24行的區(qū)別如果父類(lèi)引用指
向的是個(gè)子類(lèi)對(duì)象,則可以通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)化把父類(lèi)引用強(qiáng)制轉(zhuǎn)化為
子類(lèi)引用,注意必須強(qiáng)制轉(zhuǎn)化,在Java中無(wú)論如何絕對(duì)不可能直接
把父類(lèi)引用賦給子類(lèi)引用的
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++
抽象類(lèi):通常用來(lái)作為一個(gè)類(lèi)族的最頂層的父親,用最底層的類(lèi)來(lái)表
示具體的事物。
abstract抽象類(lèi)不一定有抽象方法,有抽象方法一定有抽象類(lèi)。
//有抽象方法的類(lèi)一定是抽象類(lèi)
abstractclassA
(
abstractpublicvoidf();//沒(méi)有方法體的方法叫做抽象方法,
抽象方法要求末尾必須得加分號(hào),前面必須得加
abstract
}
//抽象類(lèi)不一定有抽象方法
abstractclassB
(
publicvoidg()
}
publicclassTestAbstract_l
publicstaticvoidmain(String[]args)
(
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++
+++++++
abstractclassA
(
abstractpublicvoidf();
}
classBextendsA
(
publicvoidf()
System.out.printf("BBBB\n");
publicclassTestAbsPoly_l
publicstaticvoidmain(String[]args)
(
//Aaa=newA();//error18行
Bbb=newB();//OK
bb.f();//OK
Aaa;//23行OK可以定義一個(gè)抽象類(lèi)的引用,但是不
可以定義一個(gè)抽象類(lèi)的對(duì)象,所以18行error,本行OK
aa=bb;
aa.f();
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++
final關(guān)鍵字可以修飾:整個(gè)類(lèi),類(lèi)中的若干個(gè)屬性,類(lèi)中的若干個(gè)方
法。
如果認(rèn)為一個(gè)類(lèi)已經(jīng)很完美了不需要子類(lèi)再去繼承的時(shí)候可以在前
面加final。
修飾類(lèi)中的若干個(gè)屬性時(shí),表示該屬性必須被賦值,并且只能被賦一
次值。
修飾方法時(shí),表示該方法可以被子類(lèi)繼承,但不可以被重寫(xiě)。
classA
(
finalpublicinti=10;//常變量
publicA()
i=10;
publicvoidf()
//i=22;
classTestFinal_l
publicstaticvoidmain(String[]args)
classA
finalpublicvoidf()//如果在public前面力口final,則編譯時(shí)就
會(huì)報(bào)錯(cuò)
f
System,out.println("AAAA");
}
}
classBextendsA
(
//publicvoidf()
//{
//System,out.println("BBBB");
//}
publicclassTestFinal_2
publicstaticvoidmain(String[]args)
+++++++++++++++++++++++++++++++++++++++++++++++++
+++++
接口
定義:就是抽象方法和常量值的集合。從本質(zhì)上看,接口就是一種特
殊的抽象類(lèi)
格式:[public]interfaceinterfacename[extends]
接口中定義的屬性必須是publicstaticfinal的,而接口定義的方法
則必須是publicabstract的,因此這些修飾符可以省略或部分省
略。
publicstaticfinalinti;
publicabstractvoidf();
接口的實(shí)現(xiàn)implements(類(lèi)可以繼承類(lèi),類(lèi)不可以繼承接口,
但類(lèi)可以實(shí)現(xiàn)接口)
abstractclassAimplementsIt2{}
接口可以繼承接口,而且可以繼承多個(gè)接口,即允許多繼承。用
extends
interfaceItlextendsIt2,It3{}
一個(gè)類(lèi)可以在繼承一個(gè)父類(lèi)的同時(shí)實(shí)現(xiàn)一個(gè)或多個(gè)接口,但extends
關(guān)鍵字必須用在implements之前。
classTextendsAimplementsIt3,It4{}
接口可以實(shí)現(xiàn)不相關(guān)類(lèi)的相同行為,可以實(shí)現(xiàn)多繼承,從一定程度上
彌補(bǔ)了類(lèi)只能單繼承的缺陷。
classA
(
inti;
publicvoidshow()
(
System.out.printf("show->%d\n",i);〃i是屬性i,此時(shí)
的i等價(jià)于this.i
)
publicvoidf()
inti;//這里的i和屬性i沒(méi)有沖突??梢灾欢x不使用。使用
之前得初始化
//System.out.printf("f->%d\n",i);//error因?yàn)閕是
局部變量,Java要求局部變量在使用之前必須得初始化
}
publicvoidg(inti)//i是形參i形參i也是局部變量
{
this.i=i;//ok
System.out.printf("f->%d\n",i);
publicclassE
(
publicstaticvoidmain(String[]args)
{
Aaa=newA();
//aa.g(99);
aa.show();
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++
面向?qū)ο蟠缶V:
封裝
訪(fǎng)問(wèn)控制符:只有private的不能在外部訪(fǎng)問(wèn),類(lèi)內(nèi)部訪(fǎng)問(wèn)控制
符是透明的
構(gòu)造方法:定義:名字和類(lèi)名一樣,無(wú)返回值。
注意事項(xiàng):一個(gè)類(lèi)對(duì)象只能調(diào)用一個(gè)構(gòu)造方法,一個(gè)類(lèi)至
少有一個(gè)構(gòu)造方法,如果自己定義了構(gòu)造方法,編
譯器將不在提供默認(rèn)的構(gòu)造方法。
this:一個(gè)對(duì)象只含有屬性的空間,n個(gè)對(duì)象共用一份方法的拷
貝。
static:
繼承:java只允許單繼承,私有成員無(wú)法被繼承。
重寫(xiě):方法名和參數(shù)列表和返回值必須一樣。訪(fǎng)問(wèn)權(quán)限不能過(guò)低。
多態(tài)
++++++++++++++++++++++++++++++++++++++++2016年3月
7日11:23:2139
包:javac-d.文件名.java
packagezhangsan.lisi.TestPackage先檢測(cè)當(dāng)前目錄下是否有
zhangsan/lisi這個(gè)包(文件夾),如果有,在監(jiān)測(cè)該包下是否有
zhangsan.lisi.TestPackage這個(gè)類(lèi),如果沒(méi)有,編譯器將再去
classpath設(shè)置的路徑中依次尋找。如果都查找失敗,則運(yùn)行時(shí)出錯(cuò)。
setclasspath=F:\java;
同包和不同包類(lèi)的相互訪(fǎng)問(wèn)。
在同一個(gè)包中,只有私有的不能被另一個(gè)類(lèi)訪(fǎng)問(wèn),也只有私有的
不能被訪(fǎng)問(wèn)
在不同包沒(méi)有任何關(guān)系的兩個(gè)類(lèi),只有public類(lèi)的public成員才可
以被另一個(gè)類(lèi)訪(fǎng)問(wèn)。
在不同包中有繼承關(guān)系的兩個(gè)類(lèi),只有public類(lèi)的public成員和
public類(lèi)的protected成員可以被另一個(gè)包中的子類(lèi)在內(nèi)部使用,但
在子類(lèi)的外部,通過(guò)子類(lèi)對(duì)象名只能訪(fǎng)問(wèn)父類(lèi)的public成員。
---------------------------------------------------------2016年3月8日
06:28:18
F:\java\practise\故宮〉javac-d.A.javaB.java
F:\java\practise\故宮》javacom.ruide.M
HelloWorld!
HelloJAVA!HelloWorld!
packagezhangsan.lisi;
publicclassA
publicvoidg()
System.out.printf("HelloWorld!\n");
}
protectedvoidb()
(
System.out.printf("HelloJAVA!");
packagecom.ruide;
importzhangsan.lisi.*;
classBextendsA{
publicvoidf(){
g();//ok
b();//ok,在子類(lèi)內(nèi)部可以訪(fǎng)問(wèn)從另一個(gè)包繼承過(guò)來(lái)的父類(lèi)的
public和protected成員。
classM{
publicstaticvoidmain(String[]args){
Bbb=newB();
bb.f();//ok
bb.g();//ok
//bb.b();//error,不能訪(fǎng)問(wèn)protected。
}
)
+++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++45
歸檔工具jar包的生成
作用:發(fā)布和使用類(lèi)庫(kù),便于資源的組合和管理
格式:jarcvf要生成的包名.jar*
生成后打開(kāi)用解壓軟件打開(kāi)。
如何使用jar包中的類(lèi)
importzhangsan.lisi.A;//注意路徑后面的分號(hào);
publicclassTest
publicstaticvoidmain(String[]args)
Aaa=newA();
aa.g();
}
F:\java\practise\故宮》setclasspath二F:\java\practise\故宮\1\T.jar;
F:\jaua\practise\故宮》javacTest,java
F:\java\practise\故呂》javaTest
HelloWorld!
++++++++++++++
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026黑龍江鶴崗市興山區(qū)招聘公益性崗位人員30人考試備考題庫(kù)及答案解析
- 2026上海市社會(huì)主義學(xué)院公開(kāi)招聘專(zhuān)職教師筆試模擬試題及答案解析
- 2026年煙臺(tái)科技學(xué)院招聘(273人)筆試模擬試題及答案解析
- 2026年阜陽(yáng)市界首市中醫(yī)院公開(kāi)招聘專(zhuān)業(yè)技術(shù)人員考試備考題庫(kù)及答案解析
- 2026湖南長(zhǎng)沙市雨花湘一外國(guó)語(yǔ)中學(xué)春季合同制教師招聘考試參考題庫(kù)及答案解析
- 2026年甘肅蘭州鐵路技師學(xué)院高校畢業(yè)生招聘考試備考試題及答案解析
- 2026年寵物行為訓(xùn)練與健康管理培訓(xùn)
- 2026中國(guó)國(guó)際商會(huì)新疆商會(huì)人員招聘20人考試參考題庫(kù)及答案解析
- 2026江蘇南京大學(xué)化學(xué)學(xué)院科研人員招聘筆試備考題庫(kù)及答案解析
- 2026曲靖市事業(yè)單位公開(kāi)招聘工作人員(889人)考試備考題庫(kù)及答案解析
- 重慶市2026年高一(上)期末聯(lián)合檢測(cè)(康德卷)化學(xué)+答案
- 2026年湖南郴州市百??毓杉瘓F(tuán)有限公司招聘9人備考考試題庫(kù)及答案解析
- 【四年級(jí)】【數(shù)學(xué)】【秋季上】期末家長(zhǎng)會(huì):數(shù)海引航愛(ài)伴成長(zhǎng)【課件】
- 2025年中國(guó)船舶集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 辦公樓物業(yè)服務(wù)的品質(zhì)提升策略
- 養(yǎng)殖場(chǎng)土地租賃合同
- JBT 8200-2024 煤礦防爆特殊型電源裝置用鉛酸蓄電池(正式版)
- (正式版)SHT 3078-2024 立式圓筒形料倉(cāng)工程設(shè)計(jì)規(guī)范
- 計(jì)算機(jī)就業(yè)能力展示
- 設(shè)備維修團(tuán)隊(duì)的協(xié)作與溝通
- 華為三支柱運(yùn)作之HRBP實(shí)踐分享概要課件
評(píng)論
0/150
提交評(píng)論