首頁 > Java > java教程 > 如何進行物件導向的封裝在Java中實作?

如何進行物件導向的封裝在Java中實作?

PHPz
發布: 2023-05-09 18:22:16
轉載
896 人瀏覽過

1.認識封裝

簡單的一句話就是套殼屏蔽細節。

比如說一部手機,裡面有電池,晶片,主機板,鏡頭,螢幕,等等電子裝置。

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

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

所以手機廠商會用外殼把裡面的電子裝置包裹起來,讓使用者使用更方便,就是這一種想法

和我們的在物件導向的核心特性之一的封裝相似。

比較正式的講就是:將資料和操作資料的方法進行有機結合,隱藏物件的屬性和實作細節,只對外公開介面來和物件進行互動

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

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

既然java中封裝是只留下接口,和物件進行交互,那麼如何實現這種接口,將裡面的細節進行控制隱藏,這就要提到訪問修飾符了

存取修飾符作用:透過控制類別和存取權限來實現封裝

類別可以將資料和封裝資料的方法結合在一起,

而存取權限用來控制方法或欄位能否直接在類別外使用

##✓✓不同套件中的子類別 # ✓✓不同套件中的非子類別   

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

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

????(預設)default:在同一個套件中進行存取

???? (私有)private:只能在目前類別中進行存取

public class TestDemo01 {
    int year;
    //默认权限,可以省略default
    private int month;
    //私有权限,只能在同一个类中访问
    public int day;
    //公有权限,那里都能访问
}
登入後複製

以下示範

在第一個類別TestDemo01中

如何進行物件導向的封裝在Java中實作?

如何進行物件導向的封裝在Java中實作?

如何進行物件導向的封裝在Java中實作?

如何進行物件導向的封裝在Java中實作?

# #在二個類別TestDemo02中

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

我們實作封裝是為了只留下接口,不展示細節,

如何進行物件導向的封裝在Java中實作?下面我們示範封裝後的介面

如何進行物件導向的封裝在Java中實作?如果說有很多成員都是私有的,我們可以不用一個一個寫這兩個接口,可以藉助idea的功能來快速寫出,

如何進行物件導向的封裝在Java中實作?3.理解封裝必須要知道-包

3.1理解包的概念

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

套件是對類別、介面等的封裝機制的體現,是一種對類別或介面等的很好的組織方式,

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

如何進行物件導向的封裝在Java中實作?

3.2 導入套件中的類別

如何進行物件導向的封裝在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);
    }
}
登入後複製
如何進行物件導向的封裝在Java中實作?使用import static導入套件中靜態的方法和欄位

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 自訂套件

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

如何進行物件導向的封裝在Java中實作?#注意:

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

如何進行物件導向的封裝在Java中實作?2. 包的命名,一般會比如說是網域的反過來的名字

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

如何進行物件導向的封裝在Java中實作?

##3.4 包的存取權限控制

如何進行物件導向的封裝在Java中實作?同一個套件中的相同類別

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

在同一個套件中不同的類別的存取

在不同套件中的子類別

前面的count的存取權限是預設的,也就是default,不能存取不同套件中的子類別和非子類別

如果非要存取可以將存取權限改成public,

######################3.5 java中常見的套件######1. java.lang:系統常用基礎類別(String、Object),JDK1.1後就不用寫了,會自動導入,######2. java.lang.reflflect:java 反射程式包###### #3. java.net:進行網頁程式開發套件######4. java.sql:進行資料庫開發的支援套件######5. java.util:是java提供的工具套件# #####6. java.io:I/O程式開發套件###
範圍

#private

私有

default

預設

protected

」繼承

public

公開

#相同套件中的相同類別 # ✓
同一套件中的不同類別
##✓

以上是如何進行物件導向的封裝在Java中實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板