目录
一、什么是面向对象?
对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
1.1、面向对象概念
Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点:
1、对象具有属性和行为
2、对象具有变化的状态。
3、对象具有唯一性。
4、对象都是某个类别的实例。
5、一切皆为对象,真实世界中的所有事物都可以视为对象。
1.2、面向对象三大特征
1、封装
核心思想就是“隐藏细节”、“数据安全”,将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。所有的内容对外部不可见。
比如说一个类最简单的封装就是把属性隐藏起来,只提供 get和set 方法进行操作:
2、继承
类和类之间有些也会具有一定的关系。比方说四边形,可以分为正方形、长方形、菱形,他们不但继承了四边形的特征,也具有属于自己的特征,这就是一种继承的关系。
3、多态
多态指同一个实体同时具有多种形式。同字面意思,即一个对象在不同的情况下会有不同的体现。(主要体现在对象和方法上,在子父类中不要定义同名的属性)
二、什么是类?
类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。 (类似生活中的图纸与实物的概念。)
2.1、类的定义
类是一类事物的抽象概念,是一个模型。
2.2、类与对象
类必须通过对象才可以使用,对象的所有操作都在类中定义。
类由属性和方法组成:
属性:就相当于人的一个个的特征
方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉
一个类要想真正的进行操作,则必须依靠对象,对象的定义格式如下:
类名称 对象名称 = new 类名称() ;
如果要想访问类中的属性或方法(方法的定义),则可以依靠以下的语法形式:
访问类中的属性: 对象.属性 ;
调用类中的方法: 对象.方法(实际参数列表) ;
类必须编写在.java文件中;
一个.java文件中,可以存在N个类,但是只能存在一个public修饰的类;
java文件的文件名必须与public修饰的类名完全一直;
同一个包中不能有重名的类;
三、类与对象的关系
对象:
每个对象具有三个特点:对象的状态,对象的行为和对象的标识。
1、对象的状态用来描述对象的基本特征。
2、对象的行为用来描述对象的功能。
3、对象的标识是指对象在内存中都有一个唯一的地址值用来和其他对象区分开来。
4、类是一类事物的抽象,对象是具体的实现。
对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类: 1、Java语言最基本单位就是类,类似于类型。
2、类是一类事物的抽象。
3、可以理解为模板或者设计图纸。
类是一个模板,它描述一类对象的行为和状态
四、构造方法
4.1、构造概念
构方法是一种特殊的“成员方法”
1,构造方法作用:(1)构造出来一个类的实例 (2)对构造出来个一个类的实例(对象)初始化。
2,构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
3,主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
4,类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。
5,不能被static、final、synchronized、abstract和native修饰。
6,构造方法在初始化对象时自动执行,一般不能显式地直接调用.
当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应完成构造函数的调用。
7,构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动
但是经常将他设计为进行各种初始化活动,比如初始化对象的属性
8,构造代码块:
(1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行
(2)构造代码块和构造函数的区别:
构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化
9,自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。
如果写了一个有参的构造方法,就一定要写无参构造方法。一般情况下,我们自定义的类都要手动给出无参构造方法。
4.2、构造定义
就是类构造对象时调用的方法,主要用来实例化对象。构造方法分为无参构造方法、有参构造方法。
4.3、构造方法的重载及重载作用
构造方法也是方法,是方法就可以重载。
重载示例如下:
为什么要重载?
重载可以在实例化对象的同时为对象的属性赋值。
顺带一提,重载构造方法是最好按照参数由少到多规范排列。