10.封装、继承、多态、java面向对象三大特征

10.1封装private和this关键字javabean实体类

java面向对象的三大特征:封装,继承,多态。
面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。

封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。
要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

开发中我们定义的方法,实际上也是一种封装,我们是把功能代码封装在了方法中,然后必须通过调用该方法来执行功能。

封装原则 : 封装是为了让代码的功能更加的安全,让细节被进一步的隐藏起来。原则上应该合理隐藏,合理暴露。

封装规范: 我们需要将成员变量(属性)隐藏起来,若需要访问某个成员变量,暴露公共方法对其访问。
封装的步骤:
1.使用 private 关键字来修饰成员变量。表示成员变量不能被直接访问。
2.使用public修饰方法,提供对应的一对用public修饰的 getXxx方法 、setXxx` 方法来暴露成员变量的访问。
封装注意要点: public关键字是公开访问权限,private关键字是隐藏访问权限。
封装的操作private修饰成员变量:
private是一个权限修饰符,代表最小权限,是私有的含义。可以修饰成员变量和成员方法。被private修饰后的成员变量和成员方法,只在本类中才能访问。
private修饰的格式 :
在这里插入图片描述
public修饰getter和setter方法。 public是一个权限修饰符,代表最大权限,是公开权限的含义。可以修饰成员变量和成员方法。被public修饰后的成员变量和成员方法,可以在任何类中访问。
在封装中public的格式:

使用 public修饰成员方法要点:
提供 getXxx方法 / setXxx 方法(我们也称呼getXxx方法 /setXxx` 方法是getter和setter方法),可以通过getter和setter方法来暴露成员变量的访问,然后可以在setAge方法中规律掉非法的年龄,代码如下:

成员变量age一旦私有以后,其他类就不能直接访问成员变量了 :必须通过setAge来修改,通过getAge来访问。这样就实现了安全性,成员变量私有和提供配套的getter和setter方法已经成为Java设计的一种规范。

命名规范格式 :私有的成员变量必须存在配套的getter和setter方法,格式是get+成员变量名首字母大写形式,set+成员变量名首字母大写形式.
//例如 私有成员变量是age和email
// name的getter和setter方法即是:setName , getName
//email的getter和setter方法即是:setEmail , getEmail

封装知识总结 :
1.从上述代码中可以看出,成员变量使用private修饰以后,就不可以在其他类中访问了。
2.提供成套的被public修饰的setter和方getter法可以暴露对私有成员变量的修改以及获取值。
3.封装就是合理的进行隐藏,合理的进行暴露,按照规范我们会对成员变量进行私有,而对方法进行暴露,当然在一些极特殊的情况下,成员变量也会功能,方法也可能会私有。

This关键字的含义和出现的位置 :
this代表所在类的当前对象的引用(地址值),即代表当前对象。
this出现在实例方法中,谁调用这个方法(哪个对象调用这个方法):this就代表谁(this就代表哪个对象). this.name是对象中的成员变量name
this出现在构造器中,代表构造器正在初始化的那个对象。

this优化setter方法格式:

使用 this 修饰方法中的变量,表示访问的是当前对象的成员变量
值得注意的是:如果方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写,如getter方法中就是这种情况。
1.this出现在实例方法中,可以提高setter方法的可读性 :形参更加有意义,同时可以区别开成员变量与形参,实现把形参值赋值给成员变量。
2. this不可以出现在静态方法中。 常用在封装的情况

当一个对象被创建时候,构造器是用来初始化该对象,给对象的成员变量赋初始值。无参数构造器默认是给对象分配默认值的。

This(关键字)用在有参数构造器中作用:
在有参数构造器中使用this来初始化对象的数据。
1、有参数构造器可以在对象创建的时候同时初始化对象的数据。
2、this在有参数构造器中,可以辅助有参数构造器进行对象数据的初始化,增强代码的可阅读性。
Javabean类 (实体类) 的含义和作用:
JavaBean 是一种JAVA语言写成的可重用组件,一种常见形式,JavaBean 通过提供符合一致性设计模式的公共方法将内部区域暴露成员属性,简单的说就是数据的一个包装类,提供用来操作成员变量的set和get` 方法,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。写成JavaBean的类必须是具体的和公共的,并且具有无参数的构造器,也就是实体类。

JavaBean 是 Java语言编写类的一种常见形式。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get` 方法。

符合以下情况的类就是JavaBean也就是实体类 :
1、类是仅有的;2、成员变量是私有的;
3、每个成员变量提供一对setter和getter方法 4、有无参数的构造方法

DAO是一个数据访问接口,也就是说它操作的数据是javaBean里面封装的数据,也就是实体类里面封装的数据。

编写符合JavaBean 规范的类,也就是实体类,以学生类为例,格式如下:

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

JavaBean可分为两种:1、有用户界面(UI,User Interface)的JavaBean;
2、没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。javaBean是普通的java类。实体类属于javabean,实体类是对应数据库表的。javabean应用范围通常应用于服务器的部件,例如 JDBC连接池、应用监视、用户计数和其他参与用户行为的类。

Java bean三大构件在计算机编程中代表java构件(EJB的构件),通常有Session bean,Entity bean,MessageDrivenBean三大类构件。
1、Session bean:会话构件,是短暂的对象,运行在服务器上,并执行一些应用逻辑处理,它由客户端应用程序建立,其数据需要自己来管理。分为无状态和有状态两种。
2、Entity bean:实体构件,是持久对象,可以被其他对象调用。在建立时指定一个唯一标示的标识,并允许客户程序,根据实体bean标识来定位beans实例。多个实体可以并发访问实体bean,事务间的协调由容器来完成。
3、MessageDriven Bean:消息构件,是专门用来处理JMS(Java Message System)消息的规范(EIB2.0)。JMS是一种与厂商无关的API,用来访问消息收发系统,并提供了与厂商无关的访问方法,以此来访问消息收发服务。JMS客户机可以用来发送消息而不必等待回应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值