java实现协议封装.docx
- 文档编号:557002
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:7
- 大小:18.51KB
java实现协议封装.docx
《java实现协议封装.docx》由会员分享,可在线阅读,更多相关《java实现协议封装.docx(7页珍藏版)》请在冰豆网上搜索。
java实现协议封装
竭诚为您提供优质文档/双击可除
java实现协议封装
篇一:
浅谈java封装
封装
封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。
使用封装有三大好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
1.publicclasshusband{
2.
3./*
4.*对属性的封装
5.*一个人的姓名、性别、年龄、妻子都是这个人的私有属性
6.*/
7.privatestringname;
8.privatestringsex;
9.privateintage;
10.privatestringwife;
11.
12./*
13.*setter()、getter()是该对象对外开发的接口
14.*/
15.publicstringgetname(){
16.returnname;
17.}
18.
19.publicvoidsetname(stringname){
20.this.name=name;
21.}
22.
23.publicstringgetsex(){
24.returnsex;
25.}
26.
27.publicvoidsetsex(stringsex){
28.this.sex=sex;
29.}
30.
31.publicintgetage(){
32.returnage;
33.}
34.
35.publicvoidsetage(intage){
36.this.age=age;
37.}
38.
39.publicvoidsetwife(stringwife){
40.this.wife=wife;
41.}
42.}
从上面两个实例我们可以看出:
封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果不想被外界方法,我们大可不必提供方法给外界访问。
但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。
如果我们不使用封装,那么该对象就没有setter()和getter(),那么husband类应该这样写:
[java]viewplaincopyprint
1.publicclasshusband{
2.publicstringname;
3.publicstringsex;
4.publicintage;
5.publicstringwife;
6.}
我们应该这样来使用它:
[java]viewplaincopyprint
1.husbandhusband=newhusband();
2.husband.age=30;
3.husband.name="张三";
4.husband.sex="男";//貌似有点儿多余
但是那天如果我们需要修改husband,例如将age修改为string类型的呢?
你只有一处使用了这个类还好,如果你有几十个甚至上百个这样地方,你是不是要改到崩溃。
如果使用了封装,我们完全可以不需要做任何修改,只需要稍微改变下husband类的setage()方法即可。
}
[java]viewplaincopyprint
1.publicclasshusband{
2.
3./*
4.*对属性的封装
5.*一个人的姓名、性别、年龄、妻子都是这个人的私有属性
6.*/
7.privatestringname;
8.privatestringsex;
9.privatestringage;/*改成string类型的*/
10.privatestringwife;
11.
12.publicstringgetage(){
13.returnage;
14.}
15.
16.publicvoidsetage(intage){
17.//转换即可
18.this.age=string.valueof(age);
19.}
20.
21./**省略其他属性的setter、getter**/
22.
其他的地方依然那样引用(husband.setage(22))保持不变。
到了这里我们确实可以看出,封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。
我们在看这个好处:
可以对成员变量进行更精确的控制。
还是那个husband,一般来说我们在引用这个对象的时候是不容易出错的,但是有时你迷糊了,写成了这样:
[java]viewplaincopyprint
1.husbandhusband=newhusband();
2.husband.age=300;
也许你是因为粗心写成了,你发现了还好,如果没有发现那就麻烦大了,逼近谁见过300岁的老妖怪啊!
但是使用封装我们就可以避免这个问题,我们对age的访问入口做一些控制(setter)如:
[java]viewplaincopyprint
1.publicclasshusband{
2.
3./*
4.*对属性的封装
5.*一个人的姓名、性别、年
龄、妻子都是这个人的私有属性
6.*/
7.privatestringname;
8.privatestringsex;
9.privateintage;/*改成string类型的*/
10.privatestringwife;
11.
12.publicintgetage(){
13.returnage;
14.}
15.
16.publicvoidsetage(intage){
17.if(age>120){
18.system.out.println("eRRoR:
errorageinput....");//提示錯誤信息
19.}else{
20.this.age=age;
21.}
22.
23.}
24.
25./**省略其他属性的setter、getter**/
26.
27.}
上面都是对setter方法的控制,其实通过使用封装我们也能够对对象的出口做出很好的控制。
例如性别我们在数据库中一般都是已1、0方式来存储的,但是在前台我们又不能展示1、0,这里我们只需要在getter()方法里面做一些转换即可。
[java]viewplaincopyprint
1.publicstringgetsexname(){
2.if("0".equals(sex)){
3.sexname="女";
4.}
5.elseif("1".equals(sex)){
6.sexname="男";
7.}
8.else{
9.sexname="人妖";
10.}
11.returnsexname;
12.}
在使用的时候我们只需要使用sexname即可实现正确的性别显示。
同理也可以用于针对不同的状态做出不同的操作。
[java]viewplaincopyprint
1.publicstringgetczhtml(){
2.if("1".equals(zt)){
3.czhtml="启用";
4.}
5.else{
6.czhtml="禁用";
7.}
8.returnczhtml;
9.}
篇二:
java封装的总结
面向对象的java实现-封装
本章小结
本章的小结主要体现在如下三点:
(1)通过学习对封装及封装的实现的理解的总结
(2)通过学习对构造方法的掌握技穷的总结
(3)通过学习对方法重载在程序中作用的总结
封装及封装的实现
1.封装的定义:
用书面的话说就是隐藏细节实现,按我的理解就是把一系列的数据放到一个类中,储存的数据只能在这个类中使用,以及在它的测试类中可以调用,其他的类是没有调用权限的。
2.封装中所涉及的最重要的关键字有private,public;private是将属性私有化,也就是将其封装在这个类中并且通过公有的方法来访问它(如:
public)。
3.封装的实现是通过get和set两个方法来实现的set方法是用来给私有后的属性进行赋值的,而get方法是用来取值的,通过测试类的调用将其输出。
通过下面的例子来说明:
(如何使用set和get方法)定义类的代码:
publicclassteacher{
privatestringname;//姓名privateintage;//年龄privatestringsex;//学历privatestringposition;//职位publicstringgetname(){}returnname;
}publicintgetage(){}publicvoidsetage(intage){}publicstringgetsex(){}publicvoidsetsex(stringsex){}publicstringgetposition(){}publicvoidsetposition(stringposition){}publicstringintroduction(){return"大家好!
我是"+name+",我今年"+age+"岁,性别"+sex+",目前职位this.position=position;returnposition;this.sex=sex;returnsex;if(age }
}
测试类的代码:
importjava.util.*;
publicclassteachertest{
publicstaticvoidmain(string[]args){scannerinput=newscanner(system.in);teacherteacher1=newteacher();system.out.print("请输入姓名:
");stringx=input.next();system.out.print("请输入年龄:
");
}}system.out.print("请输入性别:
");stringz=input.next();system.out.print("请输入职位:
");stringh=input.next();teacher1.setname(x);teacher1.setage(y);teacher1.setsex(z);teacher1.setposition(h);system.out.println(teacher1.introduction());
4.使用封装的好处是:
保护类中的数据,使这些数据不被错误的使用和破坏,限制对属性的不合理的操作,增强了数据访问的限制,增强了程序的可维护性。
构造方法
5.构造方法的定义:
构造方法负责对象成员的初始化工作,为属性变量赋予合
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实现 协议 封装
![提示](https://static.bdocx.com/images/bang_tan.gif)