I学霸官方免费教程十三:Java面向对象三大特性之封装

来源:互联网 发布:云计算平台的特点包括 编辑:程序博客网 时间:2024/04/30 01:18

面向对象的三大特性

封装

将数据(属性)和功能(方法)包装在一起,形成一个不可分割的整体。对使用者提供访问的接口(方法的调用)
另一种简单的说法是,将属性私有化,对外提供公共的getter和setter方法
使用封装的优势:安全(屏蔽非法操作,隐藏类的实现细节)
实例:package characteristic.encapsulation;/** * 用于演示封装 * 类中封装了属性和方法 * @author 学霸联盟 - 赵灿 */public class Person {//私有的属性年龄private int privateAge;//公共的属性年龄,用于和私有年龄做对比public int publicAge;//设置私有年龄,该方法对属性privateAge进行了封装public void setPrivateAge(int age) {if(age < 0){System.out.println("输入的年龄有误!");} else {privateAge = age;}}//获取私有的年龄public int getPrivateAge() {return privateAge;}}package characteristic.encapsulation;/** * 测试封装 * @author 学霸联盟 - 赵灿 */public class Test {public static void main(String[] args) {//创建Person类的对象Person p = new Person();//设置公有的年龄p.publicAge = -1;//输出公有的年龄System.out.println("公有的年龄:" + p.publicAge);//设置私有的年龄p.setPrivateAge(-1);//输出私有的年龄System.out.println("私有的年龄:" + p.getPrivateAge());}}运行结果:公有的年龄:-1输入的年龄有误!私有的年龄:18

其实方法也可以看成类内部的一种封装,将事项某个功能的一些列代码封装到一个方法中,方法名就是方法提供给外界使用的接口。这样就实现了代码的复用(重复的使用),当有多处需要同样功能代码的时候,就可以重复的调用这一方法
/** * 演示输出人员的姓名和年龄信息 * @author 学霸联盟 - 赵灿 */public class Demo {public static void main(String[] args) {Person p1 = new Person("张三", 18);Person p2 = new Person("李四", 20);/**************** 方式一:直接输出两个对象的姓名的年龄 *******************/System.out.println("----------方式一----------");System.out.println("姓名:" + p1.name + "    年龄:" + p1.age);System.out.println("姓名:" + p2.name + "    年龄:" + p2.age);/**************** 方式二:调用输出信息的方法输出两个对象的姓名和年龄 *******************/System.out.println("----------方式二----------");p1.printInfo();p2.printInfo();}}class Person {String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}public void printInfo() {System.out.println("姓名:" + name + "    年龄:" + age);}}运行结果:----------方式一----------姓名:张三    年龄:18姓名:李四    年龄:20----------方式二----------姓名:张三    年龄:18姓名:李四    年龄:20
哪种简单就不用我说了吧

封装的优势在于复用代码,安全性,隐私性等

0 0
原创粉丝点击