第五章 第一节 面向对象(什么是面向对象?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)!