Java中怎么實現面向對象的封裝

這篇文章主要介紹了Java中怎么實現面向對象的封裝的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java中怎么實現面向對象的封裝文章都會有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯公司長期為1000+客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為武清企業(yè)提供專業(yè)的成都做網站、成都網站設計,武清網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

1.認識封裝

簡單的一句話就是套殼屏蔽細節(jié)。

比如說一部手機,里面有電池,芯片,主板,攝像頭,屏幕,等等電子器件。

對于我們用戶來說,會開關機,調音量,會操作使用接打電話等作用就可以了,

不需要考慮內部的線路是怎么樣的,電子器件是什么型號的,這些都不用管。

所以手機廠商會用外殼把里面的電子器件包裹封裝起來,讓用戶使用更方便,就是這一種思想

和我們的在面向對象的核心特性之一的封裝相似。

比較正式的講就是:將數據和操作數據的方法進行有機結合,隱藏對象的屬性和實現細節(jié),僅對外公開接口來和對象進行交互

按照我的通俗理解就是,比如說,和人進行交流,具體他是怎么發(fā)出聲音,這一系列過程我不關注,我只需聽他講出什么話,就可以了

2.控制訪問權限-訪問修飾符

既然java中封裝是只留下接口,和對象進行交互,那么如何實現這種接口 ,將里面的細節(jié)進行控制隱藏,這就要提到訪問修飾符了

訪問修飾符作用:通過控制類和訪問權限來實現封裝

類可以將數據和封裝數據的方法結合在一起,

而訪問權限用來控制方法或者字段能否直接在類外使用

范圍

private

私有

default

默認

protected

繼承

public

公開

同一包中的同一類????
同一包中的不同類
???
不同包中的子類

??
不同包中的非子類


?

????(公開)public:在任何地方都可以訪問它修飾的成員,方法或者類。

????(繼承)protected:看后面,

????(默認)default:在同一個包中進行訪問

????(私有)private:只能在當前類中進行訪問

public class TestDemo01 {
    int year;
    //默認權限,可以省略default
    private int month;
    //私有權限,只能在同一個類中訪問
    public int day;
    //公有權限,那里都能訪問
}

下面演示一下

在第一個類TestDemo01中

Java中怎么實現面向對象的封裝

在二個類TestDemo02中

Java中怎么實現面向對象的封裝

我們發(fā)現,找不到month,這是因為我們把它的訪問權限寫成了private,變成私有的了,別的類不能訪問。這就是實現封裝了,month只能在TestDemo01中使用。

我們實現封裝是為了只留下接口,不展示細節(jié),

下面我們演示一下封裝后的接口

Java中怎么實現面向對象的封裝

如果說有很多成員都是私有的,我們可以不用一個一個寫這兩個接口,可以借助idea的功能來快速寫出,

Java中怎么實現面向對象的封裝

3.理解封裝必須要知道-包

3.1理解包的概念

包的存在是為了更好的管理類,把多個類收集在一起成為一組,進行分組和目錄相似

包是對類、接口等的封裝機制的體現,是一種對類或者接口等的很好的組織方式,

包還有一個很作用是,在同一個工程中允許存在相同名稱類,只要處在不同的包中即可。

Java中怎么實現面向對象的封裝

3.2 導入包中的類

Java中怎么實現面向對象的封裝

下面再看為什么會報錯

Java中怎么實現面向對象的封裝

怎么解決這種問題,那就要指定具體的包了

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導入包中靜態(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));
}
}
3.3 自定義包

先看步驟,不會的大家可以試著自己創(chuàng)建一個包

Java中怎么實現面向對象的封裝

注意:

1. 包創(chuàng)建好后,在文件中,最上方都要有一句 package語句來說明在文件在哪個包中(idea會自動添加)

Java中怎么實現面向對象的封裝

2. 包的命名,一般會比如說是域名的反過來的名字

3.我們可以在存放代碼的位置看一下,剛剛創(chuàng)建好的包

Java中怎么實現面向對象的封裝

3.4 包的訪問權限控制

同一個包中的同一類

package Demo01;
public class Test01 {
    int count = 10;
    public void func(){
        System.out.println(count);
    }
}

同一個包中不同的類的訪問

Java中怎么實現面向對象的封裝

不同包中的子類

前面的count的訪問權限是默認的,也就是default,不能訪問不同包中的子類和非子類

Java中怎么實現面向對象的封裝

如果非要訪問可以將訪問權限改成public,

Java中怎么實現面向對象的封裝

Java中怎么實現面向對象的封裝

3.5 java中常見的包

1. java.lang:系統(tǒng)常用基礎類(String、Object),JDK1.1后就不用寫了,會自動導入,

2. java.lang.reflflect:java 反射編程包

3. java.net:進行網絡編程開發(fā)包

4. java.sql:進行數據庫開發(fā)的支持包

5. java.util:是java提供的工具程序包

6. java.io:I/O編程開發(fā)包

關于“Java中怎么實現面向對象的封裝”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java中怎么實現面向對象的封裝”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。

標題名稱:Java中怎么實現面向對象的封裝
網頁路徑:http://muchs.cn/article14/jopige.html

成都網站建設公司_創(chuàng)新互聯,為您提供做網站、網站營銷、網站建設、外貿建站網站設計公司、企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站建設網站維護公司