-
面向对象 & 面向过程
-
面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
-
面向对象: 就是把现实中的事物都抽象为“对象”。每个对象是唯一的,且都可以拥有它的属性与行为。我们就可以通过调用这些对象的方法、属性去解决问题。
2.类 和 对象
-
对象 对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)组成的封装体,描述客观事物的一个实体,是构成系统的基本单元。
-
类 类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。
-
类和对象的关系
类是对象的模板,对象是类的具体实例。
-
类的定义
-
类的成员
-
成员变量
-
类变量(static)
-
实例变量
-
-
成员方法
-
类方法(static)
-
实例方法
-
-
成员类/接口
-
-
静态初始化、
-
静态初始化,可以有多个。在类第一次被加载的时候执行, 只执行一次
-
-
实例初始化
-
实例初始化,在实例化的时候执行。每次实例化都会执行
-
-
构造函数
-
-
static 作用
使用static修饰的属性称为静态属性或类变量,没有使用static修饰的属性称为实例变量。使用static修饰的属性属于类,不属于具体的某个对象。类属性在类首次被加载时初始化,即没有创建对象,类属性也是存在的。
static 表示静态的,可以修饰字段和方法。 被static修饰的字段或方法属于类,通过类名调用. 也可以被 对象调用 【但是不推荐】 没有 static 修饰的属于对象,通过对象来调用
static 成员可以相互调用(使用), non-static(instance)可以互相调用,也可以调用 static 的
static 成员属于类,多个对象共享。
-
实例(non-static/instance)
-
构造重载
构造方法(函数)是一个特殊的方法。创建对象(实例化)对象时调用, 可用来初始化类(实例成员)
[修饰符] 类名([参数列表]){ 方法体 }
-
实例化的过程
-
第一次加载类时进行静态初始化(只执行一次)
-
每次创建对象时,先进行实例初始化再执行构造 ps: 实例初始化的位置会影响实例变量最终的值(Java代码优化)
-
执行构造
-
-
遮蔽(shadowing)jls 6.4.1
-
this 解决遮蔽问题
-
className.staticField 解决遮蔽问题
-
局部变量和成员变量名相同时,优先使用局部变量. 遮蔽(shadowing) 局部名 a 遮蔽了成员变量 a
-