栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java | 封装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java | 封装

1.封装(encapsulation)介绍

就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(方法)才能对数据进行调用

(对电视机的操作就是典型的封装)

2.封装的好处

1)隐藏实现的细节

2)可以对数据进行验证,保证安全合理

3.封装实现的步骤

1)将属性私有化private(不能直接修改)

2)提供一个公共的(public)set方法,对于属性判断并赋值

   public void setXxx(类型 参数名){  // Xxx是某个属性
    //加入数据验证的业务逻辑
    属性=参数名;

  }

3)提供一个公共的(public)get方法,用于获取属性的值

  public 数据类型 getXxx(){  //权限判断,Xxx是某个属性

     return xxx;

  }

快速入门:

public class Encapsulation01 {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("jack");
        person.setAge(300);
        person.setSalary(30000);
        System.out.println(person.info());
    }
}

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

    //自己写setxxx,getxxx太慢,用快捷键
    public String getname() {
        return name;
    }
    public void setName(String name) {
        if (name.length() > 1 && name.length() < 8) {
            this.name = name;
        } else {
            System.out.println("你的年龄设置的不对,长度应该在(1-8)之间");
            this.name = "无名氏"
        }
    }
    
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if (age >= 1 && age <= 120) {
            this.age = age;
        } else {
            System.out.println("你的年龄设置的不对,需要在(1-120)之间");
            this.age = 18;
        }
    }
    
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public double getSalary() {
        return salary;
    }

    //写一个方法返回属性信息
    public String info() {
        return "信息为 name=" + name + " age=" + age + " 薪水=" + salary;
    }
}
4.封装与构造器

封装是可以被含在构造器内的

    public Person(String s) {
    }

    public Person(String name, int age, double salary) {
//        this.name = name;
//        this.age = age;
//        this.salary = salary;
        setName(name);
        setAge(age);
        setSalary(salary);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/295072.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号