版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3講:面向?qū)ο筇卣鳎?),1 數(shù)組 2 字符串 3 對象與引用 4 類,試題一,int x=3,y=4,z=3; if(x2) if(y5) System.out.println(Message three); else System.out.println(Message four); 結(jié)果為_,試題二,int j=2; switch ( j ) case 2:System.out.println(Value is two.); case 2+1: System.out.println(Value is three.); break; default: System.out.println
2、(Value is+j); break; 結(jié)果為_,試題三,class Parent void printMe() System.out.println(parent); class Child extends Parent void printMe() System.out.println(child); void printAll() super.printMe(); this.printMe(); printMe(); public class Test_this public static void main(String args) Child myC=new Child(); my
3、C.printAll(); 結(jié)果為_,1數(shù)組,1、數(shù)組聲明: 聲明數(shù)組包括數(shù)組的名字、數(shù)組包含的元素的數(shù)據(jù)類型。 聲明一維數(shù)組有下列兩種格式: 數(shù)組元素類型 數(shù)組名字; 數(shù)組元素類型 數(shù)組名字; 聲明二維數(shù)組有下列兩種格式: 數(shù)組元素類型 數(shù)組名字; 數(shù)組元素類型 數(shù)組名字;,創(chuàng)建數(shù)組 為數(shù)組分配內(nèi)存空間的格式如下: 數(shù)組名字new 數(shù)組元素的類型數(shù)組元素的個數(shù); 例如:boynew float7 聲明數(shù)組和創(chuàng)建數(shù)組可以一起完成。 例如: float boynew float7; 二維數(shù)組和一維數(shù)組一樣,在定義之后必須用new運算符分配內(nèi)存空間。例如: int mytwo; mytwo=new
4、 int 35;或 int mytwo=new int 34;,一維數(shù)組通過下標(biāo)符訪問自己的元素,如boy0、boy1等。需要注意的時下標(biāo)從0開始,因此,數(shù)組若是8個元素,下標(biāo)到7為止。 import java.applet.*; import java.awt.*;public class Example extends Applet float a;public void init() a=new float5;a0=23.9f; a1=34.9f; a2=45f; a3=56.98f; a4=100f;public void paint(Graphics g)g.drawString(a
5、0=+a0+a1=+a1+a2+a2+a3=+a3+a4=+ a4,12,12); 注:有一個重要的表示數(shù)組長度(即元素的個數(shù))的格式。 比如,如果創(chuàng)建了float anew float6,則a.length 的值為6。,創(chuàng)建數(shù)組后,系統(tǒng)會給每個數(shù)組元素一個默認(rèn)的值,如,float型是0.0。 我們在聲明數(shù)組時同時也還可以給數(shù)組的元素一個初始值, 如:float boy=12.3f;23.89f,2.0f,23f,578,98f;上述語句相當(dāng)于: float boy=new float 5;boy0=12.3f;boy1=23.89f;boy2=2.0f;boy3=23f;boy4=578.9
6、8f;例如:String s=we,are,hello,123,who?;,初始值,2 字符串,Java使用java.lang包中的String類來創(chuàng)建一個字符串變量,因此字符串變量是類類型變量,是一個對象。 1、字符串常量 如,“你好”、“1234.978、“weqweo”。 2、聲明字符串 如,String s。 3、創(chuàng)建字符串 使用String 類的構(gòu)造方法:String(String str) 例如:s=new String (we are students); String s1=new String(s);,String的常見方法,public int length() char
7、charAt(intindex) public boolean equals(String s) public boolean startsWith(String s) public boolean endsWith(String s) public int compareTo(String s) public int indexOf (String s) public String substring(int startpoint) public String replaceAll(String old,String new) public String trim(),數(shù)字轉(zhuǎn)化為字符串,可以
8、使用String 類的下列類方法: public String valueOf(byte n) public String valueOf(int n) public String valueOf(long n) public String valueOf(float n) public String valueOf(double n),字符串與字符數(shù)組,String 類的構(gòu)造方法: String(char) String(char,int offset,int length) 將字符串存放到字符數(shù)組中的方法: public void getChars(int start,int end,ch
9、ar c,int offset ) 字符串調(diào)用getChars方法將當(dāng)前字符串中的一部分字符復(fù)制到參數(shù)c指定的數(shù)組中,將字符串中從位置start到end-1位置上的字符復(fù)制的數(shù)組c中,并從數(shù)組c的offset處開始存放這些字符。需要注意的是,必須保證數(shù)組c能容納下要被復(fù)制的字符。 public char toCharArray() 字符串對象調(diào)用該方法可以初始化一個字符數(shù)組,該數(shù)組的長度與字符串的長度相等,并將字符串對象的全部字符復(fù)制到該數(shù)組中。,字符串與字節(jié)數(shù)組,String(byte) 用指定的字節(jié)數(shù)組構(gòu)造一個字符串對象。 String(byte,int offset,int length
10、) 用指定的字節(jié)數(shù)組的一部分,即從數(shù)組起始位置offset開始取length個字節(jié)構(gòu)造一個字符串對象。 public byte getBytes() 方法使用平臺默認(rèn)的字符編碼,將當(dāng)前字符串轉(zhuǎn)化為一個字節(jié)數(shù)組。,public class Examplepublic static void main(String args) byte b= new byte9;b0=97;b1=98; b2=99; b3=100;b4=101; b5=102; b6=g;b7=f; b8=h;String s_b=new String(b);String s_b_3=new String(b,3,6);Stri
11、ng s_c=new String(ABC);String s_d=new String(你我他);byte c=s_c.getBytes();byte d=s_d.getBytes(); System.out.println(s_b);System.out.println(s_b_3);System.out.println(數(shù)組c的長度是:+c.length);System.out.println(數(shù)組d的長度是(一個漢字占兩個字節(jié)):+d.length);System.out.println(用ASCII數(shù)值輸出c:);for(int i=0;ic.length;i+) System.ou
12、t.println( c+i+ :+ci);System.out.println(用ASCII數(shù)值對應(yīng)的字符輸出數(shù)組c:);for(int i=0;ic.length;i+) System.out.println( c+i+ :+(char)ci); System.out.println(用ASCII數(shù)值輸出數(shù)組d:);for(int i=0;id.length;i+) System.out.println( d+i+ :+di); ,上述程序的輸出結(jié)果:abcdefgfhdefgfh數(shù)組c的長度是:3數(shù)組d的長度是(一個漢字占兩個字節(jié)):6用ASCII數(shù)值輸出c:c0 :65c1 :66c2
13、 :67用ASCII數(shù)值對應(yīng)的字符輸出數(shù)組c:c0 :Ac1 :Bc2 :C用ASCII數(shù)值輸出數(shù)組d:d0 :-60d1 :-29d2 :-50d3 :-46d4 :-53d5 :-5,3 對象與引用,1引用的本質(zhì) 在Java中引用是指向一個對象在內(nèi)存中的位置,在本質(zhì)上是一種帶有很強(qiáng)的完整性和安全性的限制的指針,當(dāng)你聲明某個類,接口或數(shù)組類型的一個變量時,那個變量的值總是某個對象的引用或者是null引用 2與指針的區(qū)別 指針就是簡單的地址而已,引用除了表示地址而外,還象被引用的數(shù)據(jù)對象的縮影,還提供其他信息.指針可以有+,-運算,引用不可以運算,s1,s2,10001,s2=s1;,a st
14、ring,10001,class Mydate int year; int month; int day; ,Mydate today=new MyDate(),10008,today,s1=“a string”;,例: String s1;String s2;,3.1對象的特征,能夠動態(tài)取得的內(nèi)存有兩種,一種是對象實體,一種數(shù)組. 用new申請內(nèi)存,不需要自己釋放不用的內(nèi)存. 在Java中,定義數(shù)組時不必給出數(shù)組的大小,因為Java的數(shù)組是動態(tài)分配的。 數(shù)組變量實際上是一個引用變量,因此要實例化才能使用。 例:int Array; Array=new int8;,例:String array
15、OfString=new String10; 每個數(shù)組元素包含一個對字符串對象的引用,此時值分配了包含字符串引用的空間,并沒有對字符串本身分配內(nèi)存,此時不能訪問。,arrayOfString,for(int i=0;iarrayString.length;i+) arrayOfStringi=new String(“Hello”+i),arrayOfString0 arrayOfString1 arrayOfString8 arrayOfString9,對數(shù)組的引用,對 字 符 串 的 引 用,有兩個字符串str1,str2 str1=str2; 是指兩個引用指向同一個地址 str1.equa
16、ls(str2)是指兩個字符串內(nèi)容相等 獲取String對象的信息 String s=“this is a string”; int len=s.length(); boolean result=s.equal(“this is a test”); char ch=s.charAt(6); StringBuffer的字符串的內(nèi)容是可以改變的 創(chuàng)建StringBuffer對象 StringBuffer str=new Stringbuffer(“hello”); 獲取StringBuffer對象的信息 int len=str.length();,例:StringBuffer sb=new Str
17、ingBuffer(“Drink Java!”); sb.insert(6,”Hot ”); System.out.println(sb.toString();,Drink Hot Java!,3.2對象引用與對象實例,public class xx public static void main(String args) String s1 = You are hired!; String s2 = You are hired!; s1 = s1.replace(h,f); System.out.println(s1); if (s1=s2) System.out.println(“一個內(nèi)存
18、空間”); else System.out.println(不是一個內(nèi)存空間); ,4.1類的定義,在Java中所有的類都擴(kuò)展一個超類(Object) 在源文件中,可以定義多個類,但每次只能定義一個公共類。 每個類編譯后都單獨產(chǎn)生一個class文件。 一般類都有名字,4.1類定義,試用一個簡單的類,class Car int car_number; void set_number(int car_num) car_number=car_num; void show_number() System.out.println (“My car No. is :”+car_number); ,clas
19、s CarDemo public static void main(String args) Car Democar=new Car(); DemoCar.set_number(3838); DemoCar.show_number(); ,My car number is 3838,類的單繼承 關(guān)系,class Car int car_number; void set_number(int car_num) car_number=car_num; void show_number() System.out.println (“My car No. is :”+car_number); ,cla
20、ss TrashCar extends Car int capacity; void set_capacity(int trash_car_capacity) capacity=trash_car_capacity; void show_capacity(); System.out.println(“My capacity is: ”+ capacity);,4.1 類定義,TrashCar中繼承了Car中的兩個方法,class CarDemo public static void main(String args) TrashCar DemoTrashCar=new TrashCar();
21、DemoTrashCar.set_number(4949); DemoTrashCar.set_capacity(20); DemoTrashCar.show_number(); DemoTrashCar.show_capacity(); ,Car是父類, TrashCar是子類,4.1 類定義,何時選擇繼承性? IS A 關(guān)系 “B是一個A嗎?” 如果是則讓B做A的子類.,常犯的錯誤A有一個B嗎? 例如讓汽車輪子成為汽車的子類是錯誤的,4.1 類定義,類的修飾字 class 類名稱 extends 父類名稱implements 接口列表 . ,1.public 無論它所處在的包定義在哪,該類
22、都是可訪問的 2.static static的內(nèi)部類是一個頂級類,它和包含類的成員是不相關(guān)的。 3.final 被定義成final的類不允許出現(xiàn)子類 4.abstract 類中包括沒有實現(xiàn)的方法,不能被實例化。 5.strictfp 所有浮點計算遵守 IEEE 754標(biāo)準(zhǔn),friendly(缺省)類只能被本包中的其它類使用,4.2類成員定義,類中可以定義的部分包括屬性、方法。 每個類都創(chuàng)造了有自己的名字空間,其中方法和變量可以知道彼此的存在,可以使用。 類中也可以定義類(內(nèi)部類),靜態(tài)初始化塊。,4.2類成員定義,變量和方法的修飾字public、protected、private、static
23、、final、transient、volatile friendly(前邊沒有修飾字的情況) 在同一程序包中出現(xiàn)的類才可以直接使用它的數(shù)據(jù)和方法. public: 任何其它類、對象只要可以看到這個類的話,那么它就可以存取變量的數(shù)據(jù),或使用方法。,class ABC public int pub_i=5; public void show)() System.out.println(“pub_i”+pub_i); ,4.2類成員定義,class Demo public static void main(String args) ABC abc=new ABC(); System.out.prin
24、tln(“abc.pub_i”+abc.pub_i); abc.pub_i=10; abc.show(); ,abc.pub_i=5 pub_i=10;,4.2類成員定義,protected變量和方法 如果一個類中變量或方法有修飾字protected,同一類,同一包可以使用。不同包的類要使用,必須是該類的子類可以存取變量或調(diào)用,public class ABC protected int pro_i=5; protected void show() System.out.println(“pro_i=” +pro_i); ,4.2類成員定義,不同包中的類不能使用,class DEF publi
25、c static void main(String args) ABC abc=new ABC(); System.out.println (“_i=“+_i); abc.pub_i=10; abc.show(); ,import mytest.pack.ABC; class DEF extends ABC public static void main(String agrs) DEF def=new DEF(); System.out.println(def.i); def.i=10; def.show(); ,pro_i=5 pro_i=10,4.2類成員定義
26、,不同包但是是子類,4.2 類成員定義,private 不允許任何其他類存取和調(diào)用 volatile 因為異步線程可以訪問字段,所以有些優(yōu)化操作是一定不能作用在屬性 transient 屬性不是對象持久狀態(tài)的一部分,不應(yīng)該把字段和對象一起進(jìn)行持久化操作。,4.2類成員定義,當(dāng)子類中的變量名與父類的相同,原來的變量被遮蓋.,class A int data_a=3; class B extends A int data_a=5; class C extends B void print_out() System.out.println(“data_a= ”+data_a); System.out
27、.println(“A.data_a= ”+A.data_a); System.out.println(“B.data_a= ”+B.data_a); ,data_a=5 A.data_a=3 B.data_a=5,class demo public static void main(String args) C c=new C(); c.println_out(); ,類成員定義,4.2類成員定義,方法的覆蓋(overriding)和重載(overloading) 子孫類中定義的方法和祖先類中某個方法同名,同參數(shù)行,則祖先類中的該方法被覆蓋. 方法的重載是指一個對象的多態(tài)性,即多個方法用相同
28、的名稱,但參數(shù)行不同.,類,void show(int int_num),void show(double double_num),void show(nit nit_ um, float float_um),123,1.23,123,1.23,4.2類成員定義,到此為止-final final在方法之前,防止該方法被覆蓋. final在變量之前,定義一個常量. 屬于類的變量和方法-static static 在變量或方法之前, 表明它們是屬于類的,class ABCD char data; static int_share_data; class Demo ABCD a,b,c,d,4.2類
29、成員定義,靜態(tài)變量在各實例間共享 如果是public靜態(tài)變量,則其它類可以不通過實例化訪問它們 靜態(tài)方法稱為類的方法,因此不用實例化即可調(diào)用(面向過程) 一個對象的方法可以訪問對象的數(shù)據(jù)成員,盡管不屬于方法的局部變量,4.2類成員定義,例:不正確的引用 class StaticError String mystring=“hello”; public static void main(String args) System.out.println(mystring); 錯誤信息:cant make a static reference to nonstatic variable. 為什么不正確
30、? 只有對象的方法可以訪問對象的變量.,4.2類成員定義,解決的辦法: 1. 將變量改稱類變量 class StaticError static String mystring=“hello”; public static void main(String args) System.out.println(mystring); ,4.2類成員定義,2. 先創(chuàng)建一個類的實例 class NoStaticError public static void main(String args) String mystring=“hello”; System.out.println(mystring);
31、,4.3 構(gòu)造器,使用new來做內(nèi)存配置,class Demo1 /數(shù)組的配置 public static void main(String args) int array; array=new int55; array14=5; ,class myClass /對象實體的產(chǎn)生 int data=5; class Demo2 public static void main(String args) myClass obj;/建立一個引用 obj=new myClass(); System.out.println(obj.data); ,4.3構(gòu)造器,Constructor和finalizer
32、constructor(構(gòu)造函數(shù)),在一個類中和類同名的方法叫構(gòu)造函數(shù).系統(tǒng)在產(chǎn)生對象時會自動執(zhí)行.,class Point int x,y; Point() x =0;y=0; Point(int new_x,int new_y) x=new_x,y=new_y; ,class UsePoint Point point_A=new Point(); Point point_B=new Point(5,7); ,4.3 構(gòu)造器,構(gòu)造函數(shù)應(yīng)包含哪些內(nèi)容? 構(gòu)造函數(shù)多半定義一些初值或內(nèi)存配置工作 一個類可以有多個構(gòu)造函數(shù)(重載),根據(jù)參數(shù)的不同決定執(zhí)行哪一個. 如果程序中沒有定義構(gòu)造函數(shù),則創(chuàng)造實例時使用的是缺省函數(shù),它是一個無內(nèi)容的空函數(shù).,4.3 構(gòu)造函數(shù),this this指自己這個對象 this的作用是要將自己這個對象當(dāng)作參數(shù),傳送給別的對象中的方法.,class ThisClass public static void main() Bank bank=new Bank(); bank.someMethod(this); ,class Circl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣州番禺職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫附答案
- 2026年教育心理學(xué)題庫及完整答案1套
- 2026年四川應(yīng)用技術(shù)職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 2026年江蘇醫(yī)藥職業(yè)學(xué)院單招職業(yè)傾向性測試模擬測試卷及答案1套
- 2026年心理下載考試題庫及完整答案一套
- 2026西藏山南招錄扎囊縣政府專職消防員6人筆試備考試題及答案解析
- 2026甘肅省武威市古浪縣直灘鎮(zhèn)衛(wèi)生院招聘鄉(xiāng)村醫(yī)生2人筆試備考題庫及答案解析
- 2026廣東佛山市禪城區(qū)祖廟街道公有企業(yè)招聘2人筆試備考題庫及答案解析
- 2026贛州市皮膚病醫(yī)院招聘勞務(wù)派遣職工2人筆試備考試題及答案解析
- 2025廣東廣州新龍鎮(zhèn)招聘農(nóng)村集體出納(文員)1人(公共基礎(chǔ)知識)綜合能力測試題附答案
- 畜牧業(yè)市場品牌營銷體系建設(shè)的路徑與措施
- 從句經(jīng)典練習(xí)題
- 砂漿配比自動計算表格
- 測量系統(tǒng)分析(MSA)管理程序
- 深水井施工方案
- 第六單元中國特色社會主義生態(tài)文明建設(shè)及結(jié)語練習(xí)-2023-2024學(xué)年中職高教版(2023)中國特色社會主義
- 手術(shù)室??平ㄔO(shè)
- 人參健康食品營銷策劃
- 2024年人參項目營銷策劃方案
- 信息技術(shù)單招考試備考必備資料
- 工會職工大會制度實施細(xì)則范本
評論
0/150
提交評論