Java重載構(gòu)造原理與用法詳解
本文實例講述了Java重載構(gòu)造原理與用法。分享給大家供大家參考,具體如下:
帶參數(shù)方法
【1】無參數(shù),無返回值
void 方法名(){方法體;}
【2】無參數(shù),有返回值
int 方法名(){方法體;}
【3】有參數(shù),無返回值
void 方法名(int num){方法體;}
【4】有參數(shù),有返回值
int 方法名(int num){方法體;}
可變參數(shù)與數(shù)組參數(shù)的區(qū)別
【1】可變參數(shù)傳參靈活,,可以無參,可以多個參數(shù),可以數(shù)組;
數(shù)組參數(shù)只能傳遞數(shù)組
【2】可變參數(shù)必須放在最后
數(shù)組可以放在任意位置
【3】可變參數(shù)只能有一個;
數(shù)組參數(shù)可以有多個。
遞歸算法
遞歸:程序調(diào)用自身的算法。
條件:1.調(diào)用方法本身。
2.出口
嵌套for循環(huán) 和 用遞歸實現(xiàn) 的比較
棧 主要是用來存放棧幀的,每執(zhí)行一個方法就會出現(xiàn)壓棧操作,所以采用遞歸的時候產(chǎn)生的棧幀比較多,遞歸就會影響到內(nèi)存,非常消耗內(nèi)存,而使用for循環(huán)就執(zhí)行了一個方法,壓入棧幀一次,只存在一個棧幀,所以比較節(jié)省內(nèi)存。
封裝
封裝定義:隱藏對象的屬性和實現(xiàn)細節(jié),僅對外提供公共的訪問方式。
使用封裝的好處
1、良好的封裝能夠減少耦合。
2、類內(nèi)部的結(jié)構(gòu)可以自由修改。
3、可以對成員進行更精確的控制。
4、隱藏信息,實現(xiàn)細節(jié)。
public class Husband {
/*
* 對屬性的封裝
* 一個人的姓名、性別、年齡、妻子都是這個人的私有屬性
*/
private String name ;
private String sex ;
private int age ;
private Wife wife;
/*
* setter()、getter()是該對象對外開發(fā)的接口
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void setWife(Wife wife) {
this.wife = wife;
}
}
方法重載
在一個類中,方法名相同,參數(shù)列表(個數(shù),順序,類型)不同。與返回值無關(guān)。
作用:方便記憶和使用。
重載方法不同的方式
在java中重載方法有三種方式,它們分別是:
- 通過改變參數(shù)的數(shù)量
- 通過更改數(shù)據(jù)類型
- 通過改變參數(shù)排列順序
注意:在java中,只通過更改方法的返回類型來實現(xiàn)方法重載是不可以的。
構(gòu)造器
系統(tǒng)會自動創(chuàng)建一個構(gòu)造方法(構(gòu)造器)默認(rèn)構(gòu)造。
如果沒有顯示的定義構(gòu)造器,那么系統(tǒng)會自動定義一個構(gòu)造器,叫默認(rèn)構(gòu)造器。
可以顯示定義構(gòu)造器,只要顯示定義了構(gòu)造器,那么系統(tǒng)調(diào)用的是顯示定義的構(gòu)造器
無參構(gòu)造,只能在創(chuàng)建對象的時候才能調(diào)用
注意:1.沒有任何返回值
2.名字和類名必須一致
作用:初始化對象。
構(gòu)造器和訪問器的區(qū)別
1.構(gòu)造器 創(chuàng)建完對象,所有的屬性都初始化完成、
訪問器不能。
2.構(gòu)造器 創(chuàng)建對象的時候初始化,可以一次給所有屬性初始化
訪問器需要在創(chuàng)建對象后,逐個調(diào)用賦值
3.創(chuàng)建對象后,想要修改屬性值那么需要用訪問器。
構(gòu)造器和普通方法的區(qū)別
1.構(gòu)造器就是用來初始化對象的。
普通方法是為了完成某個特定的功能
2.構(gòu)造器只能在創(chuàng)建對象的時候調(diào)用new
普通方法在使用的時候可以隨意調(diào)用,不調(diào)用就不執(zhí)行
初始化對象
1.成員變量默認(rèn)初始化
2.聲明處初始化或構(gòu)造塊初始化
3.構(gòu)造器初始化
構(gòu)造塊
定義:在類中
class 類名{
{
構(gòu)造塊:
作用:解決構(gòu)造器中的屬性值相同,代碼重用的問題。
}
}
本類構(gòu)造器調(diào)用
this();//
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java7之forkjoin簡介_動力節(jié)點Java學(xué)院整理
Java7引入了Fork Join的概念,來更好的支持并行運算。接下來通過本文給大家分享Java7之forkjoin簡介,感興趣的朋友一起看看吧2017-06-06
解析Java中的隊列和用LinkedList集合模擬隊列的方法
這篇文章主要介紹了解析Java中的隊列和用LinkedList集合模擬隊列的方法,相關(guān)算法的實現(xiàn)也是ACM中的常見題目,需要的朋友可以參考下2015-08-08
springboot實現(xiàn)SSE(Server?Sent?Event)的示例代碼
SSE?全稱Server?Sent?Event,直譯一下就是服務(wù)器發(fā)送事件,本文主要為大家詳細介紹了springboot實現(xiàn)SSE的相關(guān)知識,需要的可以參考一下2024-04-04
springboot結(jié)合vue實現(xiàn)增刪改查及分頁查詢
本文主要介紹了springboot結(jié)合vue實現(xiàn)增刪改查及分頁查詢,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
Ubuntu安裝jenkins完成自動化構(gòu)建詳細步驟
Jenkins是一個開源的自動化服務(wù)器,可以用來輕松地建立持續(xù)集成和持續(xù)交付(CI/CD)管道,這篇文章主要給大家介紹了關(guān)于Ubuntu安裝jenkins完成自動化構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-03-03
Spring?Data?JPA?注解Entity關(guān)聯(lián)關(guān)系使用詳解
這篇文章主要為大家介紹了Spring?Data?JPA?注解Entity關(guān)聯(lián)關(guān)系使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
如何使用Spring-Test對Spring框架進行單元測試
這篇文章主要介紹了如何使用Spring-Test對Spring框架進行單元測試,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
使用SpringBoot + Redis + Vue實現(xiàn)動態(tài)路由加載頁面的示例代
在現(xiàn)代 Web 應(yīng)用開發(fā)中,動態(tài)路由加載能夠顯著提升應(yīng)用的靈活性和安全性,本文將深入探討如何利用 Spring Boot、Redis、Element UI 和 Vue 技術(shù)棧實現(xiàn)動態(tài)路由加載,并通過 Redis 生成和驗證有效鏈接以實現(xiàn)頁面訪問控制,需要的朋友可以參考下2024-09-09

