什么是对象?
在生活中,一个能够看得见的,摸得着的东西都可以称之为对象,一个对象拥有自己的属性(特征),方法(行为,功能);
例如,一台电视机,它的属性就有:颜色、型号、品牌、售价等等,它的方法有:播放电影、播放电视剧等等。这里注意说的是”一台“,或许另一台电视机的颜色与这个不同,那么这两台电视机就是两个不i同的对象。
什么是类?
讲具有相同属性和方法的对象进行抽象,就是类;
类可以理解为一类,具有相同属性和方法的对象就可以成为一类,也可以说类就是模板,对象就是成品。常见的各种汽车,就可以称之为汽车类;
什么是面向对象编程?
面向对象编程(面向对象程序设计),英文名:Object-Oriented Programming,缩写:OOP。
这是一种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码和方法。对象指的是类的实例。OPP将对象作为程序的基本单元,将程序和数据封装到对象中,目的在于提高软件的重用性、灵活性和拓展性。对象里的程序可以访问及经常修改对象相关联的数据。在OOP里,计算机程序会被设计成彼此相关的对象。
面向对象与面向过程编程:
但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,增强可维护性,所以,面向对象的开发更像是一个具备标准的开发模式。
eg:
吃饱肚子
面向过程:针对开发过程中遇到的每一个问题,进行单个编码解决
自己买菜、洗菜、炒菜、自己吃饱;
面向对象:只对结果,不管实现细节;
到饭店点餐,自己吃饱
学习面向对象其实就是学习如何在代码中使用封装、继承、多态;
在面向对象定义之中,也规定了一些基本的特征:
(1)封装:保护内部的操作不被破坏; 安全性
(2)继承:在原本的基础之上继续进行扩充; 复用性
(3)多态:在一个指定的范围之内进行概念的转换。可扩展性
对于面向对象的开发来讲也分为三个过程:
OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。
总结:面向对象最终的目的是在保证功能实现的基础上,方便后期程序的维护。
如何使用类和对象?
类的结构为:
public class 类名{
成员属性1;
成员属性2;
。
。
。
构造方法();
成员方法()1;
成员方法()2;
。
。
}
在使用对象前需要进行类的构造:具体实现例子如下:
首先进行类的构建:
然后在测试类的main函数中进行对象的构建:
对象的构建语法为:
类名 变量名 = new 类名();
至此,我们Person类的pes1、pes2对象实例就构建完成了。
在类中有一个重要的概念称为构造方法。
构造方法:就是在创建对象时,通过new关键字调用的为对象属性赋值的一种特殊函数;
构造方法的语法为:
public 类名(参数列表){
初始属性
}
构造方法的特征:
1,构造方法是一种特殊的方法,其方法名要求与类名完全相同。
2,构造方法不能有返回值。
3,构造方法通过new关键字调用。
4,在一个类中,系统会默认提供一个无参构造方法。若无其他需求则不需要额外定义无参构造器。如果需要为对象赋初值,则可以选择主动定义含参构造器。在定义了其他构造器之后,系统将不会再提供默认的无参构造器。
5,一个类中可以同时存在多个构造器。同一个类中的构造器,在进行使用时,系统会对所传入的数据的个数和数据的类型自动进行构造器的选择。
例如:
这里在同一个Person类中定义了四个不同的构造方法
这里传入不同的参数来使用四种不同的构造方法;
这里需要注意的是,调用构造方法时,需要传入的值的顺序,要与定义构造方法时的形参的顺序一致,否则将会报错,或者数据传输有误。
在类中,除了构造方法,还有成员方法又称实例方法;
成员方法的语法为:
[访问修饰符] 返回值类型 方法名([参数列表]){
方法体
return 返回值;
}
注意:
[访问修饰符] : 中括号在语法描述上表示这个部分可以省略
访问修饰符,表示定义的方法能够被访问的一个范围 。
属性/方法的访问修饰符: 总共有四个级别 public,protected,默认,private
返回值类型: 这个必须要有,即使是该方法(函数)不需要返回值;
取值:
void: 表示这个方法不需要返回结果
其他任何类型(基本类型/引用类型) : 表示方法必须要有返回值,而且返回值的类型要和定义的类型一致
方法名: 自己定义,按照标识符的规则(字母,数字下划线),要按照小驼峰命名
参数列表:可以省略,省略的时候表示这个方法不需要参数。如果有参数,那么在调用方法是必须要按照参数列表的定义传递参数。可以是各种类型的数据
方法体: 方法实现具体功能的代码部分。
返回值: 要和方法的返回值类型结合使用:
1、 如果返回值类型是void。那么该方法不能有返回值(要么没有reutrn,要么return后面不要写数据)。
2、如果返回值类型不是void,是其他类型: 那么此时方法最终一定要有返回值,而且返回的数据要和返回值类型对应。