01.OOP:面向对象编程第一天

目录

一、面向对象和面向过程

1.区别

2.共同点:

3.面向对象和面向过程思想的总结

二、类和对象

1、什么是类和对象

2.定义类和创建对象

1.定义类

(1)属性

(2) 方法

2、创建对象

3、成员变量和局部变量

(1)区别和定义

(2)内存分配图

 3、构造方法及其重载

1、定义:

2、作用

3、命名格式

4、构造器的重载

5、构造器的注意事项

6、对象也可以作为方法参数进行传递,也可以创造为对象数组作为方法参数

4、this关键字

1、对象创建的过程

2、this的本质

3、this最常的用法:

5、实参和形参传递数据


一、面向对象和面向过程

1.区别

面向过程:事物比较简单,可以用线性的思维去解决

面向对象:事务比较复杂,使用简单的线性思维无法解决问题

2.共同点:

(1)面向过程和面向对象都是解决实际问题的一种思维方式

(2)二者相辅相成,并不是对立的。解决复杂的问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式处理。

3.面向对象和面向过程思想的总结

  1. 都是解决问题的思维方式,都是代码组织的方式。
  2. 面向过程是一种“执行者思维”,解决简单问题可以使用面向过程。
  3. 面向对象是一种“设计者思维”,解决复杂、需要协作的问题可以使用面向对象。
  4. 面向对象离不开面向过程:
    1. 宏观上:通过面向对象进行整体设计
    2. 微观上:执行和处理数据,仍然是面向过程。 
 面向对象面向君,不负代码不负卿

二、类和对象

1、什么是类和对象

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。

我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。 

再比如月饼模具是类,使用月饼模具制作的一个个月饼就是对象。

总结:

1.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

2.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。

2.定义类和创建对象

1.定义类

一个类是由三部分组成,属性,方法和构造器

(1)属性

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

数据类型

默认值

整型

0

浮点型

0.0

字符型

'\u0000'

布尔型

false

所有引用类型

null

属性定义格式:

[修饰符]  属性类型  属性名 = [默认值] ;











(2) 方法

方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。

方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

方法定义格式:

[修饰符]  方法返回值类型  方法名(形参列表) {

   // n条语句

}

void代表没有返回值;
方法的作用:重用代码,封装功能,便于修改

2、创建对象

        new关键字产生对象

类名 对象名=new 类名;

3、成员变量和局部变量

(1)区别和定义

在类中定义的变量称为成员变量,可在整个类中使用。

在方法中定义的变量称为局部变量,只能在此方法中使用。

两个的区别主要表现在以下几方面:

成员变量

局部变量

代码中位置不同

类中定义的变量

方法或代码块中定义的变量

内存中位置不同

堆内存

栈内存

是否有默认值

没有

代码作用范围(空间)

当前类的方法

当前一个方法或代码块

作用时间不同

当前对象从创建到销毁

定义变量到所属方法或代码块执行完毕

(2)内存分配图

 3、构造方法及其重载

1、定义:

        构造方法(constructor)也叫构造器,用于对象的初始化构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

2、作用

        初始化对象(类中的成员变量)

3、命名格式

        [修饰符] 类名(形参列表){

               //n条语句

        }

4、构造器的重载

        构造器可以进行重载

        我们在写构造器时,一般写两个就够了,一个是无参的,一个是有全部参数的

        创建构造器的快捷方式为:右键单击 Generate (这一步的快捷键为Alt+Insert),然后选择Constructor 即可

5、构造器的注意事项

  1. 构造器的方法名必须和类名一致!
  2. 构造器通过new关键字调用!!
  3. 构造器不需要写void和return。
  4. 如果我们没有定义构造方法,则编译器会自动定义一个无参的构造方法。如果已定义则编译器不会自动添加构造器!

6、对象也可以作为方法参数进行传递,也可以创造为对象数组作为方法参数

4、this关键字

1、对象创建的过程

构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四步:

1. 分配对象空间,并将对象成员变量初始化为0或空

2. 执行属性值的显示初始化

3. 执行构造方法

4. 返回对象的地址给相关的变量

2、this的本质

this的本质就是“创建好的对象的地址”!  由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象” 。

3、this最常的用法:

  1. 调用成员变量:区分成员变量和局部变量,如果成员变量和局部变量同名,this必须书写,用来区分两者;如果没有同名的局部变量,this可以不写,如:this.成员变量=局部变量
  2. 调用成员方法:这种情况下,this可以省略
  3. 调用构造方法:使用this关键字进行构造器之间的调用,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。如:this(参数,参数,...)
  4. this不能用于static方法中。

5、实参和形参传递数据

实参给形参传递数据有两种方式

1、按值传递   参数为基本数据类型

2、按引用传递 参数为引用类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值