封装、包、访问控制小结

来源:互联网 发布:人人下载器 for mac 编辑:程序博客网 时间:2024/06/18 06:03

封装:

其实是一种设计理念,其中的额访问控制不仅是一种语法限制,也是一种语义规范。但是不要认为使用了访问控制修饰符,使用了包等等就能够实现信息的隐藏,不一定加上private关键字就隐藏了类成员。还有一点,封装的原则不是金科玉律,不可违背。我们应该根据实际的情况,采用符合实际需要的方法解决问题。一般情况下,在定义类成员变量时,都会涉及到如几个修饰符,访问控制修饰符,如:publicprivate、还有static、数据类型等等。static int voter这个是static关键字,它可以用来修饰类的成员变量,成员方法或者是代码块,static的应用非常广泛,比如:现在政府经常搞个投票公决这一类的,每一个投票人都来投票,其实在这个现实问题抽象到我们的程序中,就需要一个变量,广大的投票人都需要来修该这个变量,对不对,这时候我们就可以使用static关键字来定义这个变量,看下面代码:

也就是VoteAction类,在这个类当中,我们定义了三个成员变量,第一个成员变量count是用来存储计票总数的,我们用static来修饰,第二个变量:name,存储的是投票人的姓名,第三个变量:votedself,存储的是当前个人的投票数量,还有一个构造方法,用来初始化投票人的姓名的,还有一个得到总票数的方法,也就是getAllVote()方法,在这个方法当中count++,也就是计票总数进行累加votedself++,是当前个人计票总数累加。还有输出语句,分别输出了投票人的姓名,以及投票的次数,还有候选人的总票数。在看投票管理类:

也就是VoteMgr类,在这个类的main()方法中,我们实例化了三个对象,也就是创建了hanbingliudunmada这三个投票人的对象,然后这三个投票人分别调用获得投票总数的方法,当韩冰调用getAllVote()方法的时,count++,也就相当于韩冰往公共篮子里投了一票,而自己的票数也累加了一次,当牛顿调用getAllVote()方法,同理,count++,也同样的往公共篮子里投了一票,而自己的投票数也累加了,马达也是一样的。由此看出这个三个投票人都在改变公共篮子的数量,也就是,都在改变由static修饰的count变量,而每个对象自己的投票数,也就是每个对象votedself数又是互不相干的,这样我们就完成了整个投票的活动。

总结:

封装,就是将方法和属性包装到一个单元中以类的形式实现,封装一般分为三步:一、修改属性的可见性。二、设置set/get方法。三、设置属性的存取限制

包,报的作用主要是管理java文件解决同名文件冲突的问题,定义包使用关键字package,多层包之间用“.”号隔开,包名全部小写,导入包,我们使用关键字:import

访问控制,包括类的访问控制,以及类成员的访问控制,类的访问修饰符有public修饰符和默认修饰符,public,是公有的访问级别,包内的其他以及其它包中的类都可以访问。默认修饰符,是包级私有访问级别。只有本包中的类才可以访问。类成员访问修饰符有publicprotected、默认修饰符和privateprotected修饰的类成员,在同一类、同一包甚至其子类都可以访问。默认修饰符修饰的成员,除了同一类中,在同一包中也可以对其访问。Private修饰的类成员,只有同一类中才可以访问。





0 0
原创粉丝点击