面向对象笔记
面向对象笔记
一、类与对象的定义与区别:
(一)定义
对象:客观存在的实体。
类:具有相同特性和共同行为对象的集合。是人类脑海中抽 象的概念。
(二)区别
两者都是软件开发的思想,先有面向过程,然后有面向对象,为解决大型项目中,针对面向过程的不足推出了面向对象开发思想。
1、编程思路不同,面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类,属性及其方法,然后通过实例化类、执行方法来完成功能。
2、封装性:都其有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。
3,面向对象其有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象具有优势。
二、面向对象编程语言的三大特性
1、封装(隐藏);2、继承;3、多态;
三、类的声明
class 类名{
类体
}
四、存储
栈:
1、每个线程私有,不能实现线程间的共享;
2、局部变量存放在栈中;
3、栈是由系统自动分配,速度快,是一个连续的内存空间;
堆:
1、放置new出来的对象;
2、堆是一个不连续的内存空间、分配灵活、速度慢。
方法区:
1、被所有线程共享;
2、用来放置程序中永远是不变或唯一的内容。(类代码信息、静态 变量、字符串常量)。
属性(field或者成员变量)
格式:
[修饰符] 属性类型 属性名 = 默认值
方法的定义格式;
[修饰符] 方法返回值类型 方法名(形参列表){
条语句
}
对象的创建和使用
1.必须使用new关键字创建对象。
Person person = new Person();
2.使用对象(引用),成员变量来引用对象的成员变量。
3.使用对象(引用),方法(参数列表)来调用对象的方法。
peson.setAge();
4.同一类的每个对象有不同的成员变量存储空间。
5.同一类的每个对象共享该类的方法。
构造器(构造方法,constructor)
格式:
[修饰符] 类名 (形参列表){
条语句
}
要点:
通过new关键字调用
构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return.
如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果已定义则编译器不会添加!
构造器的方法名必须和类名一致!