深度理解Java访问修饰符

一、作用及种类

UML类图

建模语言或标准建模语言类的属性、操作中的可见性使用+、#、-分别表示public、protected、private

作用:信息隐藏

防止用户意外修改数据,使模块易于维护和使用有哪些修饰符呢?

private:只有该类可以访问 protected:该类及其子类的成员可以访问,同一个包中的类也可以访问 public:该类或非该类可以访问 默认:同一个包中的类可以访问

可以作用于类,成员,方法

二、深度理解

同一个类

就是同一个类里面的,类相当于结构体

同一个包

圈中的就是包

三、代码理解

属性封装

class Student{//class 相当于c语言的structint 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.0testFunc*/

方法封装

class Student{//class 相当于c语言的structprivate int age;String name;double score;private int sex;private void myage(int myage){//不可见的方法,可以在别的方法中使用达到更改属性的目的age = myage;}public void setage(int realage){//更改ageage = realage;}public int getage(){//输出age,方法里偷偷使用myage,输出永远是18myage(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);//更改年龄36stu1.name = "xiaowei";stu1.score = 100;stu1.introduce();stu1.testFunc();System.out.println("age="+stu1.getage());//输出年龄是18,方法中偷偷调用了不可见的方法myage}}/*sex=0,age=36,name=xiaowei,score=100.0testFuncage=18*/

到此这篇关于深度理解Java访问修饰符的文章就介绍到这了,更多相关Java访问修饰符内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

天上永远不会掉馅饼,不要因为贪图一时的快乐而付出惨痛的代价,

深度理解Java访问修饰符

相关文章:

你感兴趣的文章:

标签云: