封装(Encapsulation)
定义:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;提高安全性。
原则:
private:是一个权限修饰符,用于修饰成员;私有的内容仅在本类中有效。私有仅仅是封装的一种体现而已。
构造函数
特点:
- 1.函数名与类名相同
- 2.不用定义返回值类型
- 3.没有具体的返回值
作用:给对象进行初始化。
注意:
- 1.默认构造函数的特点
- 2.多个构造函数是以重载的形式存在的
一个类中如果没有定义过构造函数,会有一个默认的空参数的构造函数,如果定义了构造函数原空参函数就会自动消失。
一般函数和构造函数什么区别?
构造函数:
- 对象创建时,就会调用与之对应的构造函数,对对象进行初始化;
- 对象创建时,会调用只调用一次。
一般函数:
- 对象创建后,需要该函数功能时才调用;
- 对象创建后,可以被调用多次。
什么时侯定义构造函数呢?
描述事物时,该事物已存在就具备的一些内容,这些内容就定义在构造函数中。
关键字this
为了让局部变量有意义,如用name不用n
那么
- 当成员变量和局部变量同名时,可以使用关键字this来区分。
Person(String name) {
this.name = name;
}
this:代表当前对象,简单说,哪个对象调用当前this所在函数,就代表哪个对象
- this可以用来在构造函数中调用构造函数(构造函数用参数列表区分)形式为this(参数);对this调用必须是构造函数中的第一个语句。
关键字static
特点:
- 是一个修饰符,修饰成员;
- 被static修饰的成员被所有对象共享;
- 优先于对象存在,因为static的成员随着类加载就已经存在了;
- 修饰的成员多了一种调用方式,可以直接被类名调用,格式:类名.静态成员;
- 修饰的数据是共享数据,对象中的存储的是特有数据。
成员变量和静态变量的区别:
成员变量:
- 1.随着对象的创建而存在,随着对象的被回收而释放;
- 2.只能被对象调用;
- 3.被称为实例变量;
- 4.数据存储在堆内存的对象中,也叫对象的特有数据。
静态变量:
- 1.随着类的加载而存在,随着类的消失而消失;
- 2.可以被对象调用,也能被类调用;
- 3.被称为类变量;
- 4.数据存储在方法区(的静态区),也叫对象的共享数据。
静态变量使用注意事项:
- 1.静态方法只能访问静态成员;
- 2.静态方法中不可以使用this,super关键字;
- 3.主函数是静态的
静态什么时候用?
- 1.静态变量
当分析对象中所具备的成员变量的值都是相同的,这是这个成员变量就可以被静态修饰
- 2.静态函数
如果该函数要访问类里面非静态成员就不能用静态修饰,如果不需要就将该函数定义为静态的。