面向对象编程(一)

                                                                  1.认识类和对象

1.1使用类实例化对象

类名 对象名 = new 类名( );

实例如下:Customer zhangsan = new Customer( );

还可以写成:Customer zhangsan;

            zhangsan = new Customer( );

1.2访问对象中的成员变量

通过对象名使用成员变量的最基本的方法如下:

对象名.成员变量名         例如:“zhangsan.age”表示访问对象zhangsan的成员变量age

2.认识成员函数

2.1定义和使用成员函数

1.最简单的成员函数格式如下:void函数名称( ){

                              函数内容;

                          }

调用方法为“对象名。函数名( );”

注意

在类的内部,普通的成员函数可以直接使用同一个类中的成员变量,不需要加对象名。

2.加入参数的成员函数的格式如下:

void函数名(类型1参数名1,类型2参数名2,...,类型n参数名n){

函数内容;

}

调用方法为“对象名。函数名(参数值列表);”

注意

(1)“void init(String n,String s,int a)”定义了函数init,传入三个参数。这些参数能在函数内部使用,属于局部变量,其中n、s、a又称为形式参数(简称形参)。

  1. “zhangsan.init(“张三”,”男”,25);”调用此成员函数,传入三个值给n、s、a,其中”张三” ”男” “25”又称为实际参数(简称实参)

3.带返回类型的成员函数格式如下:

返回类型 函数名称(类型1参数名1,类型2参数名2,...,类型n参数名n){

函数内容;

return和函数返回类型一致的某个变量或对象;

}

注意:

(1)“int abs(int a)”定义了函数abs,返回一个整数类型的值。

(2)“int result=c.abs(-10);”表示调用该函数,将返回值存入result变量。

(3)如果函数中途遇到return,则跳出。

(4)没有返回类型的函数也可以使用return,表示跳出该函数,但是不能return一个具体的值。

(5)在有些文献中,成员函数也称为成员方法(Method)。成员函数和成员变量等统称为成员。

2.2函数参数的传递

简单数据类型采用值传递

引用数据类型采用引用传递

2.3函数重载

在代码中定义两个名为abs的函数,在调用时系统能根据参数的不同来决定调用相应函数。但是不能盲目地将函数名定义为一样,必须满足以下条件之一:

(1)函数参数的个数不同。

(2)函数参数的个数相同,类型不同。

(3)函数参数的个数相同,类型相同,但在参数列表中出现的顺序不同。

注意

函数重载也称为静态多态。多态是面向对象编程的特征之一。多态,通俗来讲就是一个东西在不同情况下呈现不同形态。为什么是静态的呢?因为虽然函数名只有一个,但是源代码中还得根据不同参数编写多个函数。

3.认识构造函数

3.1定义和使用构造函数

构造函数也是一种函数,但是定义时必须遵守以下原则。

(1)函数名称与类的名称相同。

(2)不含返回类型。

定义了构造函数之后,在实例化对象时必须传入相应的参数列表,否则会报错。其使用方法如下。

类名  对象名 = new 类名(传给构造函数的参数列表);

注意:

(1)当一个类的对象被创建时,构造函数就会被自动调用,可以在这个函数中加入初始化工作的代码。在对象的生命周期中,构造函数只会被调用一次。

(2)构造函数可以被重载,也就是说在一个类中可以定义多个构造函数。在实例化对象时,系统根据参数的不同调用不同的构造函数。

(3)在一个类中如果没有定义构造函数,系统会自动为这个类产生一个默认的构造函数,该函数没有参数,也不做任何事情。因此,只有在没有定义构造函数时才可以通过“类名对象名=new类名( );”实例化对象。

如果用户自己定义了含有参数的构造函数,系统将不提供没人的构造函数。

4.静态变量和静态函数

4.1静态变量

注意

(1)静态变量可以通过“对象名.变量名”来访问,也可以通过“类名.变量名”来访问。一般情况下推荐用“类名.变量名”来访问,而非静态变量是不能用此方式访问的。

(2)从底层讲,静态变量在类被载入时创建,只要类存在,静态变量就存在,不管对象是否被实例化。

4.2静态变量的常见应用

(1)保存跨对象信息

(2)存储对象个数

4.3静态函数

有静态变量就有静态函数,静态变量和静态函数统称为静态成员。静态函数就是在普通函数的定义前加上关键字static。

静态函数可以通过“类名.函数名”来访问,也可以通过“对象名.函数名”来访问,推荐用前一个来访问。

注意

在静态函数调用时对象还没有创建,因此在静态函数中不能直接访问类中的非静态成员变量和成员函数,也不能使用关键字this。

4.4静态代码块

当类被载入时静态代码块被执行,且只被执行一次,静态代码块经常用来进行类属性的参初始化。

5.认识封装

5.1封装

封装是面向对象的基本特征之一。

5.2实现封装

步骤;(1)将不能暴露的成员隐藏起来,不能让其在类的外部被直接赋值。实现方法是将该成员定义为私有的,在成员定义前加上修饰符private。

(2)用公共方法来暴露对该隐藏成员的访问,可以给函数加上修饰符public,将该方法定义为公共的。

注意

(1)私有成员只能在定义它的内部被访问,在类的外部不能被访问。

(2)一般情况下,可以将成员变量定义为private的,通过public函数(方法)对其进行访问。

(3)private和public都是访问区分符。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值