类和对象

类就像一个汽车图纸,他是一个抽象的,概念上的定义,而对象就是根据汽车图纸真正造成出来的汽车。
对象是类的实例,类的一个产物。

一。对象存在两个部分:属性和行为
例如:汽车的设计包含两部分:
属性:颜色,品牌,价格,长度,宽度。
行为:行驶,刹车,加速。

二.把汽车图纸映射到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 类名();

二.怎么去调用属性和行为呢?

  • 对象名.属性名。
  • 如果属性没有赋值,将会有一个默认值,因为他在堆里面。
  • 怎么使用方法:
  • 对象名.方法名;

参数传递

基本类型传值,对象类型传地址

一.按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。

二.按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。


柚子嘞
4 声望1 粉丝

do it!!!