第六章面向对象编程总结

本文主要介绍了Java中的面向对象编程,包括对象、类的概念,以及面向对象编程的三大特性:封装、继承和多态。详细讲解了成员变量、成员方法、构造方法、局部变量、对象的创建与销毁、this关键字、静态变量和静态方法等内容,是Java初学者掌握面向对象编程的基础教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.1面向对象概述

在程序开发初期人们使用结构化开发语言,但随着软件的规模越来越庞大,结构化语言的弊端也逐渐暴露出来,开发周期被无休止地拖延,产品的质量也不尽如人意,结构化语言已经不再适合当前的软件开发。这时人们开始将另一种开发思想引入程序中,即面向对象的开发思想。面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及行为,以解决这些对象面临的一些实际问题,这样就在程序开发中引入了面向对象设计的概念,面向对象设计实质上就是对现实世界的对象进行建模操作。

6.1.1 对象

在现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、书桌、计算机、高楼大厦等。

(1)首先可以从这一问题中抽象出对象,这里抽象出的对象为大雁。

(2)然后识别这个对象的属性。对象具备的属性都是静态属性,如大雁有一对翅膀、黑色的羽毛等。这些属性如图6.1所示。
(3)接着识别这个对象的动态行为,即这只大雁可以进行的动作,如飞行、觅食等,这些行为都是这个对象基于其属性而具有的动作。

(4)识别出这个对象的属性和行为后,这个对象就被定义完成了,然后可以根据这只大雁具有的特性制定这只大雁要从北方飞向南方的具体方案以解决问题。

6.1.2 类

不能将所谓的一个事物描述成一类事物,有一只鸟不能称为鸟类,如果需要对同一类事物统称,就不得不说明类这个概念.

类是封装对象属性和行为的载体。反过来说,具有相同属性和行为的一类实体被称为类。

6.1.3 面向对象程序设计的特点

面向对象程序设计具有以下特点:封装性。继承性。多态性。
1.封装
封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。

2.继承
类与类之间同样具有关系,如一个百货公司类与销售员类相联系,类之间的这种关系被称为关联。

3.多态
上面介绍了继承,了解了父类和子类,其实将父类对象应用于子类的特征就是多态,多态的实现并不依赖具体类,而是依赖于抽象类和接口。

6.2 类与对象

java中定义类使用class关键字,语法如下:

class   类名称{

//类的成员变量

//类的成员方法

}

6.2.1 成员变量

在Java中对象的属性也称为成员变量,成员变量的定义与普通变量的定义一样,语法如下:

数据类型   变量名称  [  =值] ;

6.2.2 成员方法

定义成员方法的语法格式如下:

[权限修饰符][返回值类型]方法名([参数类型 参数名])[throws 异常类型]{

…//方法体

return 返回值;

例6.1代码:

运行结果:

 例6.2代码:

运行结果: 

例6.3代码: 

运行结果: 

例6.4代码:

运行结果: 

6.2.3 构造方法

构造方法的特点如下:

(1)构造方法没有返回类型,也不能定义为 void。

(2)构造方法的名称要与本类的名称相同。

(3)构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员。

 例6.5代码:

运行结果: 

6.2.4 局变量

如果在成员方法内定义一个变量,那么这个变量被称为局部变量。
局部变量在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。

6.2.5 局部变量的有效范围

 可以将局部变量的有效范围称为变量的作用域局部变量的有效范围从该变量的声明开始到该变量的结束为止

6.2.6 对象的创建

在6.1节中曾经介绍过对象,对象可以认为是在一类事物中抽象出某一个特例,可以通过这个特例来处理这类事物出现的问题。在Java语言中通过new操作符来创建对象。前文在讲解构造法时介绍过,每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程准确地说,可以在Java 语言中使用 new 操作符调用构造方法创建对象。

语法如下:

Test test=new Test();

Test test=new Test("a"); y

Test:类名。test:创建 Test类对象。 new:创建对象操作符。 a:构造方法的参数。

test 对象被创建出来时,就是一个对象的引用,这个引用在内存中为对象分配了存储空间,6.2.3节中介绍过,可以在构造方法中初始化成员变量,当创建对象时,自动调用构造方法,也就是说在 Java 语言中初始化与创建是被捆绑在一起的。

例6.6代码:

运行结果:

6.2.7 访问对象的属性和行为

用户使用 new 操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。前文已经提到过,对象的属性和行为在类中是通过类成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也相应地获取了对象的属性和行为。

例6.7代码:

运行结果:

6.2.8 对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址会被回收。在其他语言中需要手动回收废弃的对象,但是Java拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器将回收无用的但占用内存的资源。
在谈到垃圾回收机制之前,首先需要了解何种对象会被 Java 虚拟机视为垃圾。主要包括以下两种情况:

(1)对象引用超过其作用范围,这个对象将被视为垃圾。

(2)将对象赋值为null。

6.2.9 this 关键字

例6.8代码:

运行结果:

例6.9代码:

运行结果:

例6.10代码: 

运行结果:

6.3.1 静态变量 

很多时候,不同的类之间需要对同一个变量进行操作,比如一个水池,同时打开入水口和出水,进水和出水这两个动作会同时影响到池中的水量,此时池中的水量就可以认为是一个共享的变量。在Java 程序中,把共享的变量用 static 修饰,该变量就是静态变量。

可以在本类或其他类使用类名和“.”运算符调用静态变量。

语法如下:

类名.静态类成员

 例6.11代码:

运行结果: 

例6.12代码:

 运行结果:

6.3.2 静态常量 

有时,在处理问题时会需要两个类共享一个数据常量。例如,在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量。这时没有必要在两个类中同对创建PI这个常量,因为这样系统会将这两个不在同一个类中的常量分配到不同的内存空间中,浪了系统资源。为了解决这个问题,可以将这个常量设置为静态的。PI常量在内存中被共享的布局。

 例6.13代码:

运行结果:

6.3.3 静态方法

如果想要使用类中的成员方法,需要先将这个类进行实例化,但有些时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,此时就可以使用静态方法。调用类的静态方法,无需创建类的对象。

语法如下:

类名.静态方法()

 例6.14代码:

 运行结果:

6.3.4 静态代码块

在类中除成员方法之外,用static 修饰代码区域可以称之为静态代码块。定义一块静态代码块,可以完成类的初始化操作,在类声明时就会运行。
语法如下:

public class StaticTest { static {

//此处编辑执行语句

}

}

例6.15代码:

运行结果:

6.4类的主方法

主方法是类的入口点,它定义了程序从何处开始住方法提供对程序流向的控制,Java编译器通过主方法来执行程序。

例6.16代码:

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值