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%的人还看了以下文章

  • python 递归函数使用示例,求两个整数的最大公约数(欧几里得算法)

    用于计算两个整数的最大公约数的递归算法称为欧几里得算法,其计算原理依赖于定理: 两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 公式为:gcd(a,b)=gcd(b, a mod b) 递归函数使用示例, def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) prin…

    2020年1月31日
    8.2K0
  • 第一个Tkinter程序

    Tkinter(Python GUI编程)从入门到精通(一) 上一篇文章介绍什么是Tkinter?tkinter的优缺点,tkinter的开发工具。 今天我们在上一篇的基础上,开始给主窗口添加文本、按钮,并给按钮绑定一个事件,点击按钮弹出一个消息窗口。 创建label label=tk.Label(root,text=”hello GUI&#82…

    2022年8月25日
    1.3K0
  • 各版本MySQL数据库驱动程序jar包大全(java连接mysql驱动jar包)

    java连接mysql数据库,数据库程序开发步骤首先就要加载JDBC驱动程序,不同版本的mysql数据库需要的MySQL数据库驱动程序jar包版本也不同。 不少同学问怎么下载java连接mysql的驱动jar包? 今天给大家分享:各版本MySQL数据库驱动程序jar包大全(java连接mysql驱动jar包) mysql-connector-java-5.1…

    2019年9月28日
    17.6K1
  • opencv 图像旋转 cv2.rotate和np.rot90案例精讲

    OpenCV 方法 OpenCV 中带有一个旋转图像的函数 cv2.rotate rotate(src, rotateCode[, dst]) -> dst参数:src:输入图像rotateCode:旋转方式1、cv2.ROTATE_90_CLOCKWISE:顺时针 90 度2、cv2.ROTATE_180:顺时针 180 度3、cv2.ROTATE_…

    2022年12月1日
    3.6K0
  • python 初学者练手上机实操七-列表、元组练习

    一、定义列表fruits 其中元素包[‘苹果’,’梨’,’香蕉’,’菠萝’,’草莓’,’桔子’,’橙子’,’木瓜’,’西瓜’,’哈密瓜’,’香瓜’,使用循环语句输出列表中的元素,但不输出菠萝。 要求: 1、新建一个“list.py”文件。 2、编写程序。 3、调试程序。 4、排除错误。 二、创建一个名称为list1的空列表 创建一个包含整形数据1,2,3的l…

    2023年6月15日
    1.3K0
  • Pycharm Django项目 NameError: name ‘os’ is not defined

    Pycharm Djarngo项目报错 NameError: name ‘os’ is not defined 原因:这里调用了os模块,但是文件头并没引用os模块解决办法:在settings.py文件头加上 import os

    2024年12月2日
    4030

发表回复

登录后才能评论