




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java程序設(shè)計(jì)第5章深入理解JAVA語(yǔ)言Java程序設(shè)計(jì)第5章 深入理解JAVA語(yǔ)言 本章介紹Java語(yǔ)言中的一些機(jī)制及細(xì)節(jié)。 5.1 變量及其傳遞 5.2 多態(tài)和虛方法調(diào)用 5.3 對(duì)象構(gòu)造與初始化 5.4 對(duì)象清除與 5.5 內(nèi)部類與回收類 5.6 Lambda表達(dá)式 5.7 裝箱、枚舉、注解 5.8 沒(méi)有指針的Java語(yǔ)言唐大仕2Java程序設(shè)計(jì)變量及其傳遞唐大仕3Java程序設(shè)計(jì)基本類型變量與型變量 基本類型(primitive type):其值直接存于變量中?!霸谶@里”型(reference type) 的變量除占據(jù)一定的內(nèi)存空間外,它所的對(duì)象實(shí)體(由new 創(chuàng)建)也要占據(jù)一定空間
2、?!霸谀抢铩碧拼笫?Java程序設(shè)計(jì)型變量與對(duì)象實(shí)體的關(guān)系mnday month year唐大仕5Java程序設(shè)計(jì)示例 示例:MyDate.java MyDate m,n; m=new MyDate(); n=m; n.addYear();唐大仕6Java程序設(shè)計(jì)字段變量與局部變量 字段變量(field)與局部變量(Local variable)p 前者是在類中,后者是方法中定義的變量或方法的參變量 從內(nèi)存角度看位置,字段變量為對(duì)象的一部分、存在于堆中的,局部變量是存在于棧中。pp 生命周期不同p 初始值:字段變量可以自動(dòng)賦初值,局部變量則須顯式賦值class Test()int a; voi
3、d m()int b;System.out.println(b);/編譯不能通過(guò)需要/初始化。唐大仕7Java程序設(shè)計(jì)兩種變量的區(qū)別 從語(yǔ)法角度看p 字段變量屬于類,可以用public,private,static,final 修飾。p 局部變量不能夠被p 都可以被final修飾符及static修飾唐大仕8Java程序設(shè)計(jì)變量的傳遞 調(diào)用對(duì)象方法時(shí),要傳遞參數(shù)。在傳遞參數(shù)時(shí), Java 是值傳遞,即,是將表達(dá)式的值給形式參數(shù)。 對(duì)于型變量,傳遞的值是值,而不是對(duì)象實(shí)體p 可以改變對(duì)象的屬性 TransByValue.java唐大仕9Java程序設(shè)計(jì)變量的返回 方法的返回:p 返回基本類型。p
4、返回類型。它就可以存取對(duì)象實(shí)體。 Object getNewObject() Object obj=new Object(); return obj; 調(diào)用時(shí):Object p= GetNewObject();唐大仕10Java程序設(shè)計(jì)補(bǔ)充:不定長(zhǎng)參數(shù) 不定長(zhǎng)參數(shù)(Variable length arguments),從JDK1.5開始 用省略號(hào)表示, 并且是最后一個(gè)參數(shù) 實(shí)際上Java當(dāng)成一個(gè)數(shù)組 int sum( int nums)p int s=0;p for(int n : nums) s+=n;p return s; 調(diào)用:sum(1,2,3,4); 又例如:public stati
5、c void main( Stringargv)唐大仕11Java程序設(shè)計(jì)多態(tài)和虛方法調(diào)用唐大仕12Java程序設(shè)計(jì)多態(tài) 多態(tài)(Polymorphism)是指一個(gè)程序中相同的名字表示不同的含義的情況。 多態(tài)有兩種情形p 編譯時(shí)多態(tài): 重載(overload) (多個(gè)同名的不同方法)。 如 p.sayHello();p.sayHello(“Wang”);p 運(yùn)行時(shí)多態(tài): 覆蓋(override) (子類對(duì)父類方法進(jìn)行覆蓋) 動(dòng)態(tài)綁定(dynamic binding) -虛方法調(diào)用(virtual method invoking) 在調(diào)用方法時(shí),程序會(huì)正確地調(diào)用子類對(duì)象的方法。 多態(tài)的特點(diǎn)大大提高
6、了程序的抽象程度和簡(jiǎn)潔性唐大仕13Java程序設(shè)計(jì)上溯造型 上溯造型(upcasting)p 是把派生類型當(dāng)作基本類型處理p = new Student(); void fun(p )fun(new();唐大仕14Java程序設(shè)計(jì)虛方法調(diào)用 TestVirtualInvoke.java 用虛方法調(diào)用,可以實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)!p 子類重載了父類方法時(shí),運(yùn)行時(shí)p 運(yùn)行時(shí)系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例的類型來(lái)決定選擇哪個(gè)方法調(diào)用p 所有的非final方法都會(huì)自動(dòng)地進(jìn)行動(dòng)態(tài)綁定!唐大仕15Java程序設(shè)計(jì)虛方法調(diào)用示例示例 TestVirtualInvoke.javavoid doStuff(Shape s)
7、 s.draw();Circle c = new Circle(); Triangle t = new Triangle(); Line l = new Line(); doStuff(c);doStuff(t);doStuff(l);唐大仕16Java程序設(shè)計(jì)動(dòng)態(tài)類型確定 變量instanceof 類型 結(jié)果是boolean 值 示例 InstanceOf.java唐大仕17Java程序設(shè)計(jì)什么情況不是虛方法調(diào)用 Java中,普通的方法是虛方法 但static,private方法不是虛方法調(diào)用 static,private與虛方法編譯后用的指令是不同的 演示:JavaP3methods唐大仕
8、18Java程序設(shè)計(jì)三種非虛的方法 static的方法,以的類型為準(zhǔn),與實(shí)例類型無(wú)關(guān) private方法子類看不見(jiàn),也被虛化 final方法子類不能覆蓋,不存在虛化問(wèn)題 對(duì)比 TestStaticInvoke.java1919唐大仕Java程序設(shè)計(jì)對(duì)象構(gòu)造與初始化唐大仕20Java程序設(shè)計(jì)構(gòu)造方法 構(gòu)造方法(constructor)p 對(duì)象都有構(gòu)造方法p 如果沒(méi)有,編譯器加一個(gè)default構(gòu)造方法 思考:p 抽象類(abstract)有沒(méi)有構(gòu)造方法?唐大仕21Java程序設(shè)計(jì)調(diào)用本類或父類的構(gòu)造方法 調(diào)用本類或父類的構(gòu)造方法p this調(diào)用本類的其他構(gòu)造方法。p super調(diào)用直接父類的構(gòu)造
9、方法p this或super要放在第一條語(yǔ)句,且只能夠有一條 如果沒(méi)有this及super,則編譯器自動(dòng)加上super(),即調(diào)用直接父類 不帶參數(shù)的構(gòu)造方法 因?yàn)楸仨毩钏懈割惖臉?gòu)造方法都得到調(diào)用,否則整個(gè)對(duì)象的構(gòu)建就可能不正確。2222唐大仕Java程序設(shè)計(jì)示例 在構(gòu)造函數(shù)中使用this和super. ConstructCallThisAndSuper.java唐大仕23Java程序設(shè)計(jì)一個(gè)問(wèn)題class AA(int a)class B extends AB(String s) /編譯不能夠通過(guò).編譯器會(huì)自動(dòng)調(diào)用B(String s) super(); 出錯(cuò).解決方法:p 在B的構(gòu)造方法
10、中,加入super(3);p 在A中加入一個(gè)不帶參數(shù)的構(gòu)造方法,A()p 去掉A中全部的構(gòu)造方法,則編譯器會(huì)自動(dòng)加入一個(gè)不帶參數(shù)的構(gòu)造方法,稱為默認(rèn)的構(gòu)造方法.唐大仕24Java程序設(shè)計(jì)創(chuàng)建對(duì)象時(shí)初始化age=18; name=“李明”; ; p = new() 這樣可以 注意雙括號(hào)沒(méi)有相應(yīng)構(gòu)造函數(shù),但又要賦值唐大仕25Java程序設(shè)計(jì)實(shí)例初始化與靜態(tài)初始化 實(shí)例初始化(Instance Initializers) 在類中直接寫p 語(yǔ)句. p 實(shí)例初始化,先于構(gòu)造方法中的語(yǔ)句執(zhí)行 靜態(tài)初始化(Static Initializers)p static 語(yǔ)句. p 靜態(tài)初始化,在第一次使用這個(gè)類時(shí)
11、要執(zhí)行,p 但其執(zhí)行的具體時(shí)機(jī)是不確定的 但是可以肯定的是:總是先于實(shí)例的初始化p 例:InitialTest.java唐大仕26Java程序設(shè)計(jì)構(gòu)造方法的執(zhí)行過(guò)程 構(gòu)造方法的執(zhí)行過(guò)程遵照以下步驟:p 調(diào)用本類或父類的構(gòu)造方法,直至最高一層(Object)p 按照順序執(zhí)行字段的初始化賦值p 執(zhí)行構(gòu)造函數(shù)中的各語(yǔ)句 簡(jiǎn)單地說(shuō):p 先父類構(gòu)造,再本類成員賦值,最后執(zhí)行構(gòu)造方法中的語(yǔ)句。 演示:JavaPConstructor唐大仕27Java程序設(shè)計(jì)示例ConstructSequence.java唐大仕28Java程序設(shè)計(jì)一個(gè)問(wèn)題 構(gòu)造方法內(nèi)部調(diào)用別的的方法 如果這個(gè)方法是虛方法,結(jié)果如何?p 從
12、語(yǔ)法上來(lái)說(shuō)這是合法的,但有時(shí)會(huì)造成事實(shí)上的不合理 ConstructInvokeVirtual.java A Student, name:Li Ming, age: 18, school: null唐大仕29Java程序設(shè)計(jì)示例中的問(wèn)題 在本例中,在構(gòu)造方法中調(diào)用了一個(gè)動(dòng)態(tài)綁定的方法sayHello(),這時(shí), 會(huì)使用那個(gè)方法被覆蓋的定義,而這時(shí)對(duì)象嘗未完全構(gòu)建好,所以School還沒(méi)有賦值。 在構(gòu)造方法中盡量避免調(diào)用任何方法,盡可能簡(jiǎn)單地使對(duì)象進(jìn)入就緒狀態(tài) 惟一能夠安全調(diào)用的是final的方法。唐大仕30Java程序設(shè)計(jì)對(duì)象清除與回收唐大仕31Java程序設(shè)計(jì)對(duì)象清除 我們知道:new創(chuàng)建對(duì)
13、象 那么如何銷毀對(duì)象? Java中是自動(dòng)清除p 不需要使用delete唐大仕32Java程序設(shè)計(jì)對(duì)象的自動(dòng)清除回收(garbage collection ) 對(duì)象回收是由 Java虛擬機(jī)的 為什么系統(tǒng)知道對(duì)象是否為回收線程來(lái)完成的。p 任何對(duì)象都有一個(gè)計(jì)數(shù)器,當(dāng)其值為0時(shí),說(shuō)明該對(duì)象可以回收。唐大仕33Java程序設(shè)計(jì)計(jì)數(shù)示意 String method()String a,b;a=new String(“hello world”); b=new String(“game over”); System.out.println(a+b+”O(jiān)k”); a=null;a=b;return a; 唐大
14、仕34Java程序設(shè)計(jì)System.gc()方法 System.gc()方法 它是System類的static方法 它可以要求系統(tǒng)進(jìn)行回收 但它僅僅只是”建議(suggest)”唐大仕35Java程序設(shè)計(jì)finalize()方法 Java中沒(méi)有“析構(gòu)方法(destructor)” 但Object的finalize() 有類似功能p 系統(tǒng)在回收時(shí)會(huì)自動(dòng)調(diào)用對(duì)象的finalize() 方法。p protected void finalize() throws Throwable 子類的finalize()方法p 可以在子類的finalize()方法系統(tǒng)p 一般來(lái)說(shuō),子類的finalize()方法中
15、應(yīng)該調(diào)用父類的finalize()方法,以保證父類的工作能夠正常進(jìn)行。唐大仕36Java程序設(shè)計(jì)try-with-resources 由于finalize()方法的調(diào)用時(shí)機(jī)并不確定,所以一般不用finalize() 關(guān)閉打開的文件、清除一些非內(nèi)存等工作需要進(jìn)行處理 可以使用try-with-resources語(yǔ)句(JDK1.7以上) 對(duì)于實(shí)現(xiàn)了java.lang.AutoCloseable的對(duì)象 try( Scanner scanner= new Scanner( ) )p 。 會(huì)自動(dòng)調(diào)用其close()方法,相當(dāng)于 finallyp Scanner.close(); 唐大仕37Java程序設(shè)
16、計(jì)內(nèi)部類與類唐大仕38Java程序設(shè)計(jì)內(nèi)部類與類 內(nèi)部類( inner class )是在其他類中的類類( anonymous class)是一種特殊的內(nèi)部類,它沒(méi)有類名。唐大仕39Java程序設(shè)計(jì)內(nèi)部類(Inner class) 內(nèi)部類的定義p 將類的定義classx置入一個(gè)類的內(nèi)部即可xx這樣的class文件p 編譯器生成p 內(nèi)部類不能夠與外部類同名 內(nèi)部類的使用p 在封裝它的類的p 在其他地方使用內(nèi)部類,與普通類的使用方式相同 類名前要冠以外部類的名字。 在用new創(chuàng)建內(nèi)部類實(shí)例時(shí),也要在 new前面冠以對(duì)象變量。 外部對(duì)象名.new 內(nèi)部類名(參數(shù)) 示例 TestInnerClass
17、.java4040唐大仕Java程序設(shè)計(jì)在內(nèi)部類中使用外部類的成員 內(nèi)部類中可以直接外部類的字段及方法p 即使private也可以 如果內(nèi)部類中有與外部類同名的字段或方法,則可以用p 外部類名.this.字段及方法 TestInnerThis.java唐大仕41Java程序設(shè)計(jì)內(nèi)部類的修飾符 內(nèi)部類與類中的字段、方法一樣是外部類的成員,它的前面也可以有符和其他修飾符。符:public,protected,默認(rèn)及private。 注:外部類只能夠使用public修飾或者默認(rèn)p final,abstractp唐大仕42Java程序設(shè)計(jì)static修飾符 用static修飾內(nèi)部類 表明該內(nèi)部類實(shí)際是
18、一種外部類p 因?yàn)樗c外部類的實(shí)例無(wú)關(guān)p 有人認(rèn)為static的類是嵌套類(nested class),不是內(nèi)部類inner class static類在使用時(shí):p 1、實(shí)例化static類時(shí),在 new前面不需要用對(duì)象實(shí)例變量;p 2、static類中不能p 3、static方法中不能static的內(nèi)部類。其外部類的非static的字段及方法,既只能夠static成員。非static的域及方法,也不能夠不帶前綴地new 一個(gè)非 示例 TestInnerStatic.java唐大仕43Java程序設(shè)計(jì)局部類 在一個(gè)方法中也可以定義類,這種類稱為”方法中的內(nèi)部類” 或者叫局部類(local cl
19、ass) 示例 TestInnerMethod.java唐大仕44Java程序設(shè)計(jì)使用局部類 1、同局部變量一樣,方法中的內(nèi)部類p 不能夠用 public,private,protected,static修飾,p 但可以被final或者abstract修飾。 2、可以 3、不能夠其外部類的成員該方法的局部變量,除非是final局部變量。唐大仕45Java程序設(shè)計(jì)類類( anonymous class)是一種特殊的內(nèi)部類p 它沒(méi)有類名,在定義類的同時(shí)就生成該對(duì)象的一個(gè)實(shí)例p“使用”的類 示例 TestInnerAnonymous.java唐大仕46Java程序設(shè)計(jì)類的使用 1、不取名字,直接用其
20、父類或接口的名字。p 也就是說(shuō),該類是父類的子類,或者實(shí)現(xiàn)了一個(gè)接口p 編譯器生成xx$1之類的名字 2、類的定義的同時(shí)就創(chuàng)建實(shí)例,即類的定義前面有一個(gè)newp new 類名或接口名()p 不使用class,也不使用extends及implements。 3、在構(gòu)造對(duì)象時(shí)使用父類構(gòu)造方法p 不能夠定義構(gòu)造方法,因?yàn)樗鼪](méi)有名字p 如果new對(duì)象時(shí),要帶參數(shù),則使用父類的構(gòu)造方法4747唐大仕Java程序設(shè)計(jì)類的應(yīng)用 用到界面的處理一個(gè)偵pp 示例 AutoScore.java 中 /SymAction lSymAction = new SymAction(); /btnNew.addAction
21、Listener(lSymAction); btnNew.addActionListener(new ActionListener()public void actionPerformed(ActionEvent event)btnNew_ActionPerformed(event); );唐大仕48Java程序設(shè)計(jì)類的應(yīng)用 作為方法的參數(shù)p 排序,給一個(gè)比較大小的接口p 如 SortTest.java Arrays.<Book>sort( books, new Comparator<Book>()public int compare(Book b1, Book b2)
22、 return b1.getPrice()-b2.getPrice(); );唐大仕49Java程序設(shè)計(jì)Lambda表達(dá)式唐大仕50Java程序設(shè)計(jì)Lambda表達(dá)式 Lambda表達(dá)式是從Java8增加的新語(yǔ)法 Lambda表達(dá)式( expression)的基本寫法p (參數(shù))->結(jié)果p如p如p如(String s) -> s.length() x->x*x() -> System.out.println(“aaa”); 大體上相當(dāng)于其他語(yǔ)言的“ 在Java中它實(shí)際上是“函數(shù)”或“函數(shù)指針”類的一個(gè)實(shí)例”唐大仕51Java程序設(shè)計(jì)起因(參見(jiàn) LambdaRunnabl
23、e.java)唐大仕52new Thread() ->System.out.println("aaa") ).start();Runnable= () ->System.out.println("aaa"); new Thread().start();Runnable= new Runnable()public void run()System.out.println("aaa");new Thread().start();Java程序設(shè)計(jì)可以看出 Lambda表達(dá)式是接口或者說(shuō)是接口函數(shù)的簡(jiǎn)寫 其基本寫法是 參數(shù)->
24、;結(jié)果這里,參數(shù)是()或1個(gè)參數(shù)或 (多個(gè)參數(shù))結(jié)果是指 表達(dá)式 或 語(yǔ)句 或 語(yǔ)句唐大仕53Java程序設(shè)計(jì)示例:LambdaIntegral.javainterface Fun double fun( double x );唐大仕54double d = Integral( x->Math.sin(x) ), 0, Math.PI, 1e-5);double d = Integral( new Fun()public double fun(double x)return Math.sin(x);, 0, Math.PI, 1e-5 );Java程序設(shè)計(jì)由此可見(jiàn) Lambda大大地簡(jiǎn)化
25、了書寫程的例子中p new Thread( ()-> ).start(); 在的例子中p d = Integral( x->Math.sin(x), 0, 1, EPS );p d = Integral( x->x*x,0, 1, EPS );p d = Integral( x->1,0, 1, EPS ); 在按鈕處理中p btn.addActionListener( e-> ) );唐大仕55能寫成Lambda的接口的條件Java程序設(shè)計(jì) 由于Lambda只能表示一個(gè)函數(shù),所以 能寫成Lambda的接口要求包含且最多只能有一個(gè)抽象函數(shù) 這樣的接口可以(但不強(qiáng)求
26、)用注記p FunctionalInterface 來(lái)表示。稱為函數(shù)式接口 如p FunctionalInterfacep interface Fun double fun( double x );唐大仕56Java程序設(shè)計(jì)再舉一例:排序Comparator<> compareAge =(p1, p2) -> p1.age-p2.age;Arrays.sort(people, compareAge);Arrays.sort(people,(p1, p2) -> p1.age-p2.age); Arrays.sort(people,(p1, p2) -> (int)
27、(p1.score-p2.score); Arrays.sort(people,(p1, p2) -> pareTo(); Arrays.sort(people,(p1, p2) -> -pareTo();唐大仕57Java程序設(shè)計(jì)由此可見(jiàn) Lambda表達(dá)式,不僅僅是簡(jiǎn)寫了代碼, 更重要的是: 它將代碼也當(dāng)成數(shù)據(jù)來(lái)處理唐大仕58Java程序設(shè)計(jì)裝箱、枚舉、注解唐大仕59Java程序設(shè)計(jì)新的語(yǔ)法 從JDK1.5起,增加了一些新的語(yǔ)法 大部分是編譯器自動(dòng)翻譯的,稱為Complier sugar唐大仕60Java程序設(shè)計(jì)基本類型的包裝類 基本類型的包裝類p
28、它將基本類型(primitive type) 包裝成Object(類型)p 如int àp 共8類: Boolean, Byte, Short,IntergerCharacter, Integer, Long, Float, Double Integer I= new Integer(10);唐大仕61Java程序設(shè)計(jì)裝箱與拆箱 裝箱(Boxing)Integer I = 10; 拆箱(Unboxing)int i = I; 實(shí)際譯為p Integer I= Integer.valueOf(10);p int i = I.intValue(); 主要方便用于集合中,如: Object
29、 ary = 1, "aaa"唐大仕62Java程序設(shè)計(jì)枚舉 枚舉(enum)是一種特殊的class類型 在簡(jiǎn)單的情況下,用法與其他語(yǔ)言的enum相似p enum Light Red, Yellow, Green ;p Lightlight = Light.Red; 但實(shí)際上,它生成了classLight extends java.lang.Enum6363唐大仕Java程序設(shè)計(jì)自定義枚舉 可以在enum定義體中,添加字段、方法、構(gòu)造方法enum DirectionEAST("東",1), SOUTH("南",2),WEST(&quo
30、t;西",3), NORTH("北",4);private Direction(String desc, int num)this.desc=desc; this.num=num;private String desc; private int num;public String getDesc() return desc; public int getNum() return num; 6464唐大仕Java程序設(shè)計(jì)注解 注解(annotation)p 又稱為注記、標(biāo)記、標(biāo)注、注釋(不同于comments)p 是在各種語(yǔ)法要素上加上附加信息,以供編譯器或其他程序
31、使用 所有的注解都是 java.lang.annotation. Annotation 的子類6565唐大仕Java程序設(shè)計(jì)常用的注解 常用的注解,如p Override表示覆蓋父類的方法p Deprecated表示過(guò)時(shí)的方法p SuppressWarnings 表示讓編譯器不產(chǎn)生警告 自定義注解,比較復(fù)雜 public interface Author String name(); p 請(qǐng)參見(jiàn)6666唐大仕Java程序設(shè)計(jì)沒(méi)有指針的Java語(yǔ)言唐大仕67Java程序設(shè)計(jì)與指針(reference)實(shí)質(zhì)就是指針(pointer) 但是它是受控的、安全的 比如p 會(huì)檢查空指引p 沒(méi)有指針運(yùn)算 *
32、(p+5)p 不能沒(méi)有到的內(nèi)存p 自動(dòng)回收唐大仕68Java程序設(shè)計(jì)C語(yǔ)言指針在Java中的體現(xiàn) (1)傳地址對(duì)象本身就相當(dāng)于指針à類型,p 可以用來(lái)修改對(duì)象的屬性、調(diào)用對(duì)象的方法p 基本類型:沒(méi)用對(duì)應(yīng)的 如交換兩個(gè)整數(shù) void swap(int x, int y) int t=x; x=y; y=t; int a=8, b=9; swap(a.b); 一種變通的辦法,傳出一個(gè)有兩個(gè)分量x,y的對(duì)象唐大仕69Java程序設(shè)計(jì)C語(yǔ)言指針在Java中的體現(xiàn) (2)指針運(yùn)算à數(shù)組p *(p+5)則可以用args5 (3)函數(shù)指針p 例:求à接口、Lambda表達(dá)式,線
33、程 、回調(diào)函數(shù)、處理p Integral.java7070唐大仕Java程序設(shè)計(jì)C語(yǔ)言指針在Java中的體現(xiàn) (4)指向結(jié)點(diǎn)的指針à對(duì)象的p class Node Object data; Node next;pp 例List.java實(shí)現(xiàn)鏈表 (5)使用JNIp Java Native Interface(JNI)p它Java代碼和其他語(yǔ)言寫的代碼進(jìn)行交互唐大仕71Java程序設(shè)計(jì)相等還是不等 = 簡(jiǎn)單地說(shuō),基本類型是值相等,類型是相等 但有不少的具體情況具體分析:唐大仕72Java程序設(shè)計(jì)基本類型的相等 基本類型p 數(shù)值類型:轉(zhuǎn)換后比較p 浮點(diǎn)數(shù),最好不直接用=p Double.NAN=Double.NAN 結(jié)果為false 請(qǐng)參見(jiàn)JDK的API文檔p boolean型無(wú)法與int相比較7373唐大仕Java程序設(shè)計(jì)思考Integer i = new Integer(10); Integer j = new Integer(10);System.out.println(i=j);/false,因?yàn)閷?duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 團(tuán)隊(duì)協(xié)作訓(xùn)練會(huì)議協(xié)議
- 二零二五年度魚塘承包產(chǎn)業(yè)鏈合作合同
- 二零二五年度鋼構(gòu)鋼結(jié)構(gòu)工程進(jìn)度管理合同
- 2025年度高空作業(yè)安全責(zé)任協(xié)議書(高空建筑檢修)
- 2025年度綠色生態(tài)果園承包經(jīng)營(yíng)合同
- 二零二五年度平房租賃與房屋租賃維修責(zé)任合同
- 二零二五年度手房獨(dú)家代理權(quán)許可協(xié)議
- 二零二五年度水果種植與農(nóng)產(chǎn)品電商平臺(tái)聯(lián)合營(yíng)銷合同
- 2025年度潤(rùn)滑油行業(yè)培訓(xùn)與技術(shù)交流合同
- 2025年度校企合作學(xué)生實(shí)習(xí)就業(yè)合作協(xié)議書樣本
- 山東2025年山東大學(xué)輔導(dǎo)員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 骨科管理制度
- 電動(dòng)叉車培訓(xùn)課件
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 健身行業(yè)會(huì)員權(quán)益保障及免責(zé)條款協(xié)議
- 脾破裂保守治療的護(hù)理
- 煤礦安全質(zhì)量標(biāo)準(zhǔn)化培訓(xùn)課件
- 2024解析:第十七章歐姆定律-基礎(chǔ)練(解析版)
- 【MOOC】電工電子學(xué)-浙江大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 新教材 人教版高中化學(xué)選擇性必修2全冊(cè)各章節(jié)學(xué)案(知識(shí)點(diǎn)考點(diǎn)精講及配套習(xí)題)
- (一模)長(zhǎng)春市2025屆高三質(zhì)量監(jiān)測(cè)(一)生物試卷(含答案)
評(píng)論
0/150
提交評(píng)論