Java学习记录-面向对象(封装)

121 阅读3分钟

封装(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.静态函数

如果该函数要访问类里面非静态成员就不能用静态修饰,如果不需要就将该函数定义为静态的。

静态代码块随着类的加载而执行。而且只执行一次。