自学内容网 自学内容网

第五章 第一节 面向对象(什么是面向对象?Java中的类)

第五章 面向对象

1.什么是面向对象?

面向对象和面向过程是相对应的,二者都是编程思想;

1.1 面向过程

​ 解决问题时,将一个繁杂的问题分解成简单的步骤,然后一步步地去做,最后达到最终的目标。

例子:把大象装冰箱总共分几步?

1)把冰箱门打开

2)把大象装进去

3)把冰箱门关上

1.2 面向对象

​ 解决问题时,关心的是问题中涉及的对象,以及对象的行为和特征,由对象的行为组合最终解决问题。

大象装冰箱:

1)问题中涉及了哪些对象:冰箱(主体),大象(依赖)

2)分析每一种对象的行为(包括分析对象是主动还是被动)

​ 冰箱:开门,装东西,关门(都是主动的行为)

​ 大象:没有主动行为,不需要考虑(大象在装进去的时候有冰箱装东西的行为了)

3)再由对象的行为进行组合得到最终的结果

冰箱.开门

冰箱.装(大象)

冰箱.关门

2.面向对象的相关概念及具体用法
2.1 关于类,对象,行为,特征的概念

:类别,类型,class,type

​ 举例说明:冰箱是一种抽象概念,对现实世界中具有相同行为或特征的一类事物的统称。

​ 女朋友:李四(女朋友是类,李四是对象)

对象:Object,实例

​ 举例说明:买一台海尔的冰箱,这就是一台具体的冰箱,冰箱这类事物中的一个个体。

​ 对象就是现实世界中具体的一个事物

行为:对象可以做的事情(比如冰箱可以开门,关门…)

特征:对象的特点(冰箱的颜色…)

创建对象:通过一个类,创建出这个类的一个实例

对象与类的关系:类是对象的抽象描述方式,其行为:使用方法描述;其特征使用属性描述;对象是类的实体化,具体化,在Java中类是代码,对象是内存空间。

2.2 Java中的类

类是一种数据类型(本质)(引用数据类型)

类是Java中程序员自己定义的一种数据类型,自定义类型。

比如:处理学生的信息:

​ 姓名

​ 性别

​ 年龄

​ 学号

​ …

2.2.1 类的语法
修饰符  class  类名{

            类体

}

1)修饰符:限定类的使用范围和使用方式

​ 权限修饰符:public,private,protected,默认的(啥都不写)

​ static:静态的

​ final:最终的

​ abstract:抽象的

2)class关键字,表示定义一个类

3)类体:在一个类中可以写:

​ a ) 属性(也叫字段(Field)):也就是定义在类中的变量/常量,静态的/非静态的

​ b)方法Method:静态的/非静态的

​ c ) 构造方法Constructor:类的构造器,用来构造类的对象的

​ d)块Block:静态块/非静态块

​ e)类:内部类

实例:定义一个学生类:

​ 特征(使用属性描述):姓名,学号,性别,年龄…

​ 行为(使用方法描述):吃,睡,玩

具体的实现:
在这里插入图片描述

在这里插入图片描述

2.2.2 使用类

类的本质是数据类型

也就是类作为数据类型:可以用于:定义变量,定义数组,作为方法的参数,返回值类型

实践代码:

在这里插入图片描述

2.2.3.创建类的对象
变量  =  new  类名();

在这里插入图片描述

2.2.4.调用类的属性和方法
对象/变量.属性/方法();

在这里插入图片描述

2.2.5 内存机制

堆里面存的主要是数据;无论是调用属性还是调用方法都是基于当前的对象的,如果没有当前对象,就没有意义了就不能调用了。

在这里插入图片描述

再创建一个stu2对象:

在这里插入图片描述

对应的内存机制:(蓝色部分)

在这里插入图片描述

每新建一个对象,就会在堆里面开辟新的空间。对象和对象之间是没有影响的。

2.2.6 关于数组对象

在这里插入图片描述

在这里插入图片描述
在内存中的机制(有new就会开辟一块内存空间):

使用数组时,回在堆里面创建两次内存空间,一次是数组,一次是对象。[ ] 是代表创建数组,()是创建对象。

在这里插入图片描述

2.7 构造方法

构造方法就是指类创建对象的东西

构造方法不是方法,它是构造器

定义:

1)构造方法的名字,必须与类名完全相同

2)构造方法不能有返回值;

3)构造方法可以有参数列表

4)构造方法还可以重载
语法:

修饰符  类名(参数列表){

             构造方法体

}

有参构造和无参构造(也是属于构造方法的重载)
在这里插入图片描述
注意:
1)使用new创建类的对象,实际就是在调用类的构造方法

new Student( )

就是在调用Student类的无参构造方法。

2)创建对象时,可以通过传递参数选择不同的构造方法进行调用。

3)如果一个类没有定义任何的构造方法,在编译时编译器会自动地为类添加一个无参构造方法,称为默认无参构造方法。

如果类中定义了任何的构造方法,默认无参构造方法
将不会再被添加。
在这里插入图片描述


原文地址:https://blog.csdn.net/m0_72900498/article/details/142696382

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!