OOP:面向对象编程
OOP:Object Oriented Programmaing
面向对象和面向过程
1)面向过程编程思想,考虑的是
程序整体的运行流程
2)面向对象编程思想,考虑的是
如何将每个解决业务问题的程序代码
组合在一起
3)面向对象编程相较于面向过程编程
能显著的减少代码冗余
提高程序的可维护性和可扩展性
生活中的对象(东西)
1)万物皆对象
生活中是由无数对象组成的世界
而且可能有对象中包含对象的情况
2)生活中是先有对象后有类型
对象是真实存在的,可操作的
类型是一个概念,
泛指所有这个类型的对象
3)程序中的类和对象
程序中是先有类后有对象
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类:类是一个模板,它描述一类对象的行为和状态
类名 对象名=new 类名();
Person p=new Person();
栈内存中实际上保存的是其对应的堆内存空间的访问地址
类属于引用数据类型,而且从数组的使用上也可以发现,引用数据类型就是指一段堆内存空间可以同时被多个栈内存指向
从上面程序中必须明确的一点, 即一个栈内存 空间只能指向一个堆内存空间,如果想再指向其他的堆内存空间,则必须先断开已有的指向才能分配新的指向。
关于垃圾空间的释放。
Java本身提供垃圾收集机制( Garbage Collction, GC),会不定期地释放不用的内存空间,只要对象不使用了,就会等待GC释放空间。
程序中的对象包含2个方面的性质
4.1)属性
是这个对象的数据描述
4.2)方法
是这个对象的行为,功能
一个文件创建多个类的注意事项
1)public class <类名>
必须和文件名一致
所以之后出现的类不能以public开头
2)只有public开头的类中的main方法
才是程序入口
方法的重载:
1)方法的签名
方法签名=方法名+参数列表
在同一个类中
不允许出现方法签名相同的方法
2)方法重载(方法超载,overload)
方法重载的定义:
在同一个类中,方法名相同
参数列表不同的多个方法
2.1)在同一个类中(在同一个方法作用域中)
2.2)方法名相同
2.3)参数列表不同
(类型,数量,顺序)
2.4)返回值和访问修饰符无关
3)调用被重载的方法时
代码进行编译时就确定了
要运行的那个方法
称之为编译期绑定
4)方法重载的好处
在方法功能类似
只是参数不同时
可以使用相同的方法名定义方法
方便记忆和调用
5)系统中出现的方法重载
System.out.println()
Arrays.copyOf();
Arrays.sort();
访问修饰符 返回值类型 方法名(参数类型 参数名)
方法的重载只与参数的类型和个数有关