JavaBean的规范,javaBean中属性为什么要定义成private?

JavaBean就是遵循一定规范、完成某种功能的可重复使用的Java类。

javabean

JavaBean是一种JAVA语言写的可重用组件。

JavaBean就是java类 ,但要遵循一定的规范。

特点:

  1. 可以实现代码的重复利用
  2. 易编写、易维护、易使用
  3. 跨平台

程序开发过程中,一但编写好JavaBean,就可以把JavaBean想象为一个黑匣子,只需要知道这个组件的功能和如何使用它,不需要知道它里面是如何实现的,极大的方便了程序的开发。

JavaBean的书写规范

1.JavaBean是一个public的类。

2.类的构造方法必须是public的,无参数的。

3.类中声明的方法必须是public的。

4.JavaBean 所有的属性定义为私有的。

5.如果成员变量的名字是xxx,为了获取或更改成员变量的值,必须提供setXxx()和getXxx()方法。

setXXxx()和getXxx() 遵循的规范

(1)必须为public特性的方法。

(2)一般同一个属性的get方法和set方法成对使用,也可以单独使用。

(3)get方法的名字必须是getXxx(),set方法的名字必须为setXxx(),其中Xxx是第一个字母转换为大写的属性名。

(4)get和set方法书写形式:

public  < 属性类型>  getXxx ()

public  void  set Xxx (< 属性类型>   参数名)

get方法的返回类型必须与属性的数据类型一致,且不能带参数。

set方法返回类型必须为void,且只能带一个和属性类型相同的参数。

案例:编写第一个JavaBean

package com.ceshi;
public  class  Student
{ 	private String name;
 public Student() {   name=null;   }
 public  String getName()
 {  return name;   }
 public void setName(String newName)
 {  name=newName; }
}

javaBean中属性为什么要定义成private?

我可以定义成public,不提供get set方法,这样也是可以的呀,为什么还要定义为private?

如果实体类就没必要将属性都定义成private。控制权限的还有public、protected和private,完全没必要全部get、set。

javaBean中属性定义成private的原因如下:

1.对属性进行私有化封装,防止被随意修改,对外提供get,set方法,只能通过getter和setter修改,提高安全性。

2. 对字段的访问有时候不是简单的直接访问的,比如你可能只保存了brithday,而同时要输入age, 那么可以加个getAge(),在其中计算。

3.  Java Bean的规则有此要求,

get,set方法其实是对外暴露的一个受限接口,其实就是一种约定。命名约定+引入中间层,好处还是很多的,可以对get,set方法玩AOP,基于get,set方法的反射不会破坏对象数据。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/2809.html

(0)
江山如画的头像江山如画管理团队
上一篇 2018年10月18日 上午8:41
下一篇 2018年10月23日 下午3:55

99%的人还看了以下文章

  • JSP三层架构开发学生管理系统源码-dao、entity、service、servlet

    表示层:MVC中的视图层和控制器层,前端通常为html css js jsp文件,后端例如Servlet文件,调用业务逻辑层业务逻辑层(Service):接受表示层的请求,先进行逻辑处理,后调用数据逻辑层,(增:查+增) 数据访问层(Dao):直接访问数据库的操作 通过三层架构,将表示层请求传递到数据访问层,数据访问层将结果返回至表示层 具体流程 开发环境:…

    2021年5月1日 编程开发
    1.4K0
  • 开发软件,编程语言Java和C++选哪个?

    根据网络调查数据:编程语言排名前三的是Java、C#、C++。 其中Java使用者比例最高,为42.82%,是C#的两倍还要多。 紧跟其后的是C#,比例为17.33%。 排名第三的C++则有14.35%的比例。 JAVA和C++都是面向对象语,都能够实现面向对象思想(封装,继乘,多态)。而由于C++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带…

    2021年2月16日
    1.7K0
  • Robotstudio示教编程与仿真运行教程

    Robotstudio软件中内置的虚拟示教器与真实的工业机器人示教器没有任何区别,对于学习ABB机器人现场示教编程的,可以在基础工作站中进行学习使用。

    2022年5月3日 编程开发
    4.2K0
  • %matplotlib inline使用详解

    #内嵌画图 %matplotlib inline import matplotlib # 注意这个也要import一次 import matplotlib.pyplot as plt myfont = matplotlib.font_manager.FontProperties(fname=r’C:/Windows/Fonts/msyh.ttf’) # 这一…

    2023年1月13日
    8210
  • python pywifi库破解wifi密码提示“No module named ‘comtypes’”的解决方法

    在免费蹭网!破解WiFi密码的Python程序源码分享一文中,125建站网提供了详细的程序代码。 python中的pywifi库,利用它可以暴力破解一些简单的wifi密码,有些同学运行程序时提示错误:“No module named ‘comtypes’”! python中的No module named ‘comtypes’ 解释是…

    2023年1月29日
    2.8K0
  • python 函数,字典,列表使用综合实例(经典)

    现有一字典: dict1 = {’01’: [67, 88, 45], ’02’: [97, 68, 85], ’03’: [97, 98, 95], ’04’: [67, 68, 45], } 存放着学生的学号和成绩。成绩列表中的3个数据分别是学生的语文、数学、英语成绩。 要求: 1.编写函数,返回每门成绩均大于等于85的学生的学号。 dict1 = {‘…

    2020年1月31日
    4.8K0

发表回复

登录后才能评论