ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Java入门--封装

Java入门--封装 什么是封装面向对象编程有三个基本特征封装继承多态。封装的意思就是把复杂的操作隐藏起来只留下用来访问的接口用于使用。访问权限修饰符访问权限修饰符有三个。public:修饰 类 属性 方法。private:修饰 属性 方法。protected:修饰 属性 方法缺省不写修饰 类 属性 方法代码例子packagefengzhuang;publicclassUser{int age0;// 默认包可见privateString namechenjiamur;// 私有protectedboolean moodtrue;// 包可见 子类可见}// 同一个包中的另一个类classUser2{User usernewUser();User3 user3newUser3();voidtest(){user3.useruser;// 可以赋值int age2user.age;// ✅ 同包可访问 default// String name2 user.name; // ❌ private编译错误boolean mood2user.mood;// ✅ protected 在同包内可访问}}// 继承 User 的子类同包classUser3extendsUser{User user;// 额外持有的引用演示赋值用voidtest(){int aage;// ✅ 继承自父类的 default 成员同包子类可访问// String n name; // ❌ private不能访问boolean mmood;// ✅ protected子类可访问即使在不同包也 OK// 若通过外部引用访问User unewUser();int age2u.age;// ✅ 同包可访问 default// String name2 u.name; // ❌ privateboolean mood2u.mood;// ✅ protected 在同包内可访问同包任何类}}实际例子最后举一个实际的代码例子说明修饰符的作用packagefengzhuang;publicclassUser{privateString name;// 必须6个字符以上privateString pwd;// 必须包含字符以及数字privateString email;// 必须包含合法的域名和符号privateint age;// 0-150// 构造方法publicUser(String name,String pwd,String email,int age){//this.已有变量名临时变量这里就是括号里的临时变量传给了private修饰的几个变量。this.namename;this.pwdpwd;this.emailemail;this.setAge(age);//经过条件判断才可以被使用的age}publicUser(){//函数的重载}publicUser(String name,String pwd){this.namename;this.pwdpwd;}publicintgetAge(){returnage;}publicvoidsetAge(int age1){// 将数据存入参数中在方法中对参数进行验证后 再赋给属性if(age10||age1150){System.out.println(年龄不合法~);return;}this.ageage1;}publicvoidshowInfo(){System.out.println(name:this.name pwd:this.pwd email:this.email age:this.age);}classStudent{}classTeacher{}classMain{publicstaticvoidmain(String[]args){User usernewUser(hello,123456,hellohello.com,18);user.setAge(-100);int auser.getAge();System.out.println(a);user.showInfo();User user1newUser();User user2newUser(admin,123456);user2.showInfo();user1.showInfo();}}}private作用01防止别人绕过检验方法。// 假设 age 是 publicUser usernewUser(hello,123456,hellohello.com,18);user.age-100;// 直接赋值不需要经过 setAge编译通过运行正常有了 private外部无法直接访问 user.age只能被迫调用 user.setAge(-100)。这样一来你的校验逻辑就强制生效了保证了对象的数据永远合法。这就是 private 最大的作用保护数据完整性强制外部遵守你的业务规则。private作用02方便修改程序添加private以后不能通过user.pwd‘123’;等方式修改而是只能通过setPwd()等方法进行获取。
返回列表