黑马程序员--封装,构造函数,this关键字,静态的整理

http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!

一、封装。

1、封装的简介

       1、封装:是指隐藏对象的属性和实现的细节,仅对外提供公共的访问方式。

       2、好处:

              1、将变化隔离。

              2、便于使用。

              3、提高重用性。

              4、提高安全性。

       3、封装原则:

              将不需要对外提供的内容隐藏起来。

              把属性都隐藏起来,提供方法对其进行访问。set get

2、私有化属性,set() get()方法的使用。

       需求:描述人对象,属性age,说出自身的年龄。

       好处:可以对属性进行可控。

       私有:private是一个关键字,权限修饰符,用于修饰成员(成员变量,成员函数)

       注意:一个属性对应两个方法set get

       函数仅仅是封装的一种情况。函数,类。

二、构造函数

1、构造函数

       1、特点:

              1、函数名于类名相同。

              2、不需要定义返回值类型。

              3、没有具体的返回值类型。

                    如果没有自定义构造函数,那么类中会有一个默认空参数构造函数。

       2、作用:给对象进行初始化。 

2、构造函数和一般函数的不同。

       1、在书写格式上不同。

       2、运行的不同。

              构造函数:在对象一创建就被调用了,而且只执行一次。

              一般函数:是在对象在所需时,才自己调用,可以调用多次。   

              注意:构造函数是有return语句的,用于结束构造函数的初始化动作。

              多个构造函数的情况,描述人。构造函数初始化过程:画内存图。

       3、小细节。

       4、构造函数什么时候用?

              当描述事物时,该事物一存在就具备的一些属性和行为,那么这些内容就定义在

构造函数中。

三、this关键字。

1this代表当前对象的应用。哪个对象调用this所在的函数,就代表哪个对象。

2this什么时候用?

       当定义功能时,功能内部使用到调用该功能的对象,就用this表示。

       this表现形式一:当成员变量和局部变量同名的时候,为了区分,用this关键字来完成。

       this表现形式二:构造函数之间的调用可以使用this关键字,后面跟上小括号。    

              注意:调用本类中构造函数的this语句必须定义在构造函数的第一行。因为初始化要先完成。

3、代码块。

       局部代码块:可以控制变量的声明周期。

       构造代码块:可以给所有对象进行初始化。

构造函数:给对应对象初始化。

       静态代码块:给类进行初始化。

              注意:构造代码块写法跟局部代码块写法一样,怎么区分。

四、static关键字。

1static关键字:

       1、被修饰的变量,被所有对象所共享。

       2、静态随着类的加载而加载,随着类的消失而消失。

       3、优先于对象存在。

       4、静态成员可以直接被类名调用。

2、内存:静态成员存放在方法区中,共享区。

3、静态的使用注意事项。

       1、静态方法只能调用静态成员,不能调用非静态成员。因为静态先存在。

              非静态方法可以调用非静态成员,也可以掉用静态成员。

       2、在静态方法中不允许存在thissuper关键字。

              因为静态先存在,对象后出现。

       3、主函数是静态的。

              主函数的调用情况。

4、静态的弊端。

       1、静态方法是有访问局限性的,只能访问静态的。

       2、生命周期过长。

5、静态成员变量和非静态成员变量的区别?

       1、称呼。

              非静态成员变量又称为实例变量。

              静态成员变量又称为类变量。

       2、声明周期

              非静态成员变量。随着对象的创建而存在,随着对象的消失而消失。

              静态成员变量,随着类的加载而存在,随着类的消失而消失。

       3、内存

              非静态变量存在于对象堆内存中。

              静态变量存在于方法区中。

       4、调用

              非静态变量只能被对象所调用。

              静态变量可以被类名调用,也可以被对象调用。

7、静态什么时候用?(重点)

       1、成员变量:给成员变量的值是否每一个对象都相同,是就用static修饰。

       2、成员函数:如果函数中没有访问到对象的特有属性,就可以被static修饰。

              也就是说函数中没有this时,就可以使用静态。

       注意:如果一个类中定义的方法都是静态的,那这个类是工具类,不需要被创建对象。

              为了不让创建对象:可以将构造函数私有化。

       8、静态代码块。

              特点:

                     1、随着类的加载而执行,而且只执行一次。

                     2、优先于主函数执行。

              作用:给类进行初始化。

              当一个类中的构造函数被私有化,这时可以由静态代码块对类进行初始化。

http://edu.csdn.net/heima android培训 http://edu.csdn.net/heima ; java培训期待与您交流!详细请查看 http://edu.csdn.net/heima
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想飞的鱼20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值