深度理解Java訪問修飾符
一、作用及種類
UML類圖
建模語言或標準建模語言
類的屬性、操作中的可見性使用+、#、-分別表示public、protected、private
作用:信息隱藏
防止用戶意外修改數(shù)據(jù),使模塊易于維護和使用有哪些修飾符呢?
- private:只有該類可以訪問
- protected:該類及其子類的成員可以訪問,同一個包中的類也可以訪問
- public:該類或非該類可以訪問
- 默認:同一個包中的類可以訪問
可以作用于類,成員,方法
二、深度理解
同一個類
就是同一個類里面的,類相當于結(jié)構(gòu)體
同一個包
圈中的就是包
三、代碼理解
屬性封裝
class Student{//class 相當于c語言的struct int age; String name; double score; private int sex; //不同類,無法訪問這個成員 public void cs(int a){ sex = a; } void introduce(){ System.out.println("sex="+sex+",age="+ age +",name=" + name + ",score=" + score); } void testFunc(){ System.out.println("testFunc"); } } public class Test { public static void main(String[] args) { Student stu1 = new Student(); //stu1.sex = 1; 因為類里面使用了private,不同類就無法訪問 stu1.cs(0); //可以使用方法,間接修改成員 stu1.age = 22; stu1.name = "xiaowei"; stu1.score = 100; stu1.introduce(); stu1.testFunc(); } } /* sex=0,age=22,name=xiaowei,score=100.0 testFunc */
方法封裝
class Student{//class 相當于c語言的struct private int age; String name; double score; private int sex; private void myage(int myage){ //不可見的方法,可以在別的方法中使用達到更改屬性的目的 age = myage; } public void setage(int realage){ //更改age age = realage; } public int getage(){ //輸出age,方法里偷偷使用myage,輸出永遠是18 myage(18); return age; } void cs(int a){ sex = a; } void introduce(){ System.out.println("sex="+sex+",age="+ age +",name=" + name + ",score=" + score); } void testFunc(){ System.out.println("testFunc"); } } public class Test { public static void main(String[] args) { Student stu1 = new Student(); //stu1.sex = 1; stu1.cs(0); //stu1.age = 22; stu1.setage(36); //更改年齡36 stu1.name = "xiaowei"; stu1.score = 100; stu1.introduce(); stu1.testFunc(); System.out.println("age="+stu1.getage()); //輸出年齡是18,方法中偷偷調(diào)用了不可見的方法myage } } /* sex=0,age=36,name=xiaowei,score=100.0 testFunc age=18 */
到此這篇關(guān)于深度理解Java訪問修飾符的文章就介紹到這了,更多相關(guān)Java訪問修飾符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 使用 HttpClient 發(fā)送 GET請求和 POST請求
本文主要介紹了Java 使用 HttpClient 發(fā)送 GET請求和 POST請求,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File
本文給大家介紹Springboot獲取文件內(nèi)容,將MultipartFile轉(zhuǎn)File方法,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-01-01詳解BeanUtils.copyProperties()方法如何使用
這篇文章主要為大家介紹了詳解BeanUtils.copyProperties()方法如何使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07Java 語言守護線程 Daemon Thread使用示例詳解
這篇文章主要為大家介紹了Java 語言守護線程 Daemon Thread使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10在SpringBoot框架下實現(xiàn)Excel導入導出的方法詳解
SpringBoot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程,今天我們就使用純前對按表格控件帶大家了解,如何在Spring Boot框架下實現(xiàn)Excel服務端導入導出,需要的朋友可以參考下2023-06-06