首页 > 编程语言 > 详细

Java 面向对象的特征一: * 封装与隐藏

时间:2021-09-15 17:41:02      阅读:24      评论:0      收藏:0      [点我收藏+]
  1 * @   面向对象的特征一:
  2  *     封装与隐藏
  3  *     创建一个类的对象以后,我们可以通过“对象.属性”的方式,对
  4  * 对象的属性进行赋值,这里,赋值操作要受到属性的数据类型和存储
  5  * 范围的制约,除此之外,没有其它制约条件,但是,实际问题中,我
  6  * 们往往需要给属性赋值加入额外的限制条件,这个条件不能再属性声
  7  * 明时体现,只能通过方法进行限制条件的添加。如(setLegs())
  8  * 
  9  * 同时,我们需要避免用户再通过 “对象.属性”的方式对属性进行赋值。
 10  * 则需要经属性声明为私有的(private 11  *     --->此时 针对于属性就体现了封装性
 12  *     
 13  *   封装性的体现
 14  *   将类的属性(xxx)私有化(private),同时,提供公共的(public)方法来
 15  * 获取(getXxx)和设置(setXxx)此属性的值
 16  *     
 17  *     
 18  *  封装性的体现① 如上  ②  不对外暴露的私有方法 ③单例模式....... 
 19  *  
 20  *  
 21  *  三.封装性的体现,需要权限修饰符来配合。
 22  * 1.Java规定的4中权限(从小到大):private 缺省 protected  public
 23  * 2.4中权限可以用来修饰类及类的内部结构:属性,方法,构造器,内部类
 24  * 3.具体的 4中权限都可以修饰类的内部结构
 25  *          修饰类的话 只能使用  缺省,public
 26  */
 27 public class AnimalTest
 28 {
 29     public static void main(String[] agrs)
 30     {
 31         //AnimalTest test = new AnimalTest();
 32         
 33         Animal animal = new Animal();
 34         animal.name="大黄";
 35         
 36         animal.setAge(2);
 37         //animal.legs = 4;  //The field Animal.legs is not visible
 38         //animal.eat();
 39         animal.show();
 40         
 41         //animal.legs=-4;
 42         //animal.show();
 43         
 44         //animal.setLegs(-5);   //0
 45         //animal.setLegs(5);    //0
 46         animal.setLegs(6);    //6
 47         animal.show();
 48 //        animal.getAge();
 49 //        animal.getLegs();
 50         
 51         
 52         
 53     }
 54 }
 55 
 56 
 57 class Animal
 58 {
 59     String name;
 60     private int age;
 61     private int legs;   //腿的个数
 62     
 63     //对于属性的设置
 64     public void setLegs(int l)
 65     {
 66         if(l>=0 && l%2==0)
 67         {
 68             legs = l;
 69         }
 70         else
 71         {
 72             legs =0;
 73             //抛出一个异常
 74             
 75         }
 76     }
 77     
 78     //对于属性的获取
 79     public int getLegs()
 80     {
 81         return legs;
 82     }
 83     
 84     //设置 set
 85     public void setAge(int a)
 86     {
 87         if(age>=0)
 88         {
 89              age = a;
 90         }
 91         else
 92         {
 93             age = 0;
 94         }
 95     }
 96     
 97     //获取 get
 98     public int getAge()
 99     {
100         return age;
101         
102     }
103     
104     
105     
106     public void eat()
107     {
108         System.out.println("动物进食");
109     }
110     
111     public void show()
112     {
113         System.out.println("name="+name+",age="+age+",legs="+legs);
114         
115     }
116 }

技术分享图片

 

Java 面向对象的特征一: * 封装与隐藏

原文:https://www.cnblogs.com/Bytezero/p/15268513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!