面向对象思想
面向对象是基于面向过程的思想 * * 面向过程:强调每一 个功能的步骤 * 面向对象:强调的是对象,由对象去调用功能 * 面向对象特征:封装、继承、多态。 *
面向对象特点:
*1.更符合人们的思考习惯 * 2.将复杂的事情简单化 * 3.将我们从执行者变成指挥者
构造方法:
给对象的数据进行初始化 * * 格式: * 1.方法名和类名相同 * 2.没有返回值类型,连void都没有 * 3.没有具体返回值 * * 如何调用 * new 构造方法(…) * * 如果我们不提供构造方法,系统会给一个默认的构造方法 * 如果我们提供了构造方法,系统不再为我们提供默认的构造方法
静态代码快:
类中成员位置,被static修饰
随类加载而加载,只加载一次
构造代码块:
在类中成员的位置在构造方法之前执行,先执行构造代码块,再执行构造方法
类边变量与实例变量
类变量就是静态变量位置:
类中方法外内存区域:方法区
生命周期:随类加载而加载
特点:无论创建多少对象,变量仅在方法区中存在一份实例变量非静态变量
位置:类中方法外
内存区域:堆内存
生命周期:随对象创建而加载
特点:每创建一个对象就存在一个实例变量
static 静态用来修饰成员变量成员方法:
特点:1.被所有对象共享2.可以使用类名调用3.静态加载有先与对象4.随着类的加载而加载
注意事项:静态成员只能访问静态成员非静态成员可以访问非静态静态成员,也可以访问静态成员。
静态方法:可以访问静态成员变量不可以访问非静态成员变量可以访问静态成员方法不可以访问非静态成员方法
非静态方法:可以访问静态成员变量可以访问非静态成员变量可以访问静态成员方法可以访问非静态成员方法
优点:1.节省空间缺点:局限性太强了(只能访问静态)
类与对象:
- 类与对象
- 1.编程为了什么?
- 为了把现实生活中的事物信息化,模拟出来
- 2.现实生活描述事物
- 属性:描述信息
- 行为:事物能做什么
- 3.java最基础单位是类,class
- 成员变量:属性
- 成员方法:行为
- 4.成员变量:类中方法外
- 成员方法:和上学期定义方法差不多,去掉static
- 5.类与对象
- 我们是通过类来描述现实生活中的事物
- 类:一组具有相关的属性和行为的集合
- 对象:事物的具体体现
- 举例:
- 类:学生
- 对象:李俊杰
-
- 如何使用一个类?
- 使用一个类就是使用它的成员
- 想要使用一个类的成员,就必须现有它的对象
- 如何拥有一个对象?
- 没有我们就创建一个 new
- 创建对象
- 格式:类名 对象名 = new 类名();
- 如何调用类的成员?
- 成员变量:对象名.变量名
- 成员方法:对象名.方法名(…);
-
- 成员变量和局部变量的区别
- 1.位置不同
- 成员变量:类中方法外
- 局部变量:方法中或者方法声明上
- 2.内存中位置不同
- 成员变量:堆里面
- 局部变量:栈里面
- 3.生命周期不同
- 成员变量:随对象创建而存在,随对象消失而消失
- 局部变量:随方法的调用而存在,随方法调用完成而消失
- 4.初始化值不同
- 成员变量:有默认值
- 局部变量:没有默认值,必须先赋值,再使用
-
- private:私有的
- 一个修饰符
- 修饰成员变量,成员方法
- 被private修饰的成员只能被本类访问
- 属性私有化,通过公共的get/set方法去访问
- 封装
- 面向对象3大特征之一
- 原则
- 将不需要对外提供的内容隐藏起来
- 属性隐藏,提供公共的访问方式
- 好处
- 提高安全性
- 代码复用性
-
- 局部变量隐藏成员变量(就近原则)
- 关键字this
- this所在类的对象引用
- 方法被谁调用,this就代表那个对象
- 使用场景
- 局部变量隐藏成员变量
-
- 构造方法
- 给对象的数据进行初始化
- 格式:
- 1.方法名和类名相同
- 2.没有返回值类型,连void都没有
- 3.没有具体返回值
- 如何调用
- new 构造方法(…)
- 如果我们不提供构造方法,系统会给一个默认的构造方法
- 如果我们提供了构造方法,系统不再为我们提供默认的构造方法
-
- 变量
- 成员变量
- 类变量
- 实例变量
- 局部变量
- 实例==对象
- 类变量与实例变量
- 类变量就是静态成员变量
- 位置:类中方法外
- 内存区域:方法区
- 生命周期:随类加载而加载
- 特点:无论创建多少对象,类变量仅在方法区中存在一份
- 实例变量非静态成员变量
- 位置:类中方法外
- 内存区域:堆内存
- 生命周期:随对象创建而加载
- 特点:每创建一个对象就存在一个实例变量
-
- 代码块
- 局部代码块:存在于方法中,控制变量生命周期
-
- 构造代码块:在类中成员的位置
- 在构造方法之前执行,先执行构造代码块,再执行构造方法
-
- 静态代码块:
- 类中成员位置,被static修饰
- 随类加载而加载,只加载一次