第一篇:JAVA資料總結補充
23、this 表示當前類;super 表示調用父類。
在定義類的時候用到,this是當前對象的引用,super是當前對象的父類對象的引用,一般的都是把super用在構造函數中。
24、Java開發工具包括:
Javac:編譯器,用來將java程序編譯成Bytecode。
Java: 解釋器,執行已經轉換成Bytecode的java應用程序。Jdb:
調試器,用來調試java程序。Javap:反編譯,將類文件還原回方法和變量。Javadoc:文檔生成器,創建HTML文件。
25、數據類型圖
26、Java語言基本元素—標識符
Java語言中,標識符是以字母,下劃線(_),美元符($)開始的一個字符序列,后面可以跟字母,下劃線,美元符,數字。
合法的標識符 identifier
userName
User_Name _sys_value
$change 非法的標識符 2mail
room#
class!字符型數據代表16位的Unicode字符
!char c3 = 32;
用整數賦初值為空格
27、接口的實現
和抽象類相似,用派生類在實現接口。比較: 抽象類用extends來派生子類
接口用implements來實現(派生子類)2 抽象類與一般類一樣,只能使用單繼承
接口實現了多重繼承
相同:通過對抽象方法的覆蓋來定義方法體
28、String類
StringBuffer類多線程ringBuffer型字符串是可更改的,String型字符串是不可更改的,StringBuilder是單線程。
29、try-catch-finally語句 ,其語法格式:
try
{
//可能發生異常的代碼
} catch(異常類型1
變量)
{
//<異常類型1>異常的處理代碼
} catch(異常類型2
變量)
{
//<異常類型2>異常的處理代碼
}.....finally {
//總是要執行的代碼
} 其中,catch子句可以有多個,而且至少有一個catch子句或finally子句。常見的異常:數組下標越界 ;除數為零 ;內存溢出 ;件找不到等 30、31、finally子句:起作用通常是釋放資源;控制流不管以何種原因離開try語句,都要先執行finally子句。所以,可以將那些無論是否發生異常、異常無論是否被捕捉都需要執行的代碼放置在finally子句內。
32、數據從一個地方“流”到另外一個地方,這種數據流動的通道都可以稱為數據流。
字節流的基類:抽象類InputStream和OutputStream字節流的輸入輸出操作由這兩個類的子類實現。面向字節--8位。
字符流:抽象類Reader和Writer,字符流的輸入輸出操作由這兩個類的子類實現。
面向字符--16位。
創建字節輸入文件流FileInputStream類對象:FileInputStream類構造方法有: ? FileInputStream(String name)FileInputStream(File file)
33、圖形用戶界面設計
GUI:圖形用戶界面是程序與用戶交互的窗口 GUI元素和成分:組件,容器,布局管理器
34、數組創建:義語句只聲明,未創建具體的數組對象。int[] ai;//ai只能存放數組對象為int[]型的引用值
創建的兩種方式:1數組創建表達式int[] arr=new int[5];
1、枚舉法(窮舉法)
“笨人之法”: 把所有可能的情況一一測試,篩選出符合條件的各種結果進行輸出。【例一】百元買百雞:用一百元錢買一百只雞。已知公雞5元/只,母雞3元/只,小雞1元/3只。分析:
這是個不定方程——三元一次方程組問題(三個變量,兩個方程)
x+y+z=100
5x+3y+z/3=100
設公雞為x只,母雞為y只,小雞為z只。class Hundred{
public static void main(String[] arg){
int x,y,z;
for(x=0;x<=100;x++)
for(y=0;y<=100;y++)
{
z=100-x-y;
if(5*x+3*y+z/3.0==100)
System.out.println(“cocks=”+x+“, ”+“hens=”+y+“,”+“chickens=”+z);} } }
2、迭代法
public class FibIterative {
static int fib(int n)
{ int first = 1;
int second = 1;
int sum = first + second;
int i = 2;
while(++i < n)
{
first = second;
second = sum;
sum = first + second;
}
return sum;
}
public static void main(String args[])
{
System.out.println(“f20=” + fib(20));
} }
3、累加型
編程求1-1/2+1/3-1/4+1/5- ? +1/99-1/100 1)class SumDemo {
2)
static float mySum(int n){ 3)
float k = 1f;4)
float sum = 0.0f;5)
for(int i=1;i<=n;i++)6)
{
7)
sum=sum+k/i;8)
k =-k;9)
}
10)
return sum;11)
}
12)
public static void main(String args[])13)
{ System.out.println(″Sum100=″ + mySum(100));} 14)} 4遞歸法
1)class FibRecursion { 2)
static int fib(int n){
3)
if(n==1 || n==2)return 1;4)
return fib(n-1)+ fib(n-2);5)
}
6)
public static void main(String args[]){ 7)
System.out.println(″f21=″ + fib(21));8)
} 9)}
5、銀行存取款
public class InsufficientFundsException extends Exception {
private Bank excepbank;
private double excepAmount;
InsufficientFundsException(Bank ba, double dAmount)
{
excepbank = ba;
excepAmount = dAmount;
}
public String toString()
{
String str = “The balance” + excepbank.getbalance()+
“The withdrawal was”+excepAmount;
return str;
} } class Bank { double balance;//余額
public void deposite(double dAmount)
//存錢
{
if(dAmount>0.0)balance = balance + dAmount;
}
public void withdrawal(double dAmount)throws InsufficientFundsException
{
//取錢
if(balance { throw new InsufficientFundsException(this, dAmount); } balance = balance-dAmount; } public double getbalance() //獲取余額 { return balance; } } public class ExceptionDemo { public static void main(String args[]) { try { Bank ba = new Bank(); ba.deposite(50); ba.withdrawal(100); System.out.println(“Withdrawal successful!”); } catch(Exception e) { System.out.println(e.toString()); } } } 6、方法覆蓋舉例 1)class Example0503 2){ void print()3) { System.out.println(“superclass”);4) } 5)} 7)class Example0503_1 extends Example0503 8){ void print()9) { System.out.println(“subclass”);} 11) void method()12) { print(); //調用所在類成員方法 13) super.print();//調用直接超類中的被覆蓋方法 14) } 15)} 7、抽象類與抽象方法 abstract class Shape { // 定義抽象類Shape和抽象方法display abstract void display();} class Circle extends Shape { void display() // 實現抽象類的方法 { System.out.println(“Circle”); } } 8、變量的隱藏:子類對父類繼承來的屬性變量重新加以定義,從父類繼承來的屬性加以覆蓋。子類并不能繼承父類中的靜態屬性,但可以對父類中的靜態屬性進行操作。 方法覆蓋:如果子類不需要使用從父類繼承來的方法的功能,則可以聲明自己的方法,在聲明的時候可以使用相同的方法名和參數表,但執行不同的功能。子類再重寫父類已有的方法時,應保持與父類完全相同的方法名、參數列表、返回值。 十單元1.從他的第一部小說,我們可以看出他是極具深度和智慧的作家。 From his first novel, we can see that he is a writer of great depth and wisdom.2.他們以極大的決心對付環境問題。 They have confronted the problem of environment with great determination.3.我們要優先考慮能給農民帶來利益的項目 We should give priority to projects which can bring benefits to farmers.4.這家工廠的生產能力是每周200輛汽車 This factory has a productive capacity of 200 cars a week 1、近來,最先在發達國家,然后在其他國家,人們的健康狀況取得了長足進步,這主要歸功于早期兒童傳染性疾病死亡人數的下降。 2、我們現在必須問自己的問題是,對于如此高的消費、健康和環境影響水平,我們期望維持多長時間。 3、然而,在新的世紀人類是否能夠保持健康與快樂,越來越不容樂觀。 4、我們不能把“環境健康”狹隘地看成是地方性污染問題,認為憑借技術管理就能解決;當面臨“經濟增長”的競爭時,人們通常犧牲環境健康,保全經濟利益。 九單元 1.她告誡我不要過于自信。 She warned me against being too self-confident.2.我們終于成功在望了Our success was in sight at last.3.他在外面淋了一天雨,結果患了重感冒 He was out in the rain all day and this brought on a bad cold.He was out in the rain all day and this brought on a bad cold.4.這幢房子是他的奶奶傳給他的。 This house was passed down to him from his grandmother 1、一些科學家認為快樂屬于生物學范疇,盡管很多科學家認為答案并非如此簡單。 2、同樣地,醫學研究者認為沮喪和焦慮是由這些化學物質失衡造成的。所以他們經常開一些片劑給那些無法產生足夠此類化學物質的病人。 3、另一方面,反對哈默理論的人指出,多種因素都有可能對研究人員的研究構成影響,并告誡人們不要過于重視這些研究結果。 4、最后,雙方辯論仍在如火如荼地進行,短期內不會平息。 雪豹_百度百科雪豹百科名片雪豹雪豹是一種美麗而瀕危的貓科動物,是促進山地生物多樣性的旗艦,是世界上最高海拔的顯著象征,是促進跨國界的國家公園或保護區建立的環境大使,是健康的山地生態系統的指示器。由于雪豹很難適應低海拔地區的濕度、溫度、氣壓和日照變化,所以在世界各地動物園中,能繁殖雪豹的數量很少。遠處點綴了隱約可見的野羊,既反襯了雪豹的彪悍,又點出野羊是雪豹的主要捕食動物。 麋鹿是我國特有的動物也是世界珍稀動物。它善于游泳,再加上寬大的四蹄,非常適合在泥濘的樹林沼澤地帶尋覓青草、樹葉和水生植物等食物,棲息活動范圍在今天的長江流域一帶。黃河流域是人類繁衍之地,生息于此的麋鹿自然成了人們為獲得食物而大肆獵取的對象,致使這一珍奇動物的數量急劇減少,其野生種群很快便不復存在了。鹽城大豐麋鹿自然保護區.在世界五大鶴種中,黑頸鶴是被動物學家認識最晚的一種鶴。黑頸鶴體長130厘米左右,體羽大都呈銀灰色,兩性相似,雌鳥略小。黑頸鶴前頸及上頸腹面披以黑羽,屬高原鶴類,與大熊貓、朱鹮齊名,是中國一級重點保護野生動物,屬世界瀕危物種。黑頸鶴主要分布在中國,印度、不丹和尼泊爾等國境內也有少量分布。黑頸鶴一般生活在湖泊、沼澤地帶或者湖邊灌叢中,性機警,當敵害接近時,就扇動兩翼,慢跑幾步起飛。黑頸鶴喜食農作物、昆蟲、小型兩棲爬行動物和水生植物。 揚子鱷或稱作鼉,是中國特有的一種鱷魚,是世界上體型最細小的鱷魚品種之一。它既是古老的,又是現在生存數量非常稀少、世界上瀕臨滅絕的爬行動物。在揚子鱷身上,至今還可以找到早先恐龍類爬行動物的許多特征。所以,人們稱揚子鱷為“活化石”。因此,揚子鱷對于人們研究古代爬行動物的興衰和研究古地質學和生物的進化,都有重要意義。我國已經把揚子鱷列為國家一類保護動物,嚴禁捕殺。 猿猴最古老的靈長類,也就是人類及其現代所有猿猴的共同先祖,可以上溯到6500萬 點擊此處添加圖片說明年前的古新世。這種動物與其說是像猴,不如說更像松鼠。這是一種愛在地上亂竄,專門以昆蟲為食的膽小哺乳動物。 中華鱘是一種大型的溯河洄游性魚類,是我國特有的古老珍稀魚類。世界現存魚類中最原始的種類之一。遠在公元前1千多年的周代,就把中華鱘稱為王鮪魚。中華鱘屬硬骨魚類鱘形目。鱘類最早出現于距今2億3千萬年前的早三疊世,一直延續至今,生活于我國長江流域,別處未見,真可謂“活化石”。 教師補充機制 據了解,葛石教辦出臺了多項舉措,以完善農村教師補充機制,優化農村教師隊伍結構。初中學校統一按員生比1∶13.5配備教職工;小學在校生200人以上的學校按員生比1∶19.5配備教職工,在校生31~200人的學校按班師比1∶1.7配備教師,在校生10~30人的至少配備2名教師,在校生10人以下的配備1名教師。 優先補充農村小學 緊缺學科教師 為解決學校教師結構不合理的問題,允許在農村教師總體老化的情況下,按照每年教師自然減員總數30%補充急需專業的年輕教師。新的編制標準執行后,今起3年先核增的593個編制數,優先用于補充農村小學緊缺學科教師。 另外,我校將在確保義務教育學生不流失的情況下,合并了多處幼兒園及小學。 2008年9月 北莊完小 教師補充機制 我校采取多項政策引導、鼓勵優秀教師從城鎮學校、離城鎮近的農村學校向邊遠農村學校、薄弱學校合理流動,以解決部分地方出現的骨干教師“青黃不接”問題;城區中小學選聘新教師,要優先錄用師范類應屆畢業生,避免因城區學校向農村招聘教師而造成農村優質教師資源向城區學校集中。 將實施農村緊缺師資代償學費計劃。凡具備相應教師資格的本科畢業生我校小學任教,服務期5年,按每人每年5000元計算,逐年退還學費,連續退費4年。 爭取要求城鎮辦學水平較高的學校要有計劃地安排教師,到我校支教幫扶;我校要有計劃地推薦選派教師到城鎮達標校、示范校和實驗校掛教培訓。我校參照當地干部下派農村工作的補貼標準,每月給予支教掛教教師一定的生活補助和交通補貼 2009年9月 北莊完小 教師補充機制 我校利用各種資源,采取各種措施,全方位加強我校小學教師隊伍的建設,使教師隊伍的整體素質有了明顯的提高。 一、認真落實農村義務教育階段學校特設崗位計劃 為使新上崗的特崗教師迅速成為農村中小學的骨干力量,重點抓了三個環節: 一是抓好特崗教師培訓。上崗前,由設崗的縣(市)教育局組織特崗教師接受為期7天的崗前培訓,培訓包括縣情、教情和教學技能、新課程、新教法。上崗后,由設崗學校利用雙休日、寒暑假,同在職教師一道開展職業道德培訓、專業素質培訓、信息技術培訓等多種形式的培訓,有針對性地解決特崗教師在教學中遇到的問題。 二是解決特崗教師后顧之憂。通過安排報考原籍的特崗教師回原學校工作,解決了特崗教師食宿不方便的問題。對女教師采取了“成批安排”的辦法,不單獨安排,確保食宿安全、衛生。 三是抓好日常管理與考核。設崗縣(市)把特崗教師與在編教師一道管理與考核,一視同仁。 特崗計劃實施以來,為全市的農村教師隊伍建設注入了新的活力,有效緩解了我校教師隊伍數量不足的問題,緩解了我校教師結構性矛盾和教師隊伍素質較低的問題,充實了短缺學科的教師,提升了我學的教育質量,更新了小學的教育理念,促進了我校教學質量的提高。 二、因地制宜,招聘幼兒教師 面向社會共同組織了招聘幼兒教師工作。招聘方案公布后,經過筆試、面試、政審等程序,最后錄用。 三、建立和培養骨干教師隊伍 一是利用域外資源采用人才項目管理的方式培養骨干教師;二是認真落實各項農村骨干教師的國培和省培計劃,提高我校骨干教師的整體水平;三是組織專家講學,及時傳授新的教育理念和教學方法;四是開展送教下鄉活動,邀請城鎮一批優秀教師來我校講課,利用自身優質資源帶動我校教師的成長。 2010年9月 北莊完小 調用父類構造方法 ? 在子類的構造方法中可使用super(argument_list)語句調用父類的構造方法 ? 如果子類的構造方法中沒有顯示地調用父類構造方法,也沒有使用this關鍵字調用重載的其它構造方法,則系統默認調用父類無參數的構造方法 ? 如果子類構造方法中既未顯式調用父類構造方法,而父類中又沒有無參的構造方法,則編譯出錯 1public class Person { 3private String name; 4private int age;private Date birthDate; 7public Person(String name, int age, Date d){ 8this.name = name; 9this.age = age; 10this.birthDate = d; 11} 12public Person(String name, int age){ 13this(name, age, null); 14} 15public Person(String name, Date d){ 16this(name, 30, d); 17} 18public Person(String name){ 19this(name, 30);} 21// …… 22} 1public class Student extends Person { 2private String school; 4public Student(String name, int age, String s){ 5super(name, age); 6school = s; 7} 8public Student(String name, String s){ 9super(name); 10school = s; 11} 12public Student(String s){ // 編譯出錯: no super()13school = s; 14} 15} 對象構造和初始化細節 ? 分配存儲空間并進行默認的初始化 ? 按下述步驟初始化實例變量 1.綁定構造方法參數 2.如有this()調用,則調用相應的重載構造方法,然后跳轉到步驟5 3.顯式或隱式追溯調用父類的構造方法(Object類除外) 4.進行實例變量的顯式初始化操作 5.執行當前構造方法的方法體 ==操作符與equals方法 ==操作符與equals方法的區別: ? 引用類型比較引用;基本類型比較值; ? equals()方法只能比較引用類型,“==”可以比較引用類型及基本類型; ? 特例:當用equals()方法進行比較時,對類File、String、Date及封裝類(Wrapper Class)來說,是比較類型及內容而不考慮引用的是否是同一個實例; ? 用“==”進行比較時,符號兩邊的數據類型必須一致(可自動轉換的基本數據類型除外),否則編譯出錯; 由裝箱引發的——Integer比較的來龍去脈 前置知識: 眾所周之,java是保留了int,char等基本數據類型的,也就是說int類型的并不是對象,然而有些方法卻需要object 類型的變量,所以java使用了裝箱機制,我們可一自豪的這樣聲明一個整型變量:Integer a = new Integer(10);那么整型的a也就是對象了,那這句是什么意思呢:Integer a= 10;java中可以這樣聲明一個對象嗎?當然不是,從jdk1.5后,java實現了自動裝箱,也就是自動將Integer a =10 中的int類型的10轉化為了 Integer類型。好,有了前面的只是我們且先看一個題目: Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a==b); System.out.println(c==d); 答案是什么呢? 如果您回答true,false,那么很遺憾的告訴你,哈哈,其實你答對了!! 那我們暈了就相差1的兩個數為啥走向了“反目成仇”的地步呢?憑啥127等于127,我128就不等于128呢?且聽我慢慢道來,Integer a =127,Integer a=128。 127,128應該不會造成什么差異吧,難道是自動裝箱的過程有貓膩?找下源碼看看: private static class IntegerCache { private IntegerCache(){} static final Integer cache[] = new Integer[-(-128)+ 127 + 1];static { for(int i = 0;i < cache.length;i++) cache[i] = new Integer(i128); } 這是用一個for循環對數組cache賦值,cache[255] = new Integer(255-128),也就是newl一個Integer(127),并把引用賦值給cache[255],好了,然后是Integer b= 127,流程基本一樣,最后又到了cache[255] = new Integer(255-128),這一句,那我們迷糊了,這不是又new了一個對象127嗎,然后把引用賦值給cache[255],我們比較這兩個引用(前面聲明a的時候也有一個),由于是不同的地址,所以肯定不會相等,應該返回false啊!呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數據,那么當我們Integer b = 127的時候,并沒有new出一個新對象 來,而是共享了a這個對象的引用,記住,他們共享了同一個引用!!,那么我們進行比較a==b時,由于是同一個對象的引用(她們在堆中的地址相同),那當然返回true了!! 然后我們在看Integer c = 128;Integer d = 128;這兩句。現在不用我說就應該能明白了吧,當數據不再-128到127之間時,是不執行return IntegerCache.cache[i + offset];這句的,也就是不會返回一個static的引用,而是執行了return new Integer(i);于是當 Integer d = 128 時,又會重新返回一個引用,兩個不同的引用 在做c==d 的比較時當然返回false了! 下面附上本程序的字節碼以供喜歡底層的讀者參考: Compiled from “CompareInteger.java” public class CompareInteger extends java.lang.Object{ public CompareInteger(); Code: 0:aload_0 1:invokespecial#1;//Method java/lang/Object.“ public static void main(java.lang.String[]); Code: 0:bipush 127 2:invokestatic#2;//Method java/lang/Integer.valueOf:(I)Ljava/lang/Int eger; 5:astore_1 6:bipush 127 8:invokestatic#2;//Method java/lang/Integer.valueOf:(I)Ljava/lang/Int eger; 11: astore_2 12: sipush 128 15: invokestatic#2;//Method java/lang/Integer.valueOf:(I)Ljava/lang/Int eger; 18: astore_3 19: sipush 128 22: invokestatic#2;//Method java/lang/Integer.valueOf:(I)Ljava/lang/Int eger; 25: astore 4 27: getstatic#3;//Field java/lang/System.out:Ljava/io/PrintStream; 30: aload_1 31: aload_2 32: if_acmpne39 35: iconst_1 36: goto40 39: iconst_0 40: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V43: getstatic#3;//Field java/lang/System.out:Ljava/io/PrintStream; 46: aload_3 47: aload4 49: if_acmpne56 52: iconst_1 53: goto57 56: iconst_0 57: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V60: return } 評論:呵呵,這么想你就錯了,請注意看for語句給cache[i]初始化的時候外面還一個{}呢,{}前面一個大大的static關鍵字大咧咧的杵在哪呢,對靜態的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個static數據,那么當我們Integer b = 127的時候,并沒有new出一個新對象來,而是共享了a這個對象的引用,記住,他們共享了同一個引用!! 呵呵,博主我被你這句話小小的誤導了一下,其實你這里說的原理沒錯,但是把位置說錯了,這段代碼只是初始化cache: static { for(int i = 0;i < cache.length;i++) cache[i] = new Integer(i-128); } 但真正讓cache[i]為static變量的是這句代碼: static final Integer cache[] = new Integer[-(-128)+ 127 + 1]; Java實驗 1.調試HelloWorld程序 2.this,super,get ,set,把課本90頁程序4.7中的name改成私有變量 3.繼承,重寫,父類引用指向子類對象 4.驗證數組Arrays類和Collection類 5.編寫一個自己的異常類并捕獲之。 6.編寫一個類,將該類的幾個對象裝入TreeSet容器中,并將該容器的內容通過輸出流寫入文件中。 前三章重點 0.java的數據類型:四類八種-(1)布爾類型Boolean;(2)字符類型char;(3)整數byte,short,int,long;(4)浮點類型:float,double;1.面向對象的3個基本特征:封裝,繼承,多態。 2.構造方法和普通方法的區別:對構造方法而言,它有以下特性---(1)方法名必須與要創建對象的類名相同。(2)不允許聲明返回類型,即使聲明為void也不被允許。 3.this關鍵字:是一個引用,this引用指向的是其本身所在方法的當前對象。this的使用方法:(1)調用成員變量;(2)可以用this()調用其他構造函數。 4.java中只對類成員變量進行自動初始化,而方法內部的局部變量在使用前必須手動初始化。 5.static 關鍵字:可用來修飾類的成員變量和成員方法,需要注意兩點--(1)靜態方法不能調用類的非靜態方法,不能訪問類的非靜態變量。(2)靜態方法和靜態變量(非私有的)可以有兩種調用方式,一是實例對象調用,二是類名直接調用。 6.類成員訪問控制修飾符public、private、default(可不寫,即缺省狀態)、protected的使用:public-公用的;private-私有的,只在定義它的類內部使用;default-可以被同一包中的類訪問;protected-既可以被同一包中的類訪問,也可以被不在同一包中的子類訪問。 7.方法的重載:指方法名相同,而方法的參數列表不相同。參數列表不同有三層意思:(1)參數類型不同。(2)參數順序不同。(3)參數個數不同。另外需注意,在同一個類中,當方法名和參數列表都相同時,訪問控制修飾符或方法返回類型不相同并不是方法的重載,而且這種情況在java中是不被允許的。 第四五章重點 1.繼承:需使用關鍵字extends.在使用繼承時需注意--(1)每個子類只能定義一個超類(父類),即extends后面應且僅應跟一個類名作為該類的父類。(2)父類中的私有屬性和私有方法不能被繼承。 2.方法的重寫:即子類對超類中的方法保持方法名、返回類型和參數列表不變,重寫了方法體,使子類和超類完成不同的工作。重寫需注意下面幾個關鍵點:(1)超類中的私有方法不能被重寫。(2)訪問限制符強度由低到高依次是:public、protected、default、private,在重寫過程中,如果子類和父類中方法的返回值、方法名及方法的參數列表都相同,這時,要求子類中該方法的訪問限制符強度不能超過父類的。即如果父類中為public時,子類也只能為public,而不能是余下的三種。 3.重載(overload)和覆蓋(override)的區別:(1)重載—發生在一個類的內部或子類與父類之間,要求方法名相同而參數列表不一樣。(2)覆蓋—只能發生在繼承過程中,要求子類方法的返回類型,方法名和參數列表同父類的都相同,而方法體不一樣。 4.構造器的調用順序:先祖先,再客人,最后自己。 5.多態:指在類繼承中子類和父類中可以有同名但意義或實現方式不同的屬性和方法。分為:覆蓋和重載。多態的優點:因為多態,可以在程序中對類進行擴展,而不需改變那些操作基類接口的方法。 6.動態綁定:指在代碼執行期間,判斷所引用對象的實際類型,根據其實際類型調用相應方法。動態綁定存在的三個必要條件--(1)要有繼承;(2)要有重寫(覆蓋);(3)父類引用指向子類對象(向上轉型)。 7.Object中常用的方法總結:toString();wait();equals();notify();notifyAll();hashCode();getClass();clone();finalize();(呵呵,盡可能記幾個,以防老師讓咱們列舉)注:java中Object類是所有類的父類,即java中所有的類都有上述9種方法。 8.對象的比較:注意關鍵字instanceof的使用。 9.抽象類: 抽象方法—用關鍵字abstract修飾的方法,該方法只需方法的聲明,而不需方法的實現(即無方法體)。 抽象類——至少包含一個抽象方法的類,也用abstract關鍵字聲明。(注:(1)抽象類中可以有一些具體方法。(2)抽象類不能實例化。(3)子類繼承抽象類必須實現其抽象方法。) 10.接口: (1)可以看成是高度抽象的抽象類,但是接口不是類。 (2)用關鍵字interface來聲明接口,用關鍵字imlpements來實現接口。 (3)接口不能有具體方法,不能有實例數據,但可以定義常量。 (4)實現接口的非抽象類必須實現接口的所有方法。 (5)每個類可以實現多個接口,這些接口用逗號隔開,同時,一個接口可以被多個類實現。 第六章:重點看一下實驗四 1.容器——Collection(接口)和Map(接口).Collection——Set(接口)和List(接口)。其中,List必須保持元素的特定順序,常見的實現類有ArrayList和LinkedList;Set不能有重復元素,常見的實現類有HashSet和TreeSet。 Map——一組成對的“鍵值對”對象,即其元素是成對的對象,常見的實現類有HashMap和TreeMap。 第七章 1.異常類的根類是Throwable類,它的兩個直接子類是Error類和Exception類。 2.異常中常用的5個關鍵字為:try,catch,finally,throw,throws.其中,try和catch:用于捕獲異常;finally:無論try塊中的異常是否拋出,finally中的代碼塊總能被執行;throw:拋出異常;throws:聲明異常。 3.“未被檢查的異常(Unchecked Exceptions)”和“受檢查的異常(Checked Exceptions)”—— Unchecked Exceptions :編譯器不檢查方法是否處理或拋出的異常,即不做處理,編譯時不報錯。 Checked Exceptions:受編譯器檢查的異常,即不做處理編譯時通不過。 4.常見的幾種Checked Exceptions:ClassNotFoundExceptionIOExceptionInterruptedExceptionFileNotFoundException.(盡可能的記幾個吧,以防不測)第八章 1.流--字節流和字符流; 流--節點流和處理流。 2.所有的輸入流都是從抽象類InputStream和Reader繼承而來。所有輸出流都是從抽象類OutputStream和Writer繼承而來。3.字節流:InputStream和OutputStream;字符流:Reader和Writer; 4.節點流:直接與文件等底層打交道,如FileInputStreamFileOutputStreamFileReaderFileWriter.處理流:相當于包裝流,套在節點流上,方便數據處理。相關一些用法,具體參考最后一次實驗。第二篇:珍稀動物資料補充
第三篇:教師補充資料
第四篇:java總結
第五篇:Java總結