什么是面向对象,什么又是面向过程?
- 两者都是一种编程的思想
- 面向对象:将功能封装进对象中,强调具备了功能的对象。
- 面向过程:强调的是功能行为
经典案例:把大象装入冰箱中
面向过程: 1 打开冰箱 2 把大象装入冰箱中 3 关上冰箱
强调的是打开,存储,关上这些功能行为
面向对象: 1 存在几个对象(人,大象,冰箱) 2 这些对象要有的功能是什么 3 人只需要关心他该做的
面向对象的优点
- 复杂的事情简单化(超市买东西--拿袋子装)
- 前期的良好设计,可具备很好的可扩展性
- 万事万物皆对象
类和对象
- 类
现实生活中一类具有共性事物的描述。是抽象的。如所有的人 - 对象
-
定义
类的实例化,如果创建了一个类中的多个对象,每个对象都拥有各自的一引用地址,互不干扰。 -
创建
new +构造器:
类名 对象名 = new 构造器; -
作用
调用该类的成员:属性和方法 -
对象的生命周期:Java内存管理和垃圾回收机制
1)内存管理
1 分配:由JVM分配内存空间
2 释放:由JVM提供垃圾回收机制释放
2)内存空间
1 栈(Stack):局部变量,对象的引用
2 堆(Heap):new关键字创建的对象
3 元空间:元空间实际存储于电脑硬盘(常量池,类的描述信息)
3)JVM垃圾回收机制
1 垃圾回收(GC) — 垃圾回收机制自动释放垃圾对象所占内存的机制
2 垃圾对象 — 内存中不再被使用的对象
3 机制执行 —GC自动处理,无法干预
4 System.gc(); 只能告诉JVM这个对象可以先释放掉了,但jvm亦不会立即处理
但是加快垃圾释放
5 java8中永久区已经取消,由元空间代替。元空间实际存储于电脑硬盘
类的成员
- 属 性(Field)
-
定义
类的成员变量 -
语法格式
修饰符 类型 属性名 =初始化值 ; -
分类:成员变量与局部变量
1)成员变量:在方法体外,类体内声明的变量称为成员变量。
1 实例变量(不以static修饰)
2 类变量(以static修饰)
2)局部变量:在方法体内部声明的变量称为局部变量。
1 形参(方法参数列表中定义的变量)
2方法局部变量(在方法内定义)
3 代码块局部变量(在代码块内定义) -
成员变量和局部变量的特性
1)成员变量
定义在类中,在整个类中都可以被访问。
分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。
有默认初始化值。
权限修饰符可以根据需要,选择任意一个
2)局部变量
只定义在局部范围内,如:方法内,代码块内等。
局部变量存在于栈内存中。作用的范围结束,会自动释放。
没有默认初始化值,每次必须显式初始化。
声明时不指定权限修饰符 -
成员变量和局部变量的初始化
1)成员变量
byte 、short、int ——> 0
long ——>0L
flote ——> 0.0F
double ——> 0.0
char ——> ‘\u0000’(表示为空)
boolean ——> false
引用数据类型 ——> null
2)局部变量: 创建时要直接显示赋值
- 初始化值的方式
1)默认值
2)直接显示赋值
3)构造器(构造方法)
- 方法(Method):
-
语法格式:
修饰符 返回值类型 方法名 ( 参数列表) {
功能操作语句;
[return;]
} -
方法中的参数值传递:
1)基本数据类型:当将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
<传递值>
2)引用数据类型:当将引用数据类型,作为参数传递给方法,方法运行结束后,原值会发生改变
<传递地址值>
网友评论