封装和private关键字

1.private关键字

private关键字:是一个权限关键字(表示私有权限)   和public ,protected,默认不写,这三个是一样的

为了避免外界直接修改成员变量,我们需要在成员变量前加上private

一旦成员变量加了private关键字,只能在当前类中访问,一旦出了当前类则就修改不行了获取也不行了,换言之,成员变量一旦加了private的话,外界就不知道该成员变量了 (如下:成员变量age加了private之后,在主函数中就访问不到了)

eg:  

 假如到后期我们需要给成员变量修改值时,我们可以在当前类中进行修改。

用setter()和getter()进行修改

setter()是一个java当中的规范,是修改器的意思--主要负责修改成员变量  其本身就是一个成员函数

命名方式一般为:setXxx     eg:setAge()  setName()

getter ()同样是java中的规范,是访问器--主要负责访问成员变量(返回成员变量即可)

 如下:

 若成员变量和局部变量重名,只需要在成员变量前加this.即可 

成员变量和局部变量的区别

(1)存储位置:局部变量存储在栈内存中函数的所属空间中,成员变量存储在堆内存中对象的所属空间

(2)生命周期:局部变量随着函数的进栈而存在,随着函数的弹栈而消失;成员变量随着对象的创建而存在,对象的销毁而消失     对象的销毁:当前函数中没有指向

(3)访问范围:局部变量的访问范围仅仅在函数当中;成员变量的访问范围在当前类中

(4)初始化值:局部变量必须先初始化,之后才能被调用;成员变量在创建时有默认初始值

 2.构造函数

(1.)主要作用:在创建函数之时,对成员变量进行赋值操作

(2)构造函数的格式:

权限修饰符  函数名(参数列表){

       函数体;

}

注:函数名必须是类名

构造函数写在成员变量后面

但凡创建一个对象 构造函数就执行一次

如果类中没有定义任何构造函数的情况下,则会有一个默认无参的构造函数

如果类中有明显定义的构造函数,则默认无参的构造函数就不存在了

一般而言,我们一般将无参的构造函数写出来!!!!

eg:

成员变量的赋值其实经历了三个阶段:

默认初始化----显示初始化(类中的成员变量被赋值)----针对性初始化(构造函数)

eg:

 构造函数和成员函数的区别:构造函数只在创建对象时候调用,仅仅调用一次;成员函数是在创建对象之后调用,可调用多次

成员函数可以调用成员函数

成员函数不能调用构造函数

构造函数可以调用成员函数(只不过此时的成员函数不应该当做对象的特有行为而向外界提供的,仅仅是构造函数中的代码略多 从而分出来的函数 ,本质上这个函数还是构造函数的内容,那么该函数一般被定义为private)

构造函数可以调用构造函数 (适当减少代码的冗余 提高构造函数的利用率;原则上一般是参数较少的构造函数调用参数较多的构造函数,具体的调用方式并不像成员函数一样 写个方法名)

注意:成员函数尽量和构造函数不要重名
                                this(...) 对this的调用必须是构造器中的第一个语句

 注:构造函数可以调用构造函数 但是不能产生回调(ERROR:递归构造器调用)

 3.封装

面向对象三大特征:封装,继承,多态

封装:从字面意义上看就是将一些杂七杂八的东西进行统一管理(最大好处:节约代码,方便管理,降低耦合)

在代码中的体现:循环:主要解决有规律且重复性执行的代码

                            函数:主要解决具有独立功能的一段代码

                            数组:主要解决多种同类型数据的操作 统一操作,方便管理

                            类:主要将数据和行为进行统一方便操作  仿真现实中的事物

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值