亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 Java Java入門 java介面的修飾符可以是什麼

java介面的修飾符可以是什麼

Jan 04, 2023 pm 01:04 PM
java

java介面的修飾符可以是abstract和final。介面可以被理解為一種特殊的類,不同的是介面的成員沒有執(zhí)行體,是由全域常數(shù)和公共的抽象方法所組成;介面的方法預(yù)設(shè)是public abstract;而介面中不可以定義變數(shù)即只能定義常數(shù)(加上final修飾就會變成常數(shù)),所以介面的屬性預(yù)設(shè)是public static final 常數(shù),且必須賦初值。

java介面的修飾符可以是什麼

本教學(xué)操作環(huán)境:windows7系統(tǒng)、java8版、DELL G3電腦。

抽象類別是從多個類別中抽像出來的模板,如果將這種抽象進(jìn)行的更徹底,則可以提煉出一種更特殊的「抽象類別」-介面(Interface)。介面是?Java?中最重要的概念之一,它可以被理解為一種特殊的類,不同的是介面的成員沒有執(zhí)行體,是由全域常數(shù)和公共的抽象方法所組成。

定義介面

Java 介面的定義方式與類別基本上相同,不過介面定義使用的關(guān)鍵字是interface,介面定義的語法格式如下:

[public] interface interface_name [extends interface1_name[, interface2_name,…]] {
    // 接口體,其中可以包含定義常量和聲明方法
    [public] [static] [final] type constant_name = value;    // 定義常量
    [public] [abstract] returnType method_name(parameter_list);    // 聲明方法
}

對上述語法的說明如下:

  • #public 表示介面的修飾符,當(dāng)沒有修飾符時,則使用預(yù)設(shè)的修飾符,此時該介面的存取權(quán)限僅限於所屬的套件;

  • interface_name 表示介面的名稱。介面名稱應(yīng)與類別名稱採用相同的命名規(guī)則,即如果僅從語法角度來看,介面名稱只要是合法的識別碼即可。如果要遵守 Java 可讀性規(guī)範(fàn),則介面名稱應(yīng)由多個有意義的單字連綴而成,每個單字首字母大寫,單字與單字之間無需任何分隔符號。

  • extends 表示介面的繼承關(guān)係;

  • interface1_name 表示要繼承的介面名稱;

  • constant_name 表示變數(shù)名稱,一般是static 和final 型的;

  • returnType 表示方法的回傳值類型;

  • parameter_list 表示參數(shù)清單,在介面中的方法是沒有方法體的。

注意:一個接口可以有多個直接父接口,但接口只能繼承接口,不能繼承類別。

java介面的修飾符

#介面很重要,為了說明情況,這裡稍微囉嗦點:

(1)介面用於描述系統(tǒng)對外提供的所有服務(wù),因此介面中的成員常數(shù)和方法都必須是公開(public)類型的,確保外部使用者能存取它們;

(2)介面只是描述系統(tǒng)能做什麼,但不指明如何去做,所以介面中的方法都是抽象(abstract)方法;

(3)介面不涉及和任何具體實例相關(guān)的細(xì)節(jié),因此介面沒有建構(gòu)方法,不能被實例化,沒有實例變量,只有靜態(tài)(static)變數(shù);

(4)介面的中的變數(shù)是所有實作類別共有的,既然共有,肯定是不變的東西,因為變化的東西也不能夠算共有。所以變數(shù)是不可變(final)型,也就是常數(shù)了。

(5) 介面中不可以定義變數(shù)?如果介面可以定義變量,但是介面中的方法又都是抽象的,在介面中無法透過行為來修改屬性。有的人會說了,沒有關(guān)係,可以透過 實作介面的物件的行為來修改介面中的屬性。這當(dāng)然沒有問題,但考慮這樣的情況。如果在介面 A 中有一個public 存取權(quán)限的靜態(tài)變數(shù) a。依照 Java 的語義,我們可以不透過實作介面的物件來存取變數(shù) a,透過 A.a = xxx; 就可以改變介面中的變數(shù) a 的值了。正如抽象類別中是可以這樣做的,那麼實現(xiàn)介面A 的所有物件也會自動擁有這一改變後的a 的值了,也就是說一個地方改變了a,所有這些物件中a 的值也都跟著變了。這和抽象類別有什麼差別呢,要怎麼體現(xiàn)介面更高的抽象層級呢,怎麼體現(xiàn)介面提供的統(tǒng)一的協(xié)定呢,那還要介面這種抽象來做什麼呢?所以介面中 不能出現(xiàn)變量,如果有變量,就和介面提供的統(tǒng)一的抽象這種思想是抵觸的。所以介面中的屬性必然是常數(shù),只能讀不能改,這樣才能為實作介面的物件提供一個統(tǒng) 一的屬性。

通俗的講,你認(rèn)為是要變化的東西,就放在你自己的實作中,不能放在介面中去,介面只是對一類事物的屬性和行為更高層次的抽象。對修改關(guān)閉,對擴(kuò)充(不同的實作 implements)開放,介面是對開閉原則的一種體現(xiàn)。

所以:

介面的方法預(yù)設(shè)是public abstract;

介面中不可以定義變數(shù)即只能定義常數(shù)(加上final修飾就會變成常量)。所以介面的屬性預(yù)設(shè)是public static final 常數(shù),且必須賦初值。

注意:final和abstract不能同時出現(xiàn)。

更多程式相關(guān)知識,請造訪:程式設(shè)計教學(xué)! !

以上是java介面的修飾符可以是什麼的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCODE設(shè)置。 JSON位置 VSCODE設(shè)置。 JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位於用戶級或工作區(qū)級路徑,用於自定義VSCode設(shè)置。 1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級路徑:項目根目錄下的.vscode/settings

如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動提交模式,再執(zhí)行多個操作,最後根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開始事務(wù);2.執(zhí)行多個SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時應(yīng)使用try-with-resources管理資源,妥善處理異常並關(guān)閉連接,避免連接洩漏;此外建議使用連接池、設(shè)置保存點實現(xiàn)部分回滾,並保持事務(wù)盡可能短以提升性能。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

如何使用Java的日曆? 如何使用Java的日曆? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時間;3.使用of()方法創(chuàng)建特定日期時間;4.利用plus/minus方法不可變地增減時間;5.使用ZonedDateTime和ZoneId處理時區(qū);6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時通過Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

Google Chrome無法打開本地文件 Google Chrome無法打開本地文件 Aug 01, 2025 am 05:24 AM

ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

了解網(wǎng)絡(luò)端口和防火牆 了解網(wǎng)絡(luò)端口和防火牆 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

See all articles