封装
访问修饰符
从大到小排序
public、protected、default、private(default什么都不写)
public:公共的 任何人都可以访问
protected:受保护的 相同点的包和子类(可能写在不同的包里)都可以访问
default:默认的 相同的包中可以访问
private:私有的 自己能访问
例子:银行的存折,私有化以后,别人是不能取钱的,但是只要你输入正确的密码了,就可以访问了
有些数据我们不想给别人修改,那只能私有化。因为私有化了,所以还要提供公共的方法来进行获取和设置。get/set方法。 在这些方法里面可以写语句和判断进行控制。从而保证我们的数据是有效和
真实的。
如:一周只有星期一到星期天,一个月的天数不大于31天小于28天
封装的原因就是这样
给属性赋值的方法:
1、直接给属性赋默认值
2、通过构造方法给属性赋值
3、通过封装的方式给属性赋值,且可以灵活的进行判断和处理
属性封装
1、私有的属性private(对私有成员的保护)
private int love= 100;
2、公开的set/get方法(接口稳定)
//get:允许外部获取私有成员
//set:允许外部对私有成员进行赋值
作用:控制外界对我的数据的操作权限等等,有了方法,我们是可以通过语句来进行控制的。
public void setlove(int love){
//有条件的给自己赋值保证了数据的合理和完整
if(love<0){
love=0;
this.love=love;
/**
*返回给外界
\* @return
public int getLove(){
return love;
}
属性封装在Java中也是一种规范。
规则:set/get setName name,第一个字母是大写
Java反射技术:可以通过这个技术来访问私有的属性!!!(前提是有规范)
封装的概念是非常广泛的:
抽象类和接口、设计模式、框架,等等都融合了很多的封装的概念的思想。
总结:将信息适当的隐藏,预留接口给外界使用。
boolean类型的封装:get方法可以用is
3、方法重载(在一个类的内部,或者父子之间)
1)方法名相同
2)参数不同(类型、个数、顺序)只要有一个不同
3)与返回值类型无关(跟重写的区别,方法重写是与返回值类型有关的)
/**
* 有参数的构造方法
* 一般根据表格字段来决定,不为null的字段是要写进来的
*/
public Dog(String name,int health) {
this.name=name;
this.health=health;
this.love=25;
this.starin="新拉布拉多犬";
}
/**
* 一般我们写实体类的时候写2个构造方法:1.有参构造 2.无参构造
*/