java封裝及四種權(quán)限修飾符詳解
1、對屬性進(jìn)行封裝,使用戶不能直接輸入數(shù)據(jù),我們需要避免用戶再使用"對象.屬性"的方式對屬性進(jìn)行賦值。則需要將屬性聲明為私有的(private).
2、我們將類的屬性私有化(private),同時,提供公共的(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; //名字
// 同時,我們給這兩個屬性創(chuàng)建兩個可以更改他們的接口
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();
//?? ??? ?這個時候就不能直接給類中屬性直接賦值了,就會報錯
//?? ??? ?sc.age=18;
//?? ??? ?sc.name="小芳"
//?? ??? ?我們需要通過set方法給屬性賦值,get取值
?? ??? ?sc.setAge(18);
?? ??? ?sc.setName("小芳");
?? ??? ?sc.disPlay();
?? ?}
}
一下代碼查看運行結(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反射機(jī)制實現(xiàn)對象相同字段的復(fù)制操作
這篇文章主要介紹了利用Java反射機(jī)制實現(xiàn)對象相同字段的復(fù)制操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
SpringBoot項目獲取統(tǒng)一前綴配置及獲取非確定名稱配置方法
在SpringBoot項目中,使用@ConfigurationProperties注解可獲取統(tǒng)一前綴的配置,具體做法是創(chuàng)建配置類,使用prefix屬性指定配置的前綴,本文給大家介紹SpringBoot項目獲取統(tǒng)一前綴配置以及獲取非確定名稱配置方法,感興趣的朋友跟隨小編一起看看吧2024-09-09
Spark?集群執(zhí)行任務(wù)失敗的故障處理方法
這篇文章主要為大家介紹了Spark?集群執(zhí)行任務(wù)失敗的故障處理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
深入淺出分析Java抽象類和接口【功能,定義,用法,區(qū)別】
這篇文章主要介紹了Java抽象類和接口,結(jié)合實例形式深入淺出的分析了java抽象類與接口的功能功能,定義,用法及區(qū)別,需要的朋友可以參考下2017-08-08
Monaco?Editor實現(xiàn)sql和java代碼提示實現(xiàn)示例
這篇文章主要為大家介紹了Monaco?Editor代碼提示sql和java實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

