版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Version 1.0類(lèi)的高級(jí)特性類(lèi)的高級(jí)特性類(lèi)是對(duì)象的抽象,將對(duì)象的屬性和行為類(lèi)是對(duì)象的抽象,將對(duì)象的屬性和行為抽抽象為類(lèi)中的數(shù)據(jù)和方法。象為類(lèi)中的數(shù)據(jù)和方法。extends 關(guān)鍵字用于繼承類(lèi)。關(guān)鍵字用于繼承類(lèi)。super關(guān)鍵字用來(lái)解決如何直接訪問(wèn)或初始關(guān)鍵字用來(lái)解決如何直接訪問(wèn)或初始化從父類(lèi)繼承來(lái)的屬性化從父類(lèi)繼承來(lái)的屬性 。構(gòu)造函數(shù)名稱(chēng)與類(lèi)的名稱(chēng)相同,且沒(méi)有返構(gòu)造函數(shù)名稱(chēng)與類(lèi)的名稱(chēng)相同,且沒(méi)有返回類(lèi)型?;仡?lèi)型。方法重載和方法覆蓋是方法重載和方法覆蓋是Java實(shí)現(xiàn)多態(tài)性機(jī)制實(shí)現(xiàn)多態(tài)性機(jī)制的方式。的方式。 掌握類(lèi)的掌握類(lèi)的靜態(tài)成員靜態(tài)成員 掌握掌握f(shuō)inal關(guān)鍵字用法關(guān)鍵字用法 掌握掌握抽象
2、類(lèi)抽象類(lèi)的定義和用法的定義和用法 掌握掌握接口接口的定義和用法的定義和用法 掌握掌握高級(jí)訪問(wèn)控制高級(jí)訪問(wèn)控制 了解了解內(nèi)部類(lèi)內(nèi)部類(lèi)的概念的概念 類(lèi)中的靜態(tài)變量、方法或代碼塊屬于類(lèi),而類(lèi)中的靜態(tài)變量、方法或代碼塊屬于類(lèi),而不屬于某個(gè)特定的對(duì)象。不屬于某個(gè)特定的對(duì)象。 類(lèi)的靜態(tài)成員可以與類(lèi)的名稱(chēng)一起使用,而類(lèi)的靜態(tài)成員可以與類(lèi)的名稱(chēng)一起使用,而無(wú)需創(chuàng)建類(lèi)的對(duì)象。無(wú)需創(chuàng)建類(lèi)的對(duì)象。 靜態(tài)變量或方法也稱(chēng)為類(lèi)的變量或方法。靜態(tài)變量或方法也稱(chēng)為類(lèi)的變量或方法。用用static修飾符修飾,修飾符修飾,可以是變量、方法或代可以是變量、方法或代碼塊碼塊 不管創(chuàng)建了類(lèi)的多少實(shí)例,整個(gè)類(lèi)中靜態(tài)變不管創(chuàng)建了類(lèi)的多少實(shí)
3、例,整個(gè)類(lèi)中靜態(tài)變量的副本只有一個(gè)。量的副本只有一個(gè)。 引用靜態(tài)變量的方法:引用靜態(tài)變量的方法:- 通過(guò)引用類(lèi)的任一實(shí)例通過(guò)引用類(lèi)的任一實(shí)例- 通過(guò)類(lèi)的名稱(chēng)通過(guò)類(lèi)的名稱(chēng)class StaticDemo static int x = 0; StaticDemo()x+;StaticDemo d1 = new StaticDemo();StaticDemo d2 = new StaticDemo();d1.x = 100 ;d2.x = 200;testVariable = d1.x; 通過(guò)類(lèi)實(shí)例訪問(wèn)通過(guò)類(lèi)實(shí)例訪問(wèn)不是一個(gè)好方法不是一個(gè)好方法StaticDemo d1 = new StaticDe
4、mo();StaticDemo d2 = new StaticDemo(); StaticDemo.x = 100;StaticDemo.x = 200;testVariable = StaticDemo.x; 聲明為聲明為static的變量實(shí)質(zhì)的變量實(shí)質(zhì)上就是全局變量上就是全局變量通過(guò)類(lèi)名訪問(wèn)通過(guò)類(lèi)名訪問(wèn) 與靜態(tài)方法相關(guān)的幾個(gè)要點(diǎn):與靜態(tài)方法相關(guān)的幾個(gè)要點(diǎn):類(lèi)的靜態(tài)方法只能訪問(wèn)其他的靜態(tài)成員類(lèi)的靜態(tài)方法只能訪問(wèn)其他的靜態(tài)成員靜態(tài)方法沒(méi)有靜態(tài)方法沒(méi)有this靜態(tài)方法不能被覆蓋為非靜態(tài)方法靜態(tài)方法不能被覆蓋為非靜態(tài)方法class StaticFun static int i = 10; int
5、j; static void setValue(int x) j=x;/出錯(cuò)出錯(cuò) System.out.println( + i); 不能訪問(wèn)非靜態(tài)變量不能訪問(wèn)非靜態(tài)變量j,可以訪問(wèn)靜態(tài)變量可以訪問(wèn)靜態(tài)變量iclass StaticTest static void test() class Staticex extends StaticTest void test() /出錯(cuò)出錯(cuò) 如果需要通過(guò)計(jì)算來(lái)初始化靜態(tài)變量,可以如果需要通過(guò)計(jì)算來(lái)初始化靜態(tài)變量,可以聲明一個(gè)靜態(tài)塊。聲明一個(gè)靜態(tài)塊。 靜態(tài)塊僅在該類(lèi)被加載時(shí)執(zhí)行一次。靜態(tài)塊僅在該類(lèi)被加載時(shí)執(zhí)行一次。 只能初始化類(lèi)的靜態(tài)數(shù)據(jù)成員。只能初始化類(lèi)
6、的靜態(tài)數(shù)據(jù)成員。 class TryInitialization static int values = new int10; /靜態(tài)數(shù)組成員靜態(tài)數(shù)組成員 static for(int i=0; ivalues.length; i+) valuesi = (int)(100.0*Math.random(); final 修飾符可應(yīng)用于類(lèi)、方法和變量。修飾符可應(yīng)用于類(lèi)、方法和變量。 final在應(yīng)用于類(lèi)、方法和變量時(shí)意義是不同在應(yīng)用于類(lèi)、方法和變量時(shí)意義是不同的,但本質(zhì)是一樣的:的,但本質(zhì)是一樣的:final表示不可改變。表示不可改變。 聲明為聲明為final的類(lèi)不能被繼承。的類(lèi)不能被繼承。 f
7、inal 類(lèi)示例:類(lèi)示例: java.lang.String final class TestFinal int i = 7; int j = 1; void f() class Further extends TestFinal final類(lèi)不能被繼承類(lèi)不能被繼承 在方法聲明中使用在方法聲明中使用 final 關(guān)關(guān)鍵字向編譯器表鍵字向編譯器表明子類(lèi)不能覆蓋此方法明子類(lèi)不能覆蓋此方法。 在聲明類(lèi)中,一個(gè)在聲明類(lèi)中,一個(gè) final 方法只被實(shí)現(xiàn)一次。方法只被實(shí)現(xiàn)一次。 如果一個(gè)類(lèi)為如果一個(gè)類(lèi)為 final 類(lèi),那么它的所有方法類(lèi),那么它的所有方法都為隱式的都為隱式的 final 方法方法。cl
8、ass TestFinal final void f() class Further extends TestFinal final void f() final方法不能方法不能被覆蓋被覆蓋 一個(gè)變量可以聲明為一個(gè)變量可以聲明為final,這樣做的目的是這樣做的目的是阻止它的內(nèi)容被修改。阻止它的內(nèi)容被修改。 聲明聲明final變量后,只能被初始化一次,然后變量后,只能被初始化一次,然后就不能對(duì)其值進(jìn)行修改就不能對(duì)其值進(jìn)行修改。 一個(gè)一個(gè)final變量實(shí)質(zhì)上是一個(gè)常量。變量實(shí)質(zhì)上是一個(gè)常量。 class FinalDemo public static void main(String args)
9、 final int noChange = 20; noChange = 30; final變量不能被變量不能被修改修改 定義抽象類(lèi)的目的是提供可由其子類(lèi)共享定義抽象類(lèi)的目的是提供可由其子類(lèi)共享的一般形式。的一般形式。 子類(lèi)可以根據(jù)自身需要擴(kuò)展抽象類(lèi)。子類(lèi)可以根據(jù)自身需要擴(kuò)展抽象類(lèi)。 抽象類(lèi)不能實(shí)例化。抽象類(lèi)不能實(shí)例化。 抽象方法沒(méi)有函數(shù)體。抽象方法沒(méi)有函數(shù)體。 抽象方法必須在子類(lèi)中給出具體實(shí)現(xiàn)。抽象方法必須在子類(lèi)中給出具體實(shí)現(xiàn)。abstract 修飾符可修飾符可與類(lèi)和方法一起與類(lèi)和方法一起使用使用 在以下情況下,某個(gè)類(lèi)將成為抽象類(lèi):在以下情況下,某個(gè)類(lèi)將成為抽象類(lèi): 當(dāng)一個(gè)類(lèi)的一個(gè)或多個(gè)方法
10、為抽象方法時(shí)。當(dāng)一個(gè)類(lèi)的一個(gè)或多個(gè)方法為抽象方法時(shí)。當(dāng)該類(lèi)為一個(gè)抽象類(lèi)的子類(lèi),并且沒(méi)有為所有當(dāng)該類(lèi)為一個(gè)抽象類(lèi)的子類(lèi),并且沒(méi)有為所有抽象方法提供實(shí)現(xiàn)細(xì)節(jié)或方法主體時(shí)。抽象方法提供實(shí)現(xiàn)細(xì)節(jié)或方法主體時(shí)。當(dāng)一個(gè)類(lèi)實(shí)現(xiàn)一個(gè)接口,并且沒(méi)有為所有抽象當(dāng)一個(gè)類(lèi)實(shí)現(xiàn)一個(gè)接口,并且沒(méi)有為所有抽象方法提供實(shí)現(xiàn)細(xì)節(jié)或方法主體時(shí)。方法提供實(shí)現(xiàn)細(xì)節(jié)或方法主體時(shí)。abstract class Employee int basic = 2000; abstract void salary();/抽象方法抽象方法class Manager extends Employee void salary() System.out.
11、println(薪資等于薪資等于 +basic*5); class Worker extends Employee void salary() System.out.println(薪資等于薪資等于 +basic*2); 抽象方法沒(méi)有抽象方法沒(méi)有方法主體方法主體在子類(lèi)中提供在子類(lèi)中提供實(shí)現(xiàn)實(shí)現(xiàn)在子類(lèi)中提供在子類(lèi)中提供實(shí)現(xiàn)實(shí)現(xiàn) 一個(gè)接口允許一個(gè)類(lèi)從幾個(gè)接口繼承而來(lái)。一個(gè)接口允許一個(gè)類(lèi)從幾個(gè)接口繼承而來(lái)。 Java 程序一次只能繼承一個(gè)類(lèi)但可以實(shí)現(xiàn)程序一次只能繼承一個(gè)類(lèi)但可以實(shí)現(xiàn)幾個(gè)接口。幾個(gè)接口。 接口不能有任何具體的方法。接口不能有任何具體的方法。 接口也可用來(lái)定義可由類(lèi)使用的一組常量。接口也
12、可用來(lái)定義可由類(lèi)使用的一組常量。 接口提供接口提供“is a”關(guān)系。關(guān)系。 / / 有方法的接口有方法的接口public interface myinterface public void add(int x, int y);public void volume(int x,int y, int z);/ / 定義程序使用的常量的接口定義程序使用的常量的接口public interface myconstants public static final double price = 1450.00; public static final int counter = 5; 定義一個(gè)接口:定義一
13、個(gè)接口: 編譯如下:編譯如下:javac myinterface.java 用關(guān)鍵字用關(guān)鍵字 implements 實(shí)現(xiàn)接口,例如:實(shí)現(xiàn)接口,例如:class demo implements myinterface 如果有一個(gè)以上接口被實(shí)現(xiàn),則用逗號(hào)隔開(kāi)如果有一個(gè)以上接口被實(shí)現(xiàn),則用逗號(hào)隔開(kāi)接口名稱(chēng),如下所示:接口名稱(chēng),如下所示: class demo implements Mycalc, Mycountinterface A double g=9.8; void show( );class InterfaceTest public static void main(String args )
14、 B b=new B( ); b.show( ); class B implements A public void show( ) System.out.println(“g=“+g); 訪問(wèn)修飾符為:訪問(wèn)修飾符為:- public- protected- private 如果一個(gè)類(lèi)或類(lèi)的成員前沒(méi)有任何訪問(wèn)修如果一個(gè)類(lèi)或類(lèi)的成員前沒(méi)有任何訪問(wèn)修飾符時(shí),它們獲得缺省的訪問(wèn)權(quán)限。飾符時(shí),它們獲得缺省的訪問(wèn)權(quán)限。 只有在使用只有在使用 public 訪問(wèn)修飾符時(shí),類(lèi)的訪問(wèn)修飾符時(shí),類(lèi)的成員才可被同一包或不同包中的所有類(lèi)成員才可被同一包或不同包中的所有類(lèi)訪問(wèn)。訪問(wèn)。 也就是說(shuō),也就是說(shuō),public
15、 訪問(wèn)修飾符可以使類(lèi)的訪問(wèn)修飾符可以使類(lèi)的特性公用于任何類(lèi)。特性公用于任何類(lèi)。 缺省的成員可以被同一包中的其他類(lèi)訪問(wèn)。缺省的成員可以被同一包中的其他類(lèi)訪問(wèn)。 protected 訪問(wèn)修飾符允許類(lèi)本身、同一包訪問(wèn)修飾符允許類(lèi)本身、同一包中的所有類(lèi)和不同包中的子類(lèi)訪問(wèn)中的所有類(lèi)和不同包中的子類(lèi)訪問(wèn) 。 如果希望一個(gè)成員在當(dāng)前包外可見(jiàn),但僅如果希望一個(gè)成員在當(dāng)前包外可見(jiàn),但僅僅是成員所在類(lèi)的子類(lèi)直接可見(jiàn),就要使僅是成員所在類(lèi)的子類(lèi)直接可見(jiàn),就要使用用 protected 修飾該成員。修飾該成員。 private 訪問(wèn)修飾符是限制性最大的一種訪訪問(wèn)修飾符是限制性最大的一種訪問(wèn)修飾符。問(wèn)修飾符。 被聲明
16、為被聲明為private的成員只能被此類(lèi)中的其的成員只能被此類(lèi)中的其他成員訪問(wèn),不能被類(lèi)外看到。他成員訪問(wèn),不能被類(lèi)外看到。 繼承體系結(jié)構(gòu)中最高級(jí)別的類(lèi)決不會(huì)被繼承體系結(jié)構(gòu)中最高級(jí)別的類(lèi)決不會(huì)被聲明為聲明為 private 類(lèi)。類(lèi)。 訪問(wèn)控制訪問(wèn)控制private成員成員缺省的成員缺省的成員protected成員成員public成員成員同一類(lèi)中成員同一類(lèi)中成員 同一包中其他類(lèi)同一包中其他類(lèi) 不同包中子類(lèi)不同包中子類(lèi) 不同包中非子類(lèi)不同包中非子類(lèi) 基本數(shù)據(jù)類(lèi)型不是對(duì)象層次基本數(shù)據(jù)類(lèi)型不是對(duì)象層次結(jié)構(gòu)的組成部分。有時(shí)需要結(jié)構(gòu)的組成部分。有時(shí)需要象處理對(duì)象一樣處理這些基象處理對(duì)象一樣處理這些基本數(shù)據(jù)
17、類(lèi)型,可通過(guò)相應(yīng)的本數(shù)據(jù)類(lèi)型,可通過(guò)相應(yīng)的“封裝類(lèi)封裝類(lèi)”來(lái)將其來(lái)將其“封裝封裝”。 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型封裝類(lèi)封裝類(lèi)booleanBooleanbyteBytecharCharacterdoubleDoublefloatFloatintIntegerlongLongshortShortBoolean wrapBool = new Boolean(false);Integer num1 = new Integer (31);Integer num2 = new Integer(3);int sum = Value() * Value();intValue()返回調(diào)用
18、對(duì)返回調(diào)用對(duì)象的整型值象的整型值 class CmdArg public static void main(String args) int sum = 0; for(int cnt = 0; cnt args.length; cnt+) sum+=Integer.parseInt(argscnt); System.out.println(和為:和為:+sum); parseInt()parseInt()方法將執(zhí)行方法將執(zhí)行從字符串轉(zhuǎn)換成與之相從字符串轉(zhuǎn)換成與之相應(yīng)的整型(應(yīng)的整型(intint)值值 內(nèi)部類(lèi)為一個(gè)類(lèi)被嵌套定義于另一個(gè)類(lèi)中。內(nèi)部類(lèi)為一個(gè)類(lèi)被嵌套定義于另一個(gè)類(lèi)中。 在類(lèi)中定義的類(lèi)
19、稱(chēng)為在類(lèi)中定義的類(lèi)稱(chēng)為內(nèi)部類(lèi)內(nèi)部類(lèi)。 內(nèi)部類(lèi)之外的類(lèi)稱(chēng)為內(nèi)部類(lèi)之外的類(lèi)稱(chēng)為外部類(lèi)外部類(lèi)。 內(nèi)部類(lèi)可以訪問(wèn)其外部類(lèi)的所有變量和方內(nèi)部類(lèi)可以訪問(wèn)其外部類(lèi)的所有變量和方法,并能夠以和外部類(lèi)的其他非靜態(tài)成員法,并能夠以和外部類(lèi)的其他非靜態(tài)成員相同的方式直接引用它們。相同的方式直接引用它們。 內(nèi)部類(lèi)完全在其包圍類(lèi)的范圍之內(nèi)。內(nèi)部類(lèi)完全在其包圍類(lèi)的范圍之內(nèi)。public class group1 int count; public class student String name; public void output() System.out.println(+”); 內(nèi)部類(lèi)的類(lèi)名只
20、能用在外部類(lèi)或語(yǔ)句塊之內(nèi)內(nèi)部類(lèi)的類(lèi)名只能用在外部類(lèi)或語(yǔ)句塊之內(nèi) 內(nèi)部類(lèi)作為外部類(lèi)的成員內(nèi)部類(lèi)作為外部類(lèi)的成員 外部類(lèi)和內(nèi)部類(lèi)各有自己的成員外部類(lèi)和內(nèi)部類(lèi)各有自己的成員 內(nèi)部類(lèi)可以定義為抽象類(lèi)型,但需要被其他內(nèi)部類(lèi)可以定義為抽象類(lèi)型,但需要被其他的內(nèi)部類(lèi)繼承或?qū)崿F(xiàn)的內(nèi)部類(lèi)繼承或?qū)崿F(xiàn) 內(nèi)部類(lèi)可以是一個(gè)接口,但必須由另一個(gè)內(nèi)內(nèi)部類(lèi)可以是一個(gè)接口,但必須由另一個(gè)內(nèi)部類(lèi)來(lái)實(shí)現(xiàn)部類(lèi)來(lái)實(shí)現(xiàn) 定義為定義為static的內(nèi)部類(lèi)稱(chēng)為靜態(tài)內(nèi)部類(lèi)的內(nèi)部類(lèi)稱(chēng)為靜態(tài)內(nèi)部類(lèi) 靜態(tài)內(nèi)部類(lèi)將自動(dòng)轉(zhuǎn)為頂層類(lèi),即沒(méi)有超類(lèi),靜態(tài)內(nèi)部類(lèi)將自動(dòng)轉(zhuǎn)為頂層類(lèi),即沒(méi)有超類(lèi),并且不能引用外部類(lèi)成員或其他內(nèi)部類(lèi)中的并且不能引用外部類(lèi)成員或其他內(nèi)部類(lèi)中的成員成員 只有內(nèi)部類(lèi)是靜態(tài)的,才能聲明靜態(tài)成員只有內(nèi)部類(lèi)是靜態(tài)的,才能聲明靜態(tài)成員public class group2 int count; public static class student String name; static int score; public void output() System.out.println(this
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園校車(chē)司機(jī)安全操作規(guī)程培訓(xùn)聘用合同3篇
- 2024版公司廢品買(mǎi)賣(mài)合同
- 2025年湘教新版九年級(jí)科學(xué)上冊(cè)月考試卷含答案
- 2025年湘教版八年級(jí)生物上冊(cè)月考試卷含答案
- 光伏系統(tǒng)工程師求職信
- 個(gè)體承包商工地合作合同2024年版
- 二零二五年特色農(nóng)家樂(lè)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同3篇
- 2025年浙教版一年級(jí)語(yǔ)文下冊(cè)月考試卷含答案
- 專(zhuān)業(yè)理發(fā)師勞動(dòng)協(xié)議樣本版
- 二零二五年RoHS環(huán)保協(xié)議范本與環(huán)保法規(guī)執(zhí)行監(jiān)督協(xié)議3篇
- 智慧農(nóng)業(yè)行業(yè)營(yíng)銷(xiāo)策略方案
- 市場(chǎng)部整體運(yùn)營(yíng)概況
- 數(shù)字廣告數(shù)據(jù)要素流通保障技術(shù)研究報(bào)告(2023年)
- JJF(蘇) 283-2024 暫態(tài)地電壓法局部放電檢測(cè)儀校準(zhǔn)規(guī)范
- 某27層高層住宅樓施工組織設(shè)計(jì)方案
- 2025年中考語(yǔ)文備考之名著導(dǎo)讀:《水滸傳》主要人物梳理
- 小學(xué)科學(xué)學(xué)情分析報(bào)告總結(jié)
- 健康中國(guó)產(chǎn)業(yè)園規(guī)劃方案
- (2024年)二年級(jí)上冊(cè)音樂(lè)
- 2024屆高考英語(yǔ)一輪復(fù)習(xí)讀后續(xù)寫(xiě)脫險(xiǎn)類(lèi)續(xù)寫(xiě)講義
- ISO13485內(nèi)部審核檢查表+內(nèi)審記錄
評(píng)論
0/150
提交評(píng)論