這篇文章主要介紹了Java中怎么實(shí)現(xiàn)面向?qū)ο蟮姆庋b的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Java中怎么實(shí)現(xiàn)面向?qū)ο蟮姆庋b文章都會(huì)有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)公司長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武清企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),武清網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
簡(jiǎn)單的一句話就是套殼屏蔽細(xì)節(jié)。
比如說一部手機(jī),里面有電池,芯片,主板,攝像頭,屏幕,等等電子器件。
對(duì)于我們用戶來說,會(huì)開關(guān)機(jī),調(diào)音量,會(huì)操作使用接打電話等作用就可以了,
不需要考慮內(nèi)部的線路是怎么樣的,電子器件是什么型號(hào)的,這些都不用管。
所以手機(jī)廠商會(huì)用外殼把里面的電子器件包裹封裝起來,讓用戶使用更方便,就是這一種思想
和我們的在面向?qū)ο蟮暮诵奶匦灾坏姆庋b相似。
比較正式的講就是:將數(shù)據(jù)和操作數(shù)據(jù)的方法進(jìn)行有機(jī)結(jié)合,隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口來和對(duì)象進(jìn)行交互
按照我的通俗理解就是,比如說,和人進(jìn)行交流,具體他是怎么發(fā)出聲音,這一系列過程我不關(guān)注,我只需聽他講出什么話,就可以了
既然java中封裝是只留下接口,和對(duì)象進(jìn)行交互,那么如何實(shí)現(xiàn)這種接口 ,將里面的細(xì)節(jié)進(jìn)行控制隱藏,這就要提到訪問修飾符了
訪問修飾符作用:通過控制類和訪問權(quán)限來實(shí)現(xiàn)封裝
類可以將數(shù)據(jù)和封裝數(shù)據(jù)的方法結(jié)合在一起,
而訪問權(quán)限用來控制方法或者字段能否直接在類外使用
范圍 | private 私有 | default 默認(rèn) | protected 繼承 | public 公開 |
---|---|---|---|---|
同一包中的同一類 | ? | ? | ? | ? |
同一包中的不同類 | ? | ? | ? | |
不同包中的子類 | ? | ? | ||
不同包中的非子類 | ? |
????(公開)public:在任何地方都可以訪問它修飾的成員,方法或者類。
????(繼承)protected:看后面,
????(默認(rèn))default:在同一個(gè)包中進(jìn)行訪問
????(私有)private:只能在當(dāng)前類中進(jìn)行訪問
public class TestDemo01 { int year; //默認(rèn)權(quán)限,可以省略default private int month; //私有權(quán)限,只能在同一個(gè)類中訪問 public int day; //公有權(quán)限,那里都能訪問 }
下面演示一下
在第一個(gè)類TestDemo01中
在二個(gè)類TestDemo02中
我們發(fā)現(xiàn),找不到month,這是因?yàn)槲覀儼阉脑L問權(quán)限寫成了private,變成私有的了,別的類不能訪問。這就是實(shí)現(xiàn)封裝了,month只能在TestDemo01中使用。
我們實(shí)現(xiàn)封裝是為了只留下接口,不展示細(xì)節(jié),
下面我們演示一下封裝后的接口
如果說有很多成員都是私有的,我們可以不用一個(gè)一個(gè)寫這兩個(gè)接口,可以借助idea的功能來快速寫出,
包的存在是為了更好的管理類,把多個(gè)類收集在一起成為一組,進(jìn)行分組和目錄相似
包是對(duì)類、接口等的封裝機(jī)制的體現(xiàn),是一種對(duì)類或者接口等的很好的組織方式,
包還有一個(gè)很作用是,在同一個(gè)工程中允許存在相同名稱類,只要處在不同的包中即可。
下面再看為什么會(huì)報(bào)錯(cuò)
怎么解決這種問題,那就要指定具體的包了
package com.toabao.www; import java.util.*; import java.sql.*; public class TestDemo03 { public static void main(String[] args) { int[] array = {1,2,3,4,5}; System.out.println(Arrays.toString(array)); java.util.Date date = new java.util.Date(); java.sql.Date date1 = new java.sql.Date(12); } }
使用import static導(dǎo)入包中靜態(tài)的方法和字段
import static java.lang.Math.*; public class TestDemo01 { public static void main(String[] args) { double x = 13; double y = 14; double result = sqrt(pow(x,2)+pow(y,2)); } }
先看步驟,不會(huì)的大家可以試著自己創(chuàng)建一個(gè)包
注意:
1. 包創(chuàng)建好后,在文件中,最上方都要有一句 package語句來說明在文件在哪個(gè)包中(idea會(huì)自動(dòng)添加)
2. 包的命名,一般會(huì)比如說是域名的反過來的名字
3.我們可以在存放代碼的位置看一下,剛剛創(chuàng)建好的包
同一個(gè)包中的同一類
package Demo01; public class Test01 { int count = 10; public void func(){ System.out.println(count); } }
同一個(gè)包中不同的類的訪問
不同包中的子類
前面的count的訪問權(quán)限是默認(rèn)的,也就是default,不能訪問不同包中的子類和非子類
如果非要訪問可以將訪問權(quán)限改成public,
1. java.lang:系統(tǒng)常用基礎(chǔ)類(String、Object),JDK1.1后就不用寫了,會(huì)自動(dòng)導(dǎo)入,
2. java.lang.reflflect:java 反射編程包
3. java.net:進(jìn)行網(wǎng)絡(luò)編程開發(fā)包
4. java.sql:進(jìn)行數(shù)據(jù)庫(kù)開發(fā)的支持包
5. java.util:是java提供的工具程序包
6. java.io:I/O編程開發(fā)包
關(guān)于“Java中怎么實(shí)現(xiàn)面向?qū)ο蟮姆庋b”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Java中怎么實(shí)現(xiàn)面向?qū)ο蟮姆庋b”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:Java中怎么實(shí)現(xiàn)面向?qū)ο蟮姆庋b
網(wǎng)頁路徑:http://jinyejixie.com/article14/jopige.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)