JAVA-封装
2016-05-14 12:11
337 查看
1、什么是封装?
顾名思义,封装就是装起来,圈起来的意思,用于类与对象中来讲,就是在一个类中把对象拥有的属性和隐藏信息(条件)进行封装,不允许外部程序直接访问,而必须要通过该类提供的方法来实现对隐藏信息的操作和访问
2、为什么要用封装?
封装后,类就是独立的,有效避免了外部错误对此对像的影响,并且能对于对象使用者由于大意产生的错误操作起到预防作用
封装的好处,就是隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便加入存取控制语句,限制不合理操作
减少对象之间的关联性,以降低它们之间的复杂度和依赖性
3、如何使用封装
把类的成员变量权限改为private,进行私有化控制,别的类,不能访问
默认不写的话,就是public 公共的。将public 改为private的话,别的类就不能访问该类的成员变量了
实例代码如下:
调用类:
只能通过方法来赋值,所以你可以看得出来,上面的类中get方法,是用不着的。可以省略不写,需要用时候再写
结果输出:
顾名思义,封装就是装起来,圈起来的意思,用于类与对象中来讲,就是在一个类中把对象拥有的属性和隐藏信息(条件)进行封装,不允许外部程序直接访问,而必须要通过该类提供的方法来实现对隐藏信息的操作和访问
2、为什么要用封装?
封装后,类就是独立的,有效避免了外部错误对此对像的影响,并且能对于对象使用者由于大意产生的错误操作起到预防作用
封装的好处,就是隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便加入存取控制语句,限制不合理操作
减少对象之间的关联性,以降低它们之间的复杂度和依赖性
3、如何使用封装
把类的成员变量权限改为private,进行私有化控制,别的类,不能访问
默认不写的话,就是public 公共的。将public 改为private的话,别的类就不能访问该类的成员变量了
public class FengZhuang { //将成员变量私有化,封装 private String name; private int age; private String sex; }
实例代码如下:
package com.liu.u6.copy1; /* * 封装的使用 */ public class FengZhuang { //将成员变量私有化,封装 private String name; private int age; private String sex; //创建带返回值类型为String的方法 public String getName(){ return name;//get到的是set的那个name } //不带返回值的 但带参的构造方法 public void setName(String name){ this.name=name; } public int getAge(){ return age; } /******此时属性仍然没有限制作用,需要进一步利用条件判断语句进行限制*************/ /*public void setAge(int age){ this.age=age; }*/ public void setAge(int age){ if(age>0 && age<150){ this.age=age; }else{ System.out.println("年龄有误!"); } } public String getSex(){ return sex; } /******此时属性仍然没有限制作用,需要进一步利用条件判断语句进行限制*************/ /* * public void setSex(String sex){ this.sex=sex; } */ public void setSex(String sex){ if(sex.equals("男")|| sex.equals("女")){ this.sex=sex; }else{ System.out.println("性别不合法!"); } } //构造方法 无参 public FengZhuang(){ this.name="无名氏"; this.age=20; this.sex="男"; } //构造方法 有参 public FengZhuang(String name,int age,String sex){ this.name=name; this.age=age; this.sex=sex; } //方法 :自我介绍 public void say(){ System.out.println("自我介绍一下\r\n姓名:"+this.name+"\r\n性别:"+this.age+"\r\n年龄:"+this.age+"岁"); } }
调用类:
只能通过方法来赋值,所以你可以看得出来,上面的类中get方法,是用不着的。可以省略不写,需要用时候再写
package com.liu.u6.copy1; public class TestFengZhuang { public static void main(String[] args) { FengZhuang f=new FengZhuang(); //调FengZhuang类中的set方法,,这set方法中都定义了参数,而且把参数值赋给了成员变量 f.setName("韩国"); f.setAge(20); f.setSex("中性"); f.say(); } }
结果输出:
相关文章推荐
- 35-001-4 Struts中的表单数据输入的验证问题
- JAVA构造方法
- mybatis一级缓存(session cache)引发的问题
- java实现并查集
- java.lang.IllegalStateException的解决方向
- Spring中的AOP面向切面编程
- Java String.split()用法小结
- 加快eclipse
- Java对象的克隆
- java构造器小结
- java: 四器 之 适配器初学
- java: 四器 之 生成器初学
- 经典排序算法(Java版)
- 用java解leetcode上easy题5
- java中volatile关键字的含义
- spring-boot-maven-plugin 插件的作用
- JAVA字符串格式化-String.format()的使用总结
- java: 四器 之 比较器初学
- java打印九九乘法表,嵌套for循环,二维数组
- java :四器 之 迭代器初学