方法(封装的一种体现)
重载(多态的一种体现)
在同一类中方法完成的功能类似时,可以使用相同的名称,并且保证方法的参有所不同,可以参数的个数,顺序,类型任意一个即可,保证方法签名唯一
重载需满足以下条件
同类
方法名必须相同
参数列表不同
ps:方法重载与返回值无关
递归(自己调用自己)
递归是一种常见的解决问题的方法,即把问题逐渐简单化.
结构
定义递归头:什么时候不调用自身,无头将陷入死循环
递归体:什么时候需要调用自身以及自身需要做什么操作
优缺点
简单是递归的有点之一,当递归调用会占用大量系统堆栈,内存耗用多,在递归调用层次多时速度比循环慢,所以使用时要谨慎
面向对象
对象(object,instance)和类(class)
对象:具体的实物(实例)
类:是对对象的抽象(模板),系统根据类的定义来造对象
类的定义
class 类名{
}
属性(field成员变量)
属性作用范围是整个类体
[修饰符] 属性类型 属性名[=默认值];
ps:对象时通过引用对其操作的
内存分析
栈
每个线程私有,不能实现线程间的共享
局部变量放置于栈中
栈是由系统自动分配,速度快,栈时一个连续的内存空间
堆
放置new出来的对象
堆时一个不连续的内存空间,分配灵活,速度慢
方法区
被所有线程共享
用来存放程序中永远不变或唯一的内容(*.class)
ps:栈执行顺序先进后出.后进先出类似枪的子弹
对象的创建和使用
创建和使用的方式
必须使用new关键字创建对象
类名 变量=new 类名();
使用对象(引用) .成员变量来引用对象的成员变量
变量.age
使用对象(引用).方法名来调用对象的方法
变量.setAge(23);
同类的每个对象有不同的成员变量存储空间
同类每个对象共享该类的方法