java之構(gòu)造器的重載問題
java構(gòu)造器的重載
下面給大家講一些java中的基礎(chǔ)面向?qū)ο螅覀儊砹私庖幌率裁词敲嫦驅(qū)ο?;對象和類有什么區(qū)別。
對象和類的概念
對象:對象是類的實例,有狀態(tài)和行為。
例如:
一條狗是對象,它的狀態(tài)有:顏色、名字、品種;
行為有:搖尾巴、叫、吃等等。
類:類是一個模板,它描述一類對象的行為和狀態(tài)。
首先講java中的類。
修飾符可以為public final abstract 或者不寫;類名:使用大駝峰命名。
使用對象構(gòu)造器,構(gòu)造器也叫構(gòu)造方法或者構(gòu)造函數(shù),構(gòu)造器與類名相同,沒有返回值,不能使用void;名稱與類名相同,沒有返回值,不能寫void;如果類中沒有手動添加構(gòu)造器,編譯器會默認(rèn)再添加一個無參構(gòu)造器。
如果手動添加構(gòu)造器,那么默認(rèn)的構(gòu)造器就會消失;構(gòu)造器是可以重載的。
見代碼圖1:
圖1
成員變量:成員變量是定義在類中的,方法體之外的變量。
這種 變量在創(chuàng)建對象的時候?qū)嵗?/p>
成員變量可以被類中方法、構(gòu)造方法和特定類的語句塊訪問。
修飾符(public protected private)三選一、static、final;
見代碼圖2:
圖2
方法:java方法是語句的集合,它們在一起執(zhí)行一個功能;
方法是解決一類問題的步驟的有序組合,包含于類或?qū)ο笾?,在程序中被?chuàng)建,在其他地方被引用。
修飾符(public protected private)三選一、static、final、synchronize、native;
見代碼圖3:
圖3
然后創(chuàng)建對象,對象是根據(jù)類創(chuàng)建的。
在java中,使用關(guān)鍵字new來創(chuàng)建一個新的對象。
創(chuàng)建對象需要三步:第一聲明:聲明一個對象,包括對象名稱和對象類型。
第二實例化:使用關(guān)鍵字new來創(chuàng)建一個對象,只是為對象在內(nèi)存中開辟空間。
第三初始化:使用new創(chuàng)建對象時,會調(diào)用構(gòu)造方法初始化對象,對象中的值賦初始化值。
見代碼圖4:
圖4
Java變量的分類為兩種:
一種成員變量、另一種局部變量;
方法的重載:重載是在一個類里面,方法名字相同,而參數(shù)不同。
返回類型可以相同也可以不同。
每個重載的方法(或者構(gòu)造函數(shù))都必須有一個獨一無二的參數(shù)類型列表;最常用的地方就是構(gòu)造器的重載。
被重載的方法必須形參列表不一樣(參數(shù)個數(shù)或類型不一樣);可以改變返回類型;可以改變訪問修飾符;可以聲明新的或更廣的檢查異常;方法能夠在同一個類中或者在一個子類中被重載。
返回值類型不能作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。
見代碼圖5:
圖5
在面向?qū)ο蟪淌皆O(shè)計方法中,封裝是指一種將抽象性函式接口的實現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。
封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。
要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。
適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護(hù),也加強(qiáng)了程式碼的安全性。
封裝的優(yōu)點有:良好的封裝能夠減少耦合。
類內(nèi)部的結(jié)構(gòu)可以自由修改。
可以對成員變量進(jìn)行更精確的控制。
隱藏信息,實現(xiàn)細(xì)節(jié)。
Java封裝的步驟:修改屬性的可見性來限制對屬性的訪問(一般限制為private),對每個值屬性提供對外的公共方法訪問,也就是創(chuàng)建getter和setter方法(將實例變量的首字母大寫,在前面添加get或者set, 變成getter和setter方法名);
見代碼圖6:
圖6
聲明類名,將執(zhí)行出的結(jié)果;見圖7:
圖7
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中優(yōu)化Undertow性能的方法總結(jié)
Undertow是一個采用 Java 開發(fā)的靈活的高性能Web服務(wù)器,提供包括阻塞和基于NIO的非堵塞機(jī)制,本文將給大家介紹SpringBoot中優(yōu)化Undertow性能的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-08-08SpringCloud Ribbon負(fù)載均衡實例解析
這篇文章主要介紹了SpringCloud Ribbon負(fù)載均衡實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11mybatis實現(xiàn)動態(tài)升降序的問題小結(jié)
文章介紹了如何在MyBatis的XML文件中實現(xiàn)動態(tài)排序,使用$符號而不是#符號來引用變量,以避免SQL注入,同時,強(qiáng)調(diào)了在Java代碼中進(jìn)行防注入處理的重要性,感興趣的朋友一起看看吧2025-02-02java連接postgresql數(shù)據(jù)庫代碼及maven配置方式
這篇文章主要介紹了java連接postgresql數(shù)據(jù)庫代碼及maven配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09SpringBoot攔截器excludePathPatterns方法不生效的解決方案
這篇文章主要介紹了SpringBoot攔截器excludePathPatterns方法不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07MybatisPlus實現(xiàn)數(shù)據(jù)攔截的使用示例
在MyBatis-Plus中,可以通過自定義攔截器來實現(xiàn)對SQL語句的攔截和修改,本文就來介紹一下如何使用,具有一定的參考價值,感興趣的可以了解一下2023-10-10MyBatis查詢數(shù)據(jù),賦值給List集合時,數(shù)據(jù)缺少的問題及解決
這篇文章主要介紹了MyBatis查詢數(shù)據(jù),賦值給List集合時,數(shù)據(jù)缺少的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01Java8深入學(xué)習(xí)系列(三)你可能忽略了的新特性
一提到Java 8就只能聽到lambda,但這不過是其中的一個而已,Java 8還有許多新的特性,有一些功能強(qiáng)大的新類或者新的用法,還有一些功能則是早就應(yīng)該加到Java里了,所以下面這篇文章主要給大家介紹了關(guān)于Java8中大家可能忽略了的一些新特性,需要的朋友可以參考下。2017-08-08