java學習筆記之面向對象static,final關鍵字

来源:http://www.cnblogs.com/xuzhaocai/archive/2017/12/21/8076465.html
-Advertisement-
Play Games

java學習筆記之面向對象static,final關鍵字 一.static關鍵字 1.概述: static靜態的,被static修飾的成員屬於類,不屬於單個對象,被所有對象所共用,存在靜態區中,靜態的成員優先於對象載入到記憶體中。 2.statc修飾成員的使用方式:(被static修飾的成員變數有預設 ...


java學習筆記之面向對象static,final關鍵字

一.static關鍵字

1.概述:

  static靜態的,被static修飾的成員屬於類,不屬於單個對象,被所有對象所共用,存在靜態區中,靜態的成員優先於對象載入到記憶體中。

2.statc修飾成員的使用方式:(被static修飾的成員變數有預設值)

  

/*
1.可以通過對象直接使用,不推薦使用
2.通過類名調用靜態成員
    類名.靜態成員變數
    類名.靜態成員方法
*/

3.static的特點

 

/*
1.在同一個類中,靜態成員只能訪問靜態成員,非靜態成員可以訪問靜態成員跟非靜態成員。原因:靜態成員優先載入到記憶體中,而非靜態的成員只有在創建對象時才會載入到記憶體中。
2.main方法為靜態成員方法,僅僅作為程式的執行入口,不屬於某個類,可以定義到任意類中。
*/

4.靜態代碼塊:

  代碼塊:指被{}包裹起來的代碼區域

  

/*
1.局部代碼塊:
    定義在局部位置的(方法內)的代碼塊,主要作用是改變變數的作用域;
2.構造代碼塊:
    定義在成員位置(類中方法外)的代碼塊,構造代碼塊屬於每一個對象,每創建一次對象,就會執行一次。優先於構造方法執行;
    作用:《1》給成員變數賦值《2》將構造方法中的共性代碼抽取出來,提高代碼的復用性
3.靜態代碼塊:
    定義在成員位置的(類中方法外)的代碼塊,被static修飾。靜態代碼塊屬於類,不屬於對象,終身只執行一次,最先執行(靜態優先於非靜態,優先於對象);作用:《1》給靜態變數賦值《2》應用於項目的初始化
*/

5.static多態調用中,編譯跟運行;

  編譯:看父類,父類有編譯成功,父類沒有編譯失敗;

  運行:

    成員變數:都看父類

    成員方法:非靜態運行子類重寫

          靜態運行父類的靜態方法(和子類沒有關係,多態表現的是父類的形態);

  原因:靜態方法屬於類,不屬於對象,靜態方法更沒有重寫這一說

      對象的多態性,靜態和對象無關,父類的引用.靜態方法,調用的是父類的靜態方法

二.final關鍵字

1.理解:

  final最終的,不能更改的;

2.final特點:

/*
1.  final修飾類時:被final修飾的類不能被繼承,其他不變,可以繼承其他類,也叫太監類;
2.  修飾成員方法時:該成員方法是一個最終方法,不能被子類重寫,可以被繼承使用;
3.  修飾變數時:被修飾的變數是一個常量,其中值不能發生改變,一次賦值終生不變,局部變數只有final一個修飾符;
4.  修飾成員變數時:是一個常量,其值只能賦值一次,必須在創建對象之前賦值,被修飾的成員變數必須顯示賦值:《1》定義的時候顯示賦值《2》使用構造代碼塊《3》使用構造方法
*/

三.四種許可權修飾符

1.private:私有的,僅同類訪問

2.預設:就是不寫修飾符,相同包下訪問

3.protected:受保護的;相同包或者不同包下的子類訪問

4.public:公共的;同一個項目下

四.內部類

1.內部類概念:

  定義在類內部的類 

2.內部類的分類:

  (1)局部內部類:定義在其他類方法中的類;

  (2)成員內部類:定義在成員位置的類;

3.成員內部類的使用:

  (1).定義格式

    修飾符 class  外部類名{

      修飾符  class 內部類名{

        成員變數;

        成員方法

      }

    }

1 //定義外部類Person
2 public  class Person {
3     //定義一個成員內部類Hert
4    public class Hert{
5         
6     }
7 
8 }    

 

  (2)成員內部類的使用格式

    外部類名.內部類名   變數名  = new 外部類名().new 內部類名();

    變數名.成員變數

    變數名.成員方法

  (3)成員內部類和外部類成員變數同名訪問問題:

4.局部內部類的使用

  (1).格式:

    修飾符  class  外部類名{

      修飾符 返回值  方法名(){

        (final) class 內部類名{

           成員變數

           成員方法;

        }

        //使用

        內部類名  變數名  = new 內部類名();

        變數名.成員變數;

        變數名.成員方法;

      }

    }

  (2)局部內部類的使用方式:

     局部內部類和局部變數一樣,作用域在方法中,方法彈棧就失效了,所以定義完了局部內部類需要在方法中使用;

五.匿名內部類

1.概念:沒有名字的局部內部類

2.作用:簡化代碼,把創建子類/實現類,重寫方法,創建子類/實現類對象合成一步;

3.格式:

  

1 new 父類/介面(){
2   重寫父類或者介面的方法  
3 };

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  


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

-Advertisement-
Play Games
更多相關文章
  • 全文檢索這個系列在幾前年寫過lucene的文章,而現在看來它確實已經老了,它的兒子孫子都出來了,已經成為現在檢索行列的主流,像solr,elasticsearch等,今天我們主要來看一個solr在aspnetcore里的使用,也就是增刪改查之類的,比較容易! nuget包:solrnet 註入方式: ...
  • Vivado是Xilinx(賽靈思)公司出品的開發軟體平臺,適用於Zedboard開發板。本文介紹了Vivado2017.3的在Win10安裝和可能遇到的問題。 ...
  • 數據模型是開發軟體的最重要的部分,因為它們對應用程式有著深遠的影響:不僅是軟體的編寫方式,而且也影響我們如何解決的問題的方式。第二篇讀書筆記,我們聊一聊數據模型的設計。 1.數據模型的分層 作為一個開發者來說,在一個複雜的應用程式中,是存在很多 分層模型 的,但基本思想還是一樣的:每一層都提供了一個 ...
  • 基於cookie做用戶驗證時, 敏感信息不適合放在cookie中. a. Session原理 cookie是保存在用戶瀏覽器端的鍵值對 session是保存在伺服器端的鍵值對 首先生成一個隨機字元串, 並只將隨機字元串通過cookie保存在瀏覽器端 在隨機字元串對應的字典中, 設置相應的字典 1 c ...
  • #函數定義def f(): print('love Q')f()##參數#形參和實參def add(a,b): print(a+b)add(7,5)def print_info(name,age): print('name:%s' % name) print('age:%d' % age)print ...
  • 緩衝區,位元組將從中取出 作為一種數據源:將其與FilterInputStream對象相連以提供有用介面 字元串。底層實現實際使用的是StringBuffer 作為一種數據源:將其與FilterInputStream對象相連以提供有用介面 字元串,表示文件名、文件或FileDescriptor對象 作 ...
  • 1.1 文件處理 1.1.1 打開文件過程 在Python中,打開文件,得到文件句柄並賦值給一個變數,預設打開模式就為r f=open(r'a.txt','w',encoding='utf-8') print(f.writable()) f.write('1111\n') f.write('2222 ...
  • 1、操作日誌 logging.basicConfig:日誌的統一處理器,對日誌的輸出格式和方式做配置日誌級別等級CRITICAL > ERROR > WARNING > INFO > EDBUG level設定級別以及以上級別的才會列印,這裡註意大小寫! 列印日誌信息在控制台或輸出在一個文件示例: ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...