王剑编程网

分享专业编程知识与实战技巧

25. 封装(视频配套代码)(封装代码是什么意思)

如下代码配套视频:《25. 封装|数据防护,隐藏细节的艺术

25.1 属性封装

Student.java

package com.encapsulation.demo1;

/**
 * 今日头条:老陈说编程
 * Java封装
 */
public class Student {
    // 隐藏信息-学生姓名
    private String name;
    // 隐藏信息-学生年龄
    private int age;

    // 提供对外的方法(接口)-设置学生姓名
    public void setName(String name) {
        // 在这可以进行一些限制 - 将参数name赋值给当前对象的name属性
        this.name = name;
    }

    // 提供对外的方法(接口) - 获取学生姓名
    public String getName() {
        // 返回学生姓名
        return name;
    }

    // 提供对外的方法(接口) - 设置学生年龄
    public void setAge(int age) {
        // 将参数age赋值给当前对象的age属性
        this.age = age;
    }

    // 提供对外的方法(接口) - 获取学生年龄
    public int getAge() {
        // 返回学生年龄
        return age;
    }
}

Main.java

package com.encapsulation.demo1;

//属性封装测试
public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        //只能通过方法设置属性
        student.setName("王老虎");
        student.setAge(16);
        //只能通过方法访问属性
        System.out.println(student.getName() + ",满"
                + student.getAge() + "岁了.");
    }
}

25.2 接口封装

AnnualLeave.java

package com.encapsulation.demo2;

//今日头条:老陈说编程

public interface AnnualLeave {
    //计算年假
    double computeYear(int entryAge);
}

AskForLeave.java

package com.encapsulation.demo2;

//今日头条:老陈说编程
//实现年假计算
public class AskForLeave implements AnnualLeave {
    public double computeYear(int entryAge) {
        if (entryAge >= 1) {
            return 5.0;
        } else {
            return 0.0;
        }
    }
}

Main.java

package com.encapsulation.demo2;

//接口封装测试
public class Main {
    public static void main(String[] args) {
        AnnualLeave annualLeave = new AskForLeave();
        double c = annualLeave.computeYear(1);
        System.out.println("工作忙1年,可以休" + c + "天年假。");
    }
}
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言