方法的重載、方法的可變個數的形參、方法參數的傳遞

来源:https://www.cnblogs.com/fangfangfanga/archive/2019/12/13/12026246.html
-Advertisement-
Play Games

重載的概念 在同一個類中,允許存在一個以上的同名的方法,只要它們的參數個數或者參數類型不同的話就行。 重載的特點 與返回值類型無關,只看參數列表,且參數列表必須不同。(參數個數、參數類型、參數排列順序) 理解:就只要參數列表不要完全一樣就行。和返回值類型無關。 方法的可變個數的形參 在遇到不知道要給 ...


重載的概念

  在同一個類中,允許存在一個以上的同名的方法,只要它們的參數個數或者參數類型不同的話就行。

重載的特點

  與返回值類型無關,只看參數列表,且參數列表必須不同。(參數個數、參數類型、參數排列順序)

  理解:就只要參數列表不要完全一樣就行。和返回值類型無關。

方法的可變個數的形參

  在遇到不知道要給方法傳遞多少個參數的時候就要考慮到使用可變個數的形參方式。比如統計一個錢包里裝了什麼東西,有的錢包可能只賺了錢,有的還會有卡,甚至還會在裡面放照片。

  可變參數:是指定部分類型的參數的個數可以變為多個,而不是也有可變的類型。

  數組形參來定義方法:public static void test(int a,String[] args)  創建對象的時候要初始化值

  以可變個數形參來定義方法:public static void test(int a,String... args)  創建對象的時候不必初始化值。

  如果有多個類型的參數,可變參數一定要放在最後。

方法的參數傳遞

  方法必須需要其所在類或對象調用才有意義。

  形參:方法聲明時的參數。

  實參:方法調用時實際傳遞給形參的參數值

  java的實參值是如何傳入方法的呢?

  java里方法的參數傳遞方式只有一種:值傳遞。就是將實際參數值的副本(複製品)傳入方法內,而參數本身不受影響。

 方法的參數傳遞

  1、如果方法的形參是基本數據類型,那麼實參(實際的數據)向形參傳遞參數時,就是直接傳遞值,把實參的值賦值給形參。

  2、如果方法的形參是對象,那麼實參(實際的對象),向形參傳遞參數時,也是把值給形參,這個值是實參在棧記憶體中的值,也就是引用對象在堆記憶體中的地址。

  基本數據類型都是保存在棧記憶體中,引用對象在棧記憶體中保存的是引用對象的地址,那麼方法的參數傳遞是傳遞值(是變數在棧記憶體當中的值)。

 

  


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

-Advertisement-
Play Games
更多相關文章
  • 直接使用官方子包可以實現websocket協議, golang.org/x/net/websocket 如果在這個目錄沒有這個包就去github下載net庫,放進這個目錄$GOPATH/src/golang.org/x/net就行了 服務端代碼: package main import ( "tim ...
  • 一、 前言 作為一枚程式員,你肯定對IntelliJ IDEA這個工具一點也不陌生!或許你沒有用過,但你也一定聽說過。作為在業界被公認為最好的java開發工具,IDEA每次大版本更新都備受矚目。劃重點,IntelliJ IDEA 2019.3現已發佈! 近期,我也是從2019.2版本升級到了2019 ...
  • 1 # coding:utf-8 2 3 4 class Animal(object): 5 def __init__(self): 6 self._name = None 7 self._f = None 8 9 def eat(self): 10 print("%s吃%s" % (self._n ...
  • 1 class Cat(Animal): 2 def __init__(self): 3 import warnings 4 warnings.warn("Cat類帶刪除線了", DeprecationWarning) 5 6 def run(self): 7 import warnings 8 w... ...
  • 有時候會遇到這種情況,某些屬性指向限制在特定範圍內,當別人調用的時候,只能賦值在這特定範圍內的值。這樣的情況有哪些呢?比如有一個屬性是用來放年齡的,那麼這個年齡就不能被設置為負數。還有人的性別隻有男跟女兩種選擇,別來一個雌雄同體。在這樣的情況下,就會用到封裝跟隱藏。 信息的封裝和隱藏 Java中通過 ...
  • 關閉防火牆,設置虛擬機和本機在同一網段,還是ping不同 解決方法:在VMware中點擊 編輯 >虛擬網路編輯器 >更改設置 >還原預設設置 然後重新配置虛擬機和本機在同一網段,關閉VMnet1,啟動VMnet8 ...
  • 軟體包:類似於電腦的文件管理方式,主要解決同名文件。 包幫助管理大型軟體系統:將語義類似的類組織到包中;解決類命名衝突的問題。 包可以包含類和子包。 關鍵字——package package語句作為Java源文件的第一條語句,指明該文件中定義的類所在的包。若預設該語句,則指定為無名包。 格式:pac ...
  • 目錄結構: —|controller —|Home.php —|model —|view —|welcome.php —|index.php 基本原理: 首頁 index.php 通過獲得地址欄中的路由名稱獲得對應控制器以及控制的方法名,通過require引入到index.php首頁中。通過引入的對 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...