java封裝及四種權(quán)限修飾符詳解
1、對屬性進(jìn)行封裝,使用戶不能直接輸入數(shù)據(jù),我們需要避免用戶再使用"對象.屬性"的方式對屬性進(jìn)行賦值。則需要將屬性聲明為私有的(private).
2、我們將類的屬性私有化(private),同時(shí),提供公共的(public)方法來獲取(getXxx)和設(shè)置(setXxx)此屬性的值
封裝性的體現(xiàn),需要權(quán)限修飾符來配合
1.Java規(guī)定的4種權(quán)限(從小到大排列):private、缺省、protected 、public
2.這4種權(quán)限可以用來修飾類及類的內(nèi)部結(jié)構(gòu):屬性、方法、構(gòu)造器、內(nèi)部類
3.具體的,4種權(quán)限都可以用來修飾類的內(nèi)部結(jié)構(gòu):屬性、方法、構(gòu)造器、內(nèi)部類
修飾類的話,只能使用:缺省、public
例:
package KindMethod3; public class privateTest { // 用private修飾,定義為私有變量,外不不能隨意更改 private int age; //年齡 private String name; //名字 // 同時(shí),我們給這兩個(gè)屬性創(chuàng)建兩個(gè)可以更改他們的接口 public void setAge(int age){ this.age=age; } public int getAge(){ return age; } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void disPlay(){ System.out.println("我的名字叫"+name+"今年"+age+"歲"); } }
package KindMethod3; public class privateTest1 { ?? ?public static void main(String[] args) { ?? ??? ?privateTest sc = new privateTest(); //?? ??? ?這個(gè)時(shí)候就不能直接給類中屬性直接賦值了,就會報(bào)錯(cuò) //?? ??? ?sc.age=18; //?? ??? ?sc.name="小芳" //?? ??? ?我們需要通過set方法給屬性賦值,get取值 ?? ??? ?sc.setAge(18); ?? ??? ?sc.setName("小芳"); ?? ??? ?sc.disPlay(); ?? ?} }
一下代碼查看運(yùn)行結(jié)果:
public class Order { private int text1; int text2; public int text3; private void methodPrivate(){ text1 = 1; text2 = 2; text3 = 3; } void methodDefault(){ text1 = 1; text2 = 2; text3 = 3; } public void methodPublic(){ text1 = 1; text2 = 2; text3 = 3; } }
public class OrderTest { public static void main(String[] args) { Order order = new Order(); order.text2 = 1; order.text3 = 2; //出了Order類之后,私有的結(jié)構(gòu)就不可以調(diào)用了 // order.text1 = 3;//The field Order.text1 is not visible order.methodDefault(); order.methodPublic(); //出了Order類之后,私有的結(jié)構(gòu)就不可以調(diào)用了 // order.methodPrivate();//The method methodPrivate() from the type Order is not visible } }
到此這篇關(guān)于java封裝及四種權(quán)限修飾符詳解的文章就介紹到這了,更多相關(guān)java封裝 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java利用phantomjs進(jìn)行截圖實(shí)例教程
PlantomJs是一個(gè)基于javascript的webkit內(nèi)核無頭瀏覽器 也就是沒有顯示界面的瀏覽器,你可以在基于 webkit 瀏覽器做的事情,它都能做到。下面這篇文章主要給大家介紹了關(guān)于java利用phantomjs進(jìn)行截圖的相關(guān)資料,需要的朋友可以參考下2018-10-10從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程
這篇文章主要介紹了從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08十大常見Java String問題_動力節(jié)點(diǎn)Java學(xué)院整理
本文介紹Java中關(guān)于String最常見的10個(gè)問題,需要的朋友參考下吧2017-04-04spring boot動態(tài)切換數(shù)據(jù)源的實(shí)現(xiàn)
這篇文章主要介紹了spring boot動態(tài)切換數(shù)據(jù)源的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式
MongoDB是一種非關(guān)系型數(shù)據(jù)庫,通過文檔存儲數(shù)據(jù),適用于大規(guī)模數(shù)據(jù)存儲和高并發(fā)訪問,這篇文章主要介紹了SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式,感興趣想要詳細(xì)了解可以參考下文2023-05-05Spring?Boot獲取resources目錄下的文件三種方式詳解
在Spring?Boot項(xiàng)目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,這篇文章主要介紹了Spring?Boot獲取resources目錄下的文件的三種方式,需要的朋友可以參考下2023-06-06mybatisPlus填坑之邏輯刪除的實(shí)現(xiàn)
本文主要介紹了mybatisPlus填坑之邏輯刪除的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Eclipse 出現(xiàn)Failed to load JavaHL Library解決方法
這篇文章主要介紹了Eclipse 出現(xiàn)Failed to load JavaHL Library解決方法的相關(guān)資料,今天使用Eclipse 時(shí)出現(xiàn)以上錯(cuò)誤,本文說明如何更更正,需要的朋友可以參考下2016-11-11