您当前的位置: 首页 >  Java

慕晨sekurlsa

暂无认证

  • 2浏览

    0关注

    82博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JAVA基础(十五)——封装

慕晨sekurlsa 发布时间:2022-08-13 19:03:24 ,浏览量:2

一、目录

面向对象的三大特征:封装、继承和多态。

  • 封装介绍
  • 封装实现步骤
  • 封装小案列
  • 封装与构造器
  • 封装练习
二、封装介绍

封装(encapsulation)就是把抽象出的属性(成员变量)和方法封装在一起,属性被保护在内部,程序的其他部分只有通过方法,才能对属性进行操作。

封装的好处:

  1. 隐藏实现细节。
  2. 可以对数据进行验证,保证安全合理。
三、封装实现步骤
  1. 将属性进行私有化。(让外部不能直接修改属性)
  2. 提供一个public的set方法,用于对属性判断并赋值。
public void setXxx(类型 参数名){// Xxx表示某个属性
    //加入数据验证
    属性 = 参数名;
}
  1. 提供一个public的get方法,用于获取属性的值。
public XX getXxx(){
    //加入权限判断
    return xx;
}
四、封装小案例

编写一个小案例Encapsulation.java。作用是:不能随便查看人的年龄,工资等隐私信息,并且对设置年龄进行合理的验证。年龄合理才会设置,否则设置为默认年龄。(年龄在1-150之间,name的长度在2-20个字符之间)

package com.encap;

public class encapsulation {
    public static void main(String[] args) {
        Person person = new Person();
        person.SetAge(11);
        person.SetName("Jack");
        person.SetSalary(10000.72);
        person.getInfo();

        Person person1 = new Person();
        person1.SetAge(200);
        person1.SetName("J");
        person1.SetSalary(10000);
        person1.getInfo();


    }
}

class Person{
    private int age;
    private String name;
    private double salary;

    public void SetAge(int age){
        if (age > 0 && age = 2 && name.length() = 2 && name.length()  0){
            this.balance = balance;
        }else {
            this.balance = 0;
        }

    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        if(passwd.length() > 6){
            this.passwd = passwd;
        }else {
            this.passwd = "defaultpasswd";
        }

    }

    public void getInfo(){
        System.out.println("name: " + this.name + " balance: " + this.balance + " passwd: " + this.passwd);
    }
}


//name: lilei balance: 20.0 passwd: thisismypassword
//name: Anonymous balance: 0.0 passwd: defaultpasswd
关注
打赏
1663680270
查看更多评论
立即登录/注册

微信扫码登录

0.1149s