初识面向对象编程Java中类,对象和构造方法
面向对象编程是一种创建程序的方法,本着唯一性,分类性,继承性三大特征,类和对象是其基础和核心。对象是对现实世界实体的模拟,由现实实体的过程或信息来定义,一个对象可以看作是一个把数据(属性)和程序(方法)封装在一起的实体;一个类定义了一组对象(类是对象的抽象定义),类实际上是对某种类型的对象定义变量和方法的原型,可以把类看作理论上的对象,为对象提供蓝图,但在实际中不占内存。
类和对象:
既然是对现实世界实体的模拟,所以相对来说,现实生活中所看到的一个具体的物体或一个具体的事物就是一个对象,例如某一个人,某一台电脑…生活中描述这些对象我们可以从对象的特征,行为,功能等方面进行,而这特征在Java中被称为属性,行为和功能被称为方法,这两个部分就构成了类,程序中类就是根据现实生活中对象的特征和方法按程序中类的 固定格式进行的抽象定义。Java中定义的类就是一种数据类型,是模板,是基本单位。
定义类的格式如下:
public class 类名{ /*在创建文件时尽量将文件名以大写字母开头,因为类名必须与文件名一致,且类名首字母必须大写*/
//定义属性
public 数据类型 属性名;
//定义方法
public 返回值类型 方法名(数据类型 参数名,......){ }
}
以及实例化对象:**
调用方法时,静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员,如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量,也就是实例化对象 ;在普通成员方法中,则可以直接访问同类的非静态变量和静态变量;静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法
实例化对象格式如下:
类名 对象名 = new 构造方法( 参数值......);
方法:
分为普通方法和构造方法,前面所说的根据对象的行为进行定义的方法叫做普通方法,还有一种方法叫构造方法,构造方法不能定义返回值类型,且构造方法名须与类名一致,在Java中会默认一个无参的构造方法,所以实例化对象时可以直接使用,但当自定义了构造方法后,默认的构造方法会被覆盖(即使实例化对象时不添加参数,也无法使用),只能使用自定义的构造方法,用构造方法可以实例化对象和给属性赋初始值。
构造方法格式:
public 构造方法名(数据类型 参数名,......) { }
//注意:行为只有普通方法,对于对象才有构造方法一说
当方法名完全一致但要实现的功能不同时,往往需要方法重载,实现方法重载,首先方法名要完全一致,其次方法所带的参数个数,参数类型,参数顺序至少要有一个不同,普通方法和构造方法都有可能需要重载,对于普通方法一般用于同一功能实现不同操作,例如:拿碗装不同的东西,吃不同的食物,对于构造方法,例如贾宝玉出生时带玉,林黛玉出生时不带玉。通过方法所带参数的不同区别所调用的方法。
构造方法有着给属性赋值的功能,但当参数名与属性名完全一致时,Java采用就近原则,为区分这种情况,可以使用this关键字区分
1.this.属性名
加上“this.”表示属性,不加的表示参数;
2.this(参数值,…)
调用当前对应参数的构造方法
3.this.普通方法名(参数值,…)
调用当前对象中的普通方法
this关键字是对当前对象自身的引用。