类和对象
类就像一个汽车图纸,他是一个形象的,概念上的定义,而对象就是依据汽车图纸真正造成进去的汽车。
对象是类的实例,类的一个产物。
一。对象存在两个局部:属性和行为
例如:汽车的设计蕴含两局部:
属性:色彩,品牌,价格,长度,宽度。
行为:行驶,刹车,减速。
二. 把汽车图纸映射到 java 类外面,也是有两局部形成:
成员变量 (属性):定义在类上面办法之外的变量。
成员办法(行为):去掉 static 关键字,就是一个成员办法。
什么是面向对象?
面向对象:
一. 将性能封装进对象,强调具备了性能的对象。
JAVA 外面,有对象用对象,没有对象,那么就发明对象,用对象,之后还要保护各种对象之间的关系。
二. 类 (class) 和对象 (object) 是面向对象办法的外围概念。类是对一类事物形容,是形象的、概念上的定义;对象是理论存在的该类事物的每个个体,因此也称实例(instance)。
三. 什么是面向过程?
c 语言:看中的是过程的开发
在开发一个程序的时候,看中的是两头的过程,每一个过程步骤都去要本人去做。
四. 什么是面向对象?
java;c#;js….. 看中是类的设计
当开发一个程序的时候,不看重具体的过程,看中是谁能帮我去实现这件事件,找人 (对象) 帮我去做
后期去设计类的时候比较复杂,然而前期的复用性扩展性比拟好。
五. 面向过程和面向对象的优缺点:
1. 面向过程:
长处:面向过程的性能比面向对象高,因为面向对象在实例化时,开销比拟大;
毛病:维护性、扩展性没有面向对象好;
2. 面向对象:
维护性、扩展性好;
毛病:性能低,开销大;
六. 例子:
// 人把大象装进冰箱
面向过程:1)关上冰箱 2)把大象装到冰箱 3)敞开冰箱门
面向对象:人{关上(冰箱){冰箱. 关上();}
操作(大象){大象. 进入冰箱的办法();}
敞开(冰箱){冰箱. 敞开()}
}
冰箱类{关上();
敞开();}
大象类{进入冰箱的办法();
}
面对对象的三大特色:
1. 封装;
2. 继承;
3. 多态;
一. 封装
将代码和其操作的数据捆绑在一起,避免内部对数据和代码的烦扰。数据和代码以封装的模式链接起来就形成了一个对象。
暗藏外部性能的具体实现,只保留和内部交换数据的接口。就好比电视机,用一个外壳把外部零部件及控制电路封装起来,只提供按钮或者遥控器接口供人应用。
二. 继承
一个对象取得另一个对象的属性。通常一个对象能够从它的父类继承所有的通用属性。继承最大的益处是实现代码的高效重用,也更加形象的形容事实世界中对象的关系。
三. 多态
即同一个动作作用不同的对象产生不同的具体行为。
成员变量和局部变量的相同点和不同点:
一. 相同点:
1. 遵循变量申明的格局:
数据类型 变量名 = 初始化值;
2. 都有作用域
二. 不同点
1. 申明(定义)的地位不同:
成员变量:申明在类里,办法外。
局部变量:申明在办法内,办法的形参局部,代码块内。
2. 作用域不同:
成员变量作用类外部。
局部变量作用在办法之内。
3. 默认值不同:
成员变量默认值。
局部变量没有默认值。
4. 修饰符:
成员变量的修饰符有四个:public private protected 缺省。
局部变量没有修饰符,与所在的办法修饰符雷同。
5. 内存中的地位不同:
成员变量保留在堆外面。
局部变量保留在栈外面。
变量的分类:
1)依照数据类型的不同:根本数据类型(8 种)& 援用数据类型。
2)依照申明的地位的不同:成员变量 & 局部变量。
怎么调用属性和行为?
一. 怎么去创立一个对象呢?
- 类名 对象名 =new 类名();
二. 怎么去调用属性和行为呢?
- 对象名. 属性名。
- 如果属性没有赋值,将会有一个默认值,因为他在堆外面。
- 怎么应用办法:
- 对象名. 办法名;
参数传递
根本类型传值,对象类型传地址
一. 按值传递意味着当将一个参数传递给一个函数时,函数接管的是原始值的一个正本。因而,如果函数批改了该参数,仅扭转正本,而原始值放弃不变。
二. 按援用传递意味着当将一个参数传递给一个函数时,函数接管的是原始值的内存地址,而不是值的正本。因而,如果函数批改了该参数,调用代码中的原始值也随之扭转。