Java中名詞的解釋

来源:https://www.cnblogs.com/houqx/archive/2019/01/06/10228985.html
-Advertisement-
Play Games

在上一篇中說到了Java的四大特性,裡面出現了很多名次,包括以後學習Java中也會出現很多常用到的名次,對初學者來說可能不知道是什麼意思,或者是對這些刺耳的理解不是特別透徹,這裡我就我自己的理解來解釋下這些詞的意思。 包 在Java中常說某個包下麵的某個類。那麼什麼是包呢?在平時操作電腦時,我們常江 ...


在上一篇中說到了Java的四大特性,裡面出現了很多名次,包括以後學習Java中也會出現很多常用到的名次,對初學者來說可能不知道是什麼意思,或者是對這些刺耳的理解不是特別透徹,這裡我就我自己的理解來解釋下這些詞的意思。

在Java中常說某個包下麵的某個類。那麼什麼是包呢?在平時操作電腦時,我們常江某個文檔,視頻,音頻等問價放在某個文件夾下,而這個文件夾在Java中就就叫做包。其實飽和文件夾在某種意義上來說是等同的,只是在Java中將其叫做包而不叫做文件夾。

放在包下麵的一個個並且是以.java結尾的文件就是類。前面有說道對想是Java程式的核心,而類描述了對象的屬性和對象的行為,類是對象模板【類是對對象的抽象,對象是對類的實例化】

類按類型分為普通類,抽象類,介面,嵌套類等。按層級分又分為父類和子類

普通類

【訪問修飾符】 class 類名 【implements/extends  類名】{  },其中有一種特殊的類object類,object類是所有類的父類,如果一個類沒有用extends明確指出繼承於某個類,那麼它預設繼承Object類。

抽象類

當一個類中沒有足夠的信息描述一個具體的書屋時,這個類就是抽象類。

語法:【訪問修飾符】 abstract class 類名{   }

特點:

1、抽象類不能實例化

2、抽象類可以擁有構造方法

3、抽象類可以聲明實例變數,也可以聲明靜態變數,也可以存在普通方法和靜態方法,變數在抽象類中可以初始化

4、抽象類中還可以有抽象方法  語法:【訪問修飾符】 abstract 返回值類型  方法名  (【參數】);

5、抽象類抽象方法,有抽象類的子類來實現

6、如果一個類是抽象類,那麼這個類的不一定有抽象方法,但如果一個類有抽象方法,那麼這個類一定是抽象類

7、如果抽象類的子類沒有吧抽象類中的所有抽象方法實現,則子類也需要定義成抽象類,有子類的子類負責實現剩餘的抽象方法。

8、普通方法在子類中與普通類一樣,可以實現也可以不實現

介面

就是對外提供了一系列功能的生命(也可以說介面中定義的方法只有方法的生命,沒有方法體)

語法:【訪問修飾符】 interface 介面名  {  

    //常量和方法的聲明

}

1 public interface  demo{
2      int i=0;
3      public void  add() ;         
4 }

特點:

1、介面中聲明的方法沒有方法體,只有方法的聲明

2、介面中聲明的成員屬性都是靜態的而且都是不可變的,因為介面中的成員屬性預設都是public  static  final 來修飾的

3、介面沒有構造方法,也不能被實例化

4、介面可以實現多繼承,介面之間用逗號隔開

5、介面中的方法只能被public來修飾,就算沒有明確的神明訪問修飾符,預設也是public

通過implements來實現介面,語法:

【訪問修飾符】 class  類名  implements  介面1,介面2{   }

嵌套類

聲明在類的內部的類稱之為嵌套類

語法:【訪問修飾符】 class 類名{

      【訪問修飾符】【static】 class  類名{

      }

  }

分類:內部類:非靜態嵌套類

   靜態嵌套類:用static修飾的嵌套類

內部類:內部類作為外部類的一個成員存在,與外部類的成員變數,成員方法併列

局部內部類:在方法體內聲明的類,可以訪問他所在方法中的final參數和final局部變數

靜態嵌套類中可聲明static成員或非靜態成員變數,但只能訪問外部類中的靜態成員

方法

方法就是實現某個功能的代碼塊

方法的定義語法:

1、無返回值無參數的方法  【訪問修飾符】 void  方法名(){ //方法的功能代碼 }

說明:void就是表示該方法是無返回值得(也就是說調用完該方法不會返回一個結果)

2、無返回值有參數的方法    【訪問修飾符】  void  方法名(數據類型   參數名,...){//方法的功能代碼}

說明:方法中的參數又稱為形參(形式意義的參數),調用該方法時傳遞的數據稱為實參(實際的數據),傳遞的參數要和方法中的參數類型匹配

3、有返回值無參數的方法   【訪問修飾符】  返回值類型   方法名稱(){   return   返回值;  }

說明:1、返回值類型有放回值來決定

            2、在由返回值得方法的最後一句代碼,一定是  return  返回值;。

4、有返回值有參數的方法    【訪問修飾符】  返回值類型  方法名(參數列表){  return   返回值}

變數

定義:在Java中用來存儲數據的元素,而且該元素所存放的數據時可以變化的,所以稱為變數

註意:變數也是標識符的一部分

語法:1、變身名變賦值   數據類型   變數名稱=變數值

       2、先聲明後賦值  數據類型  變數名稱;變數名稱=變數值;

定義變數的四個步驟:

1、聲明數據類型其實就是為了根據數據類型開闢相應的記憶體空間

2、給變數命名,其實就會說為了能夠把變數名和數據類型所對應的記憶體空間進行關聯

3、給變數賦值,其實就是把數據存放到變數名所對應的記憶體空間

4、使用變數,其實就是把變數所對應的記憶體空間中的數據讀取出來

常量

定義:在程式中他的值是不可變的,這樣的冤死及時常量

語法:final  數據類型  常量名稱=常量值;

建議:常量名稱一般全部大寫

標識符

標識符就是類名,方法名,參數名,包名等元素命名時,所寫的字元序列就統稱為標識符

標識符的命名規則:

1、有字幕,數字,下劃線,和$組成

2、不能以數字開頭

3、嚴格區分大小寫

4、長度無限制

5、不能是Java的關鍵字和保留關鍵字

建議:見名知意

訪問修飾符

在定義類、屬性、方法時都需要指定訪問修飾符,以此來限定類、屬性、方法的可訪問範圍。Java中的訪問修飾符有以下幾個關鍵字:

public:公共。該類或非該類均可訪問

private:私有的。只有在類的主體中才可以訪問。只能修飾屬性和方法,不能修飾類

protected:受保護。該類及子類的成員均可以訪問,同一個包中的類也可以訪問。只能修飾屬性和方法,不能修飾類

預設:不使用修飾符。只有相同包中的類才可以訪問

位置 private 預設 protected public
同一個類
同一個包內的類
不同保內的類
不同包內不同類 否  

關鍵字

在Java中被賦予了一定特殊意義和用途的單詞

保留關鍵字也是關鍵字,只是目前沒有任何的特殊意義和用途,保留使用。

this關鍵字

使用範圍:this關鍵字只能使用在沒有被static關鍵字修飾的方法中

作用:this關鍵字就會說對當類某個對象的引用(簡單來說就是可以把this看做當前類的一個對象,哪個對象調用當前的方法,this關鍵字就指向該對象)

【當局部變數和成員變數完全一致時,以局部變數為主,即就近原則】

用法:

1、當方法中的參數名或變數名和成員變數完全一致時,可以通過this關鍵字來區分作用域

2、當this關鍵字以this(參數列表)的形式,出現在構造方法的第一句時,就表示當前構造方法調用了該類中其他的構造方法。

final關鍵字

1、final修飾的變數等同於常量,一旦賦值就無法更改(是指引用變數不能變,引用變數所指向的對象的內容還是可以改變的)

【final無論修飾全局變數還是局部變數,在定義時都必修要初始化才能使用】

2、final修飾方法中的參數稱為最終參數,在方法體中同樣也不能為最終參數重新賦值

3、final修飾類,該類不能被繼承

4、final修飾的方法,不能被重寫

staitic關鍵字

static可以修飾變數,方法,代碼塊

static修飾變數,也稱為類變數,因為static關鍵字修飾的變數,方法,代碼塊都屬於類,而不屬於某個對象

【實例變數:沒有被static修飾的成員屬性或方法都屬於某個對象,也叫做實例屬性或實例方法,對象存在了,才會有實例變數開闢空間】

static修飾的屬相、方法可以通過:類名.屬性名或l類名.方法(參數)的形式來調用

特點:

1、靜態方法中只能訪問靜態方法和靜態的成員變數

2、在非靜態方法中,既可以訪問非靜態的方法、屬性,也可以訪問靜態屬性和靜態方法

3、在靜態方法中不能使用this和supper關鍵字,因為this和supper表示對對象的引用,而static修飾的方法是屬於類,所以在語法上存在一定的衝突

靜態代碼塊:靜態代碼塊只能出現在類的內部,任何方法的外部

靜態代碼塊語法:static{   }

靜態代碼塊作用:就是給靜態的成員屬性進行初始化

靜態代碼塊的優先順序比構造方法的優先順序高

方法中參數的傳遞

在Java中無論是基本數據類型還是引用數據類型,在進行參數的傳遞時,都是採用的值傳遞(也就是傳遞的都是具體的數據)

基本數據類型在進行參數傳遞時,傳遞的值是副本,也就是說當把當前數據複製一份,然後再進行穿絲,所以目標方法中,對參數進行修改,這個值得本身是沒有任何變化的

引用數據類型字進行參數的傳遞時,傳遞的是數據所在的記憶體地址,所以在目標方法中,對參數進行修改,這個值本身也會發生相應的變化

向上轉型和向下轉型

向上轉型:把一個子類的對象,賦值給父類,就會把該對象當做父類對象來用

動態(延遲)綁定機制:在程式運行期間,會根據對象的真正的創建者來決定調用那個方法

發生動態綁定機制的條件:1、繼承  2、重寫   3、向上轉型  4、用向上轉型的對象調用被子類重寫的方法

向下轉型:把一個父類對象,複製給某個子類,需要加上強制轉換符

向下轉型一定是在向上轉型的基礎上類型的還原

向下轉型調用子類中的沒有重寫的方法

可以通過instanceof關鍵字來判斷某個獨享是否屬於某各類

 

 

最後在說明一點在上面的文章中所有語法中與【】括起來的部分是可以省略的部分。因為現在也是邊整理邊寫,可能會比較亂,有的內容會講不到,這些內容會在以後遇到的過程中詳細講解。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 面向對象:字典實現人狗大戰、自定義類、調用類中的方法、類的內容查看、修改、添加、使用類來完成人狗大戰 ...
  • 轉載於https://lamp.sh/install.html 安裝 發佈於: 2015年9月12日 更新於: 2019年1月3日 158,407 次圍觀 系統需求 系統支持:Amazon Linux 2018.03/Fedora 29/CentOS 6+/Debian 8+/Ubuntu 14+ ...
  • "標題" "列表" "引用" "代碼" 1.標題 顯示為: 一級標題 二級標題 三級標題 2.列表 有序列表 顯示為: 1. 列表1 2. 列表2 3. 列表3 無序列表 顯示為: 無序列表1 無序列表2 無序列表3 3.引用 顯示為: 引用 4.代碼 顯示為: `代碼` ...
  • 本文標題為《讓Mongo在Spring中跑起來》,旨在Spring中如何成功連接MongoDB並對其進行增刪改查等操作,由於筆者也是剛接觸,對其中的一些原由也不甚瞭解,若有錯誤之處,敬請指正。 習慣了MySQL在Spring中整合時填寫各種各樣的連接參數,本來只想做一件簡單的資料庫插入查詢而已 ...
  • 按照常規思路,選一個點x作為分治中心,拼接x出發到子樹各點的路徑。對於拼接時兩段介面處(即x連出的那條邊,若沒有,設為0號邊:顏色為0,長度為0,到達0號兒子)顏色的影響,可以記錄每段的路徑權值、邊數以及該段的介面,將所有的路徑以介面顏色為第一關鍵字,介面編號為第二關鍵字排序。顯然,對於同一介面的路 ...
  • 對於不同頁面中的相同代碼部分,可以將其分離為單個文件 ,通過include引入文件. 可以提高代碼的復用率 include 和include_once都有引入文件的作用 使用的語法是 :include | include_once "文件的路徑"; include和include_once的區別是: ...
  • 中國古代數學家張丘建在他的《算經》中提出了一個著名的“百錢買百雞問題”:一隻公雞值五錢,一隻母雞值三錢,三隻小雞值一錢,現在要用百錢買百雞,請問公雞、母雞、小雞各多少只? 1 package program1; 2 //百錢買百雞:一隻公雞五錢,一隻母雞三錢,三隻小雞一錢 3 //公雞:cock,母 ...
  • 根據操作系統位數(32/64,一般64位向下相容),項目要求版本,下載對應JDK安裝包 配置環境變數 JAVA_HOME C:\Program Files\Java\jdk1.7.0_80 PATH %JAVA_HOME%\bin CLASSPATH .;%JAVA_HOME%\lib;%JAVA_ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...