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关键字。
1、this:代表当前对象的应用。哪个对象调用this所在的函数,就代表哪个对象。
2、this什么时候用?
当定义功能时,功能内部使用到调用该功能的对象,就用this表示。
this表现形式一:当成员变量和局部变量同名的时候,为了区分,用this关键字来完成。
this表现形式二:构造函数之间的调用可以使用this关键字,后面跟上小括号。
注意:调用本类中构造函数的this语句必须定义在构造函数的第一行。因为初始化要先完成。
3、代码块。
局部代码块:可以控制变量的声明周期。
构造代码块:可以给所有对象进行初始化。
构造函数:给对应对象初始化。
静态代码块:给类进行初始化。
注意:构造代码块写法跟局部代码块写法一样,怎么区分。
四、static关键字。
1、static关键字:
1、被修饰的变量,被所有对象所共享。
2、静态随着类的加载而加载,随着类的消失而消失。
3、优先于对象存在。
4、静态成员可以直接被类名调用。
2、内存:静态成员存放在方法区中,共享区。
3、静态的使用注意事项。
1、静态方法只能调用静态成员,不能调用非静态成员。因为静态先存在。
非静态方法可以调用非静态成员,也可以掉用静态成员。
2、在静态方法中不允许存在this,super关键字。
因为静态先存在,对象后出现。
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