电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

对象语言范文

来源:火烈鸟作者:开心麻花2025-11-191

对象语言范文(精选10篇)

对象语言 第1篇

一、身体语言的含义和作用

身体语言是由人的面部表情、身体姿势、肢体动作和体位变化而构成的一个图象符号系统, 是人们在长期交际中形成的一种约定俗成的自然符号。身体语言紧密地伴随有声语言进行交际, 它介入有声语言交际的全过程 (包括信息的发生、传播和接收) , 形成了一个全方位的立体交际系统。美国心理学专家艾伯特梅热比经研究表明:在交谈中传达的信息, 身体语言的影响占55%, 语音语调占38%, 而交谈内容只占7%。人们对语言的运用是自觉的, 说话可以口是心非, 而身体语言则较难控制, 因此更容易反映人们的真实想法。

有声语言以声波的形式传播, 而身体语言则以视觉的形式传播, 两者密切配合来共同表情达意, 例如看病时, 同时用话语和手势表达不舒服的部位;皱着眉、掩着鼻子说:“臭死了!”等等, 从而达到行为与谈话内容的统一性。

人们的身体就像一个无法关闭的传送器, 时刻传送着自身的心情和状态。语言通常用来表达正在思考的东西或概念, 而身体语言则善于传递情绪和感受。就采访而言, 身体语言能反映出采访对象的态度、情绪和性格特点等, 为记者提供线索, 便于记者及时调整采访策略, 保障采访顺利进行。

二、身体语言在采访中的作用

(一) 反映对方对待采访的态度

在采访活动中, 采访对象被索取信息情况的对象, 接受采访还要付出时间、精力甚至承担风险。更何况大多数情况下, 采访对象与记者素不相识, 缺乏人情基础。因此, 想要取得采访对象的配合是有一定难度的。有的年轻记者忽视采访前的沟通预热, 一见面就迫不及待地抛出问题, 让对方一下子难以进入状态。采访不能急于求成, 见面后首先应表明来意, 以求得配合。此时的第一要务是观察对方对待采访的态度, 从而有针对性地实施采访策略。

通常, 采访对象握手有力, 寒暄主动, 招待热情, 与记者目光接触频繁, 这些动作透露出对方积极配合的信息, 记者可以开门见山地展开访问, 不必做过多铺垫。有的采访对象说话不够流畅连贯, 神情紧张, 手足无措, 垂头含胸, 显得无所适从, 这大多是由于不明确采访意图或者缺乏自信造成的, 记者应说明来意, 及时鼓励, 耐心引导。有的采访对象握手时只象征性的触碰指尖, 就座时与记者相隔较远, 回答问题漫不经心, 东张西望, 目光闪躲, 这就表示对方持应付态度, 记者要主动出击, 寻求双方的心理共同点, 赢得对方的好感和支持。而有的采访对象不主动招呼记者, 甚至免去了握手的基本礼仪, 将记者名片胡乱放置, 对提问流露出不满情绪, 回答时极不耐烦, 这些无疑都透露着对方的排斥态度。这时, 摆在记者面前的将是一场心理战, 记者只有想法转变对方的看法, 才能打开采访局面。

(二) 反映对方的情绪

心理学研究表明, 人体面部的眼睛、嘴、颊、眉、额是表达情感的关键部位, 其中眼神是反映真实心态最为有效的线索。2004年3月25日, 英国首相布莱尔与利比亚总统卡扎菲进行会谈, 被媒体誉为“破冰之旅”。然而, 有媒体却登出《卡扎菲没把布莱尔放在眼里》的报道, 原来, 卡扎菲在会谈现场眼睛总是望着别处, 跷着二郎腿摇来晃去, 这些身体语言透露了卡扎菲潜意识中的抵触情绪。

基于某些原因, 采访对象可能会隐瞒、夸大或虚构新闻事实, 因此, 记者要善于抓住身体语言线索, 识别信息的真实性。通常, 用手遮嘴或摸嘴唇、摸鼻子、擦眼睛、抓挠耳朵和脖子、拉拽衣领、手脸转向别处、掩饰性的咳嗽这七种动作是撒谎时的常见手势。

(三) 反映对方的性格特点

不同性格的人对待采访的态度和叙述表达各有其特点, 因而应采取不同的采访策略。采访对象的表情和动作能透露出其性格上的某些特征, 为记者提供判断线索。一般来说, 表情丰富、动作幅度较大、说话语速较快的人往往性格开朗, 乐于交谈, 容易配合采访;而面部表情平淡、动作幅度较小, 说话声音小语速慢、举止拘谨的人通常性格内敛, 这类人大多不善交际, 羞于表达, 需要记者耐心引导;表情动作幅度大、声音洪亮、说话直接的人通常性格豪爽刚烈, 记者可以充分运用“自己人效应”来赢得信任, 营造“酒逢知己千杯少”的良好氛围。当采访双方有立场或意见上的分歧时, 记者应尽量避免与其发生正面冲突, 以免造成“话不投机半句多”的尴尬场面。

对象语言 第2篇

一、名词解释 抽象 封装 消息 【问题解答】

面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题

(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法; 而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法中的基本模块是类。(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个,可以多选)

(1)面向对象程序设计着重于(B)的设计。

A.对象B.类C.算法D.数据

(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C)。

A.抽象 B.继承 C.封装 D.多态(3)在面向对象程序设计中,类通过(D)与外界发生关系。

A.对象 B.类 C.消息 D.接口(4)面向对象程序设计中,对象与对象之间的通信机制是(C)。

A.对象 B.类 C.消息 D.接口(5)关于C++与C语言的关系的描述中,(D)是错误的。

A.C语言是C++的一个子集 B.C语言与C++是兼容的 C.C++对C语言进行了一些改进 D.C++和C语言都是面向对象的

【结果分析】

C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。

(6)面向对象的程序设计将数据结构与(A)放在一起,作为一个相互依存、不可分割的整体来处理。

A.算法 B.信息 C.数据隐藏 D.数据抽象(7)下面(A)不是面向对象系统所包含的要素。

A.重载 B.对象 C.类 D.继承 【结果分析】

面向对象=对象+类+继承+消息+多态(8)下面说法正确的是(BC)。

A.将数据结构和算法臵于同一个函数内,即为数据封装

B.一个类通过继承可以获得另一个类的特性 C.面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序

D.同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性 【结果分析】

面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。将数据结构和算法臵于同一个类内,即为数据封装。同一消息为不同的对象接受时,产生的行为可能是不一样的,这称为多态性。(9)下面说法正确的是(AD)。

A.对象是计算机内存中的一块区域,它可以存放代码和数据

B.对象实际是功能相对独立的一段程序

C.各个对象间的数据可以共享是对象的一大优点 D.在面向对象的程序中,对象之间只能通过消息相互通信 【结果分析】

对象是计算机内存中的一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。对象之间存在各种联系,但它们之间只能通过消息进行通信。

四、判断题

(1)在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。(√)(2)C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。(×)【结果分析】

C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。

(3)面向对象程序设计中的消息应该包含“如何做”的信息。(×)【结果分析】

消息是面向对象程序设计用来描述对象之间通信的机制。向对象“发送消息”只需告诉对象做什么,对象根据这个消息决定如何做。

(4)一个消息只能产生特定的响应效果。(×)【结果分析】

当一个对象发出消息时,由于接收对象的类型可能不同,所以,它们可能做出不同的反应。这样,一个消息可以产生不同的响应效果,这种现象叫做多态。

(5)类的设计和类的继承机制实现了软件模块的可重用性。(√)

(6)C++语言和Java语言均不是一个纯正的面向对象的程序设计的语言。(×)【结果分析】

Java语言是一个纯正的面向对象的程序设计语言。(7)学习C++语言是学习面向对象的程序设计方法的唯一途径。(×)【结果分析】

程序设计方法是独立于具体程序设计语言的一种技术,学习C++语言是学习面向对象程序设计方法的重要途径之一。

(8)在C++语言中,类是支持数据封装的工具。(√)

五、简答题

(1)什么是结构化程序设计方法?它有哪些优点和缺点? 【问题解答】

结构化程序设计方法着眼于系统要实现的功能,从系统的输入输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。首先是数据安全性问题。由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。其次是可

维护性及可重用性差。它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。每一种相对于老问题的新方法都要带来额外的开销。另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。(2)什么是面向对象程序设计方法?它有哪些优点? 【问题解答】

面向对象的程序设计方法中,将程序设计为一组相互协作的对象而不是一组相互协作的函数。在程序中,属性用数据表示,用来描述对象静态特征; 行为用程序代码实现,用来描述对象动态特征。可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。对象之间存在各种联系,它们之间通过消息进行通信。程序可表示为: 程序=对象+消息

在面向对象程序设计中应着重于类的设计。类正是面向对象语言的基本程序模块,通过类的设计来完成实体的建模任务。类通过一个简单的外部接口与外界发生关系。一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。不必预先确定消息产生的顺序,更符合客观世界的实际。并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。

(3)结构化程序设计方法与面向对象程序设计方法在对待数据结构和算法关系上有 什么不同? 【问题解答】

结构化程序设计方法中,把数据结构和算法分离为相互独立的实体; 而在面向对象程序设计中,数据结构和算法封装在一起,结合成一个独立的单位,即对象,并尽可能隐蔽对象的内部细节。对象的私有属性只能由这个对象的行为来读取和修改,与外部的联系通过公有行为充当外部接口。

第2章 从C到C++

一、名词解释

引用内联函数重载函数 【问题解答】

所谓引用就是给对象取一个别名,使用该别名可以存取该对象。换句话说是使新对象和原对象共用一个地址。

内联函数是使用inline关键字声明的函数。重载函数指在同一个作用域内名字相同而参数不同的函数。重载函数通常用来对具有相似行为而数据类型或数据个数不同的操作提供—个通用的名称。

二、填空题

(1)一般情况下,用C++语言编写的程序是由函数加上类组成的。

(2)C++有两种注释符号,一种是//,另一种是 /*……*/。

(3)使用C++风格的输入输出,在程序中必须包含头文件“iostream”。

(4)cin是预定义的标准输入流对象,>>是输入操作符,也称提取运算符。

(5)cout是预定义的标准输出流对象,<<是输出操作符,也称插入运算符。

(6)指针的值是它所指向那个对象的地址值。指针的类型是它所指向对象的类型。指针的内容便是它所指向对象的值。

(7)C++使用运算符 & 来定义一个引用,对引用的存取都是对它所引用的对象的存取。(8)当一个函数调用出现在函数定义之前时,必须先用函数原型对函数进行声明。

(9)C++有值传递和引用传递两种参数传递机制。

(10)使用关键字inline声明的函数称为内联函数。

(11)运算符new用于进行动态内存分配,运算符delete用于释放动态分配的内存。(12)下面程序的输出结果为x=10,y=10; x=100,y=100。#include using namespace std;int main(){int x=10,&y=x;cout<<“x=”<

int *p=&y;*p=100;

cout<<“x=”<

三、选择题(至少选一个,可以多选)(1)在整型指针变量p2、p3的定义中,错误的是(A)。

A.int p1,*p2,p3;B.int*p2,p1,*p3;C.int p1,*p2=&p1,*p3;D.int*p2,p1,*p3=&p1;【结果分析】

指针定义的具体格式如下所示: <类型> *<指针名1>,*<指针名2>,…;(2)若有定义“double xx=3.14,*pp=&xx; ”,则*pp等价于(C)。A.&xxB.*xxC.3.14D.xx 【结果分析】

pp指向xx所在的内存单元,这样*pp和xx等价。(3)下面对引用的描述中(C)是错误的。A.引用是某个变量或对象的别名 B.建立引用时,要对它初始化

C.对引用初始化可以使用任意类型的变量 D.引用与其代表的对象具有相同的地址 【结果分析】

所谓引用就是给对象取一个别名,使用该别名可以存取该对象,所以对引用初始化必须使用同类型的变量。

(4)函数没有返回值的时候,应该选择(A)的函数类型。

A.void B.int C.不确定 D.float(5)在函数的定义格式中,下面各组成部分中,(D)是可以省略的。

A.函数名 B.函数体 C.返回值类型 D.函数参数 【结果分析】

函数的定义可以缺省形式参数,此时称为无参函数。

(6)对重载的函数来说,下面叙述不正确的是(D)。

A.参数的类型不同 B.参数的顺序不同 C.参数的个数不同

D.参数的个数、类型、顺序都相同,但函数的返回值类型不同 【结果分析】

对重载的函数来说,编译系统将根据函数参数的类型和个数来判断使用哪一个函数,所以重载函数参数的个数、类型、顺序不能都相同。

(7)下列有关设臵函数参数默认值的描述中,(D)是正确的。

A.对设臵函数参数默认值的顺序没有任何规定 B.函数具有一个参数时不能设臵默认值 C.默认参数要设臵在函数的原型中,而不能设臵在函数的定义语句中

D.设臵默认参数可使用表达式,但表达式中不可用局部变量 【结果分析】

在C++中,在函数原型中可以为一个或多个参数指定默认值。对函数参数设臵默认值要注意以下几点。

◆若没有声明函数原型,参数的默认值可在函数定义的头部进行设臵,否则必须在函数原型中进行设臵。

◆在一个指定了默认值的参数右边不能出现没有指定默认值的参数。

◆设臵默认参数可使用表达式,但表达式中不可用局部变量。

(8)下面说法正确的是(BC)。A.所有的函数都可以说明为内联函数

B.具有循环语句、switch语句的函数不能说明为内联函数

C.使用内联函数,可以加快程序执行的速度,但会增加程序代码的大小

D.使用内联函数,可以减小程序代码大小,但使程序执行的速度减慢 【结果分析】

内联函数主要是解决程序的运行效率问题。在程序编译时,编译系统将程序中出现内联函数调用的地方用函数体进行替换,进而减少了程序运行的时间,但会增加程序代码的大小。它是以空间换取时间,因此内联函数适用于功能不太复杂,但要求被频繁调用的函数。

(9)一个函数功能不太复杂,但要求被频繁调用,应选用(A)。

A.内联函数 B.重载函数 C.递归函数 D.嵌套函数

(10)C++对C语言做了很多改进,下列描述中

使得C语言发生了质变,即从面向过程变成面向对象的是(D)。A.增加了一些新的运算符

B.允许函数重载,并允许设臵默认参数 C.规定函数说明必须用原型 D.引进了类和对象的概念 【结果分析】

面向对象=对象+类+继承+消息+多态

四、判断题

(1)C++程序中,不得使用没有定义或说明的变量。(√)

(2)使用const说明常量时,可以不必指出类型。(×)【结果分析】

如果用const 定义的是一个整型常量,则类型说明符int可以省略。

(3)引用被创建时可以用任意变量进行初始化。(×)【结果分析】

对引用初始化必须使用同类型的变量。

(4)一个返回引用的调用函数可以作为左值。(√)

(5)函数可以没有参数,也可以没有返回值。(√)

(6)没有参数的两个函数是不能重载的。(√)(7)函数可设臵默认参数,但不允许将一个函数的所有参数都设臵为默认参数。(×)【结果分析】

函数可设臵默认参数,且允许将一个函数的所有参数都设臵为默认参数。

(8)运算符new分配的空间由运算符delete释放。(√)

五、简答题

(1)名字空间的用途是什么? 【问题解答】

名字空间用来防止命名的冲突。(2)引用有何用处? 【问题解答】

除了独立引用外,在C++程序中,引用的主要用途是用作函数参数和函数的返回值。

(3)比较值调用和引用调用的相同点与不同点。【问题解答】

在值调用机制中,作为实参的表达式的值被复制到由对应的形参名所标识的一个对象中,作为形参的初始值。函数体对形参的访问、修改都是在这个标识对象上操作的,与实参无关,即数据的传递是单向的。

使用引用作函数的形参时,调用函数的实参要用变量名。实参传递给形参,相当于在被调用函数中使用了实参的别名。于是,在被调用函数中对形参的操作实质是对实参的直接操作,即数据的传递是双向的。

(4)内联函数有什么作用?它有哪些特点? 【问题解答】

内联函数是使用inline关键字声明的函数。在程序编译时,编译系统将程序中出现内联函数调用的地方用函数体进行替换,进而减少了程序运行的时间。

使用内联函数应注意以下几点。◆递归函数不能定义为内联函数。

◆内联函数一般适合于不含有switch和while等复杂的结构且只有1~5条语句的小函数,否则编译系统将该函数视为普通函数。

◆内联函数只能先定义后使用,否则编译系统也将该函数视为普通函数。

◆对内联函数也不能进行异常接口声明。(5)函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗? 【问题解答】

不必一致。所有的参数是根据位臵和类型而不是名字来区分的。

(6)重载函数时通过什么来区分? 【问题解答】

编译系统将根据函数参数的类型和个数来判断使用哪一个函数。

六、程序分析题(写出程序的输出结果,并分析结果)

#include using namespace std;int main(){int num=50;int& ref=num;ref=ref+10;cout<<“num=”<

【输出结果】 num=60 ref=100 【问题分析】

本题主要考查引用的含义。【结果分析】

程序首先定义一个int类型的对象num,并给它赋初始值50。然后又定义了一个int类型的引用ref,并将它和num相联系。这样,无论是对num还是对ref进行操作,实际上都是对那个一开始放着50的物理单元的内容进行操作。

七、程序设计题

写出一个完整的C++程序,使用系统函数pow(x,y)计算xy的值,注意包含头文件cmath。【问题分析】

本题主要考查简单的输入输出和标准库函数的调用方法。【解题思路】

① 由于要用到系统函数pow(x,y),所以要包含头文件cmath。

② 要计算xy的值,首先必须知道x和y的值。为了程序的通用性,最好通过交互的方式输入x和y的值。【参考程序】 // xt2_1.cpp #include #include using namespace std;int main(){float x,y;

cout<<“please input 2 floats to x,y:”;cin>>x>>y;

float z=pow(x,y);

cout<<“pow(”<

please input 2 floats to x,y:3.1 2 pow(3.1,2)=9.61 第3章 类 与 对 象

一、填空题

(1)类定义中关键字private、public和protected以后的成员的访问权限分别是私有、公有和保护。如果没有使用关键字,则所有成员默认定义为private权限。具有public访问权限的数据成员才能被不属于该类的函数所直接访问。(2)定义成员函数时,运算符“∷”是作用域运算符,“MyClass∷”用于表明其后的成员函数是在“MyClass类”中说明的。

(3)在程序运行时,通过为对象分配内存来创建对象。在创建对象时,使用类作为样板,故称对象为类的实例。

(4)假定Dc是一个类,则执行“Dc a[10],b(2)”语句时,系统自动调用该类构造函数的次数为11。【结果分析】

创建10个数组元素需调用构造函数10次,创建对象b需调用构造函数1次,所以系统自动调用该类构造函数的总次数为11。

(5)对于任意一个类,析构函数的个数最多为1个。

(6)delete运算符通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。(7)C++程序的内存格局通常分为4个区: 数据区、代码区、栈区和堆区。

(8)数据定义为全局变量,破坏了数据的 封装性; 较好的解决办法是将所要共享的数据定义为类的 静态成员。

(9)静态数据成员和静态成员函数可由 任意访问权限许可的函数访问。

(10)友元函数和 友元类统称为友元。(11)友元的正确使用能提高程序的效率,但破坏了类的封装性和数据的隐蔽性。

(12)若需要把一个类A定义为一个类B的友元类,则应在类B的定义中加入一条语句: friend class A。

二、选择题(至少选一个,可以多选)(1)以下不属于类访问权限的是(B)。A.public B.staticC.protectedD.private 【结果分析】

类的访问权限有public、protected 和private。(2)有关类的说法不正确的是(BC)。A.类是一种用户自定义的数据类型

B.只有类的成员函数才能访问类的私有数据成员 C.在类中,如不做权限说明,所有的数据成员都是公有的

D.在类中,如不做权限说明,所有的数据成员都是私有的 【结果分析】

类是一种用户自定义的数据类型,类中成员均具有一种访问权限。关键字public、protected 和private以后的成员的访问权限分别是公有、保护和私有的,所有成员默认定义为private的。私有成员是被隐藏的数据,只有该类的成员函数或友元函数才可以访问它。

(3)在类定义的外部,可以被任意函数访问的成员有(C)。

A.所有类成员 B.private或protected的类成员

C.public的类成员 D.public或private的类成员 【结果分析】

类是一种用户自定义的数据类型,类中成员均具有一种访问权限。公有成员定义了类的外部接口。私有成员是被隐藏的数据,只有该类的成员函数或友元函数才可以引用它。保护成员具有公有成员和私有成员的双重性质,可以被该类或派生类的成员函数或友元函数引用。可见在类定义的外部,可以被任意函数访问的成员是public的类成员。(4)关于类和对象的说法(C)是错误的。A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类 C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相似 【结果分析】

C++语言的类就是一种用户自己定义的数据类型,类和对象的关系就相当于基本数据类型与它的变量的关系,所以任何一个对象只能属于一个具体的类,但一个类可以有多个对象。

(5)设MClass是一个类,dd是它的一个对象,pp是指向dd的指针,cc是dd的引用,则对成员的访问,对象dd可以通过(B)进行,指针pp可以通过(D)进行,引用cc可以通过(B)进行。

A.∷ B..C.& D.->

(6)关于成员函数的说法中不正确的是(C)。A.成员函数可以无返回值 B.成员函数可以重载 C.成员函数一定是内联函数 D.成员函数可以设定参数的默认值 【结果分析】

与普通函数不同的是,成员函数是属于某个类的。成员函数的实现,可以放在类体内,也可以放在类体外。在类体外实现的成员函数不再是内联函数。(7)下面对构造函数的不正确描述是(B)。A.系统可以提供默认的构造函数

B.构造函数可以有参数,所以也可以有返回值 C.构造函数可以重载 D.构造函数可以设臵默认参数 【结果分析】

构造函数不能指定返回类型,即使是void类型也不可以,当然不可能有返回值。

(8)假定A是一个类,那么执行语句“A a,b(3),*p; ”调用了(B)次构造函数。A.1

B.2

C.3 D.4 【结果分析】

声明指针是不会调用构造函数的。

(9)下面对析构函数的正确描述是(AC)。A.系统可以提供默认的析构函数 B.析构函数必须由用户定义 C.析构函数没有参数 D.析构函数可以设臵默认参数 【结果分析】

析构函数的作用是在对象消失时执行一项清理任务。如果一个类中没有定义析构函数,系统将自动生成一个默认析构函数。析构函数没有参数,当然不可能设臵默认参数。

(10)类的析构函数是(D)时被调用的。A.类创建 B.创建对象 C.引用对象 D.释放对象

(11)创建一个类的对象时,系统自动调用(B); 撤销对象时,系统自动调用(C)。

A.成员函数 B.构造函数 C.析构函数 D.复制构造函数

(12)通常拷贝构造函数的参数是(C)。A.某个对象名 B.某个对象的成员名

C.某个对象的引用名 D.某个对象的指针名

(13)关于this指针的说法正确的是(B)。

A.this指针必须显式说明B.当创建一个对象后,this指针就指向该对象

C.成员函数拥有this指针D.静态成员函数拥有this指针。【结果分析】

this指针是由C++编译器自动产生且较常用的一个隐含对象指针,它不能被显式声明。当创建一个对象时,this指针就初始化指向该对象。但只有非静态成员函数才拥有this指针,并通过该指针来处理对象。

(14)下列关于子对象的描述中,(B)是错误的。

A.子对象是类的一种数据成员,它是另一个类的对象

B.子对象可以是自身类的对象

C.对子对象的初始化要包含在该类的构造函数中 D.一个类中能含有多个子对象作其成员 【结果分析】

子对象不可以是自身类的对象。

(15)对new运算符的下列描述中,(B)是错误的。

A.它可以动态创建对象和对象数组 B.用它创建对象数组时必须指定初始值 C.用它创建对象时要调用构造函数

D.用它创建的对象数组可以使用运算符delete来一次释放 【结果分析】

使用运算符new创建对象数组的格式如下:

new <类型说明符> [<算术表达式>]

其中,<算术表达式>给出数组的大小,后面不能再跟构造函数参数,所以用它创建对象数组时不能指

定初始值。

(16)对delete运算符的下列描述中,(D)是错误的。

A.用它可以释放用new运算符创建的对象和对象数组

B.用它释放一个对象时,它作用于一个new所返回的指针

C.用它释放一个对象数组时,它作用的指针名前须加下标运算符[ ]

D.用它可一次释放用new运算符创建的多个对象 【结果分析】 用delete一次只能释放用new创建的1个对象,但可释放一个对象数组。

(17)关于静态数据成员,下面叙述不正确的是(C)。

A.使用静态数据成员,实际上是为了消除全局变量

B.可以使用“对象名.静态成员”或者“类名∷静态成员”来访问静态数据成员

C.静态数据成员只能在静态成员函数中引用 D.所有对象的静态数据成员占用同一内存单元 【结果分析】

静态数据成员可以在静态成员函数中引用,也可以在非静态成员函数中引用。

(18)对静态数据成员的不正确描述是(CD)。A.静态成员不属于对象,是类的共享成员 B.静态数据成员要在类外定义和初始化 C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针

D.只有静态成员函数可以操作静态数据成员 【结果分析】

this指针是一个局部量,局部于某个对象,而静态成员函数是属于整个类而不是某个对象,它没有this指针。静态成员函数和非静态成员函数均可操作静态数据成员。

(19)下面的选项中,静态成员函数不能直接访问的是(D)。

A.静态数据成员 B.静态成员函数

C.类以外的函数和数据 D.非静态数据成员 【结果分析】

由于静态成员函数没有this指针,它只能直接访问该类的静态数据成员、静态成员函数和类以外的函数和数据,访问类中的非静态数据成员必须通过参数传递方式得到对象名,然后通过对象名来访问。

(20)在类的定义中,引入友元的原因是(A)。A.提高效率 B.深化使用类的封装性

C.提高程序的可读性 D.提高数据的隐蔽性 【结果分析】

友元的作用主要是为了提高效率和方便编程,但友元破坏了类的封装性和隐蔽性,使用时要权衡利

弊。

(21)友元类的声明方法是(A)。

A.friend class<类名>; B.youyuan class<类名>;

C.class friend<类名>; D.friends class<类名>;

(22)下面对友元的错误描述是(D)。A.关键字friend用于声明友元

B.一个类中的成员函数可以是另一个类的友元 C.友元函数访问对象的成员不受访问特性影响 D.友元函数通过this指针访问对象成员 【结果分析】

友元函数是一个放在类中的普通函数,它没有this指针。

(23)下面选项中,(C)不是类的成员函数。A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数

三、简答题

(1)类与对象有什么关系? 【问题解答】

类是一种用户自己定义的数据类型,和其他数据类型不同的是,组成这种类型的不仅可以有数据,而且可以有对数据进行操作的函数。程序员可以使用这个新类型在程序中声明新的变量,具有类类型的变量称为对象。创建对象时,类被用做样板,对象称为类的实例。

(2)类定义的一般形式是什么?其成员有哪几种访问权限? 【问题解答】 定义类一般形式为:

class类名{ public:

<公有数据和函数>

protected:

<保护数据和函数>

private:

<私有数据和函数> };

访问权限共有3种: 分别是公有(public)、保护(protected)和私有(private)。

(3)类的实例化是指创建类的对象还是定义类? 【问题解答】 指创建类的对象。

(4)什么是this指针?它的主要作用是什么? 【问题解答】

this指针是C++语言为成员函数提供的一个隐含对象指针,它不能被显式声明。this指针是一个局部量,局部于某个对象。不同的对象调用同一个成员函数时,编译器根据this指针来确定应该引用哪一个对象的数据成员。

(5)什么叫做拷贝构造函数?拷贝构造函数何时被调用? 【问题解答】

拷贝构造函数是一种特殊的构造函数,它的作用是用一个已经存在的对象去初始化另一个对象。为了保证所引用的对象不被修改,通常把引用参数声明为const参数。

在以下3种情况下,拷贝构造函数都会被自动调用: ◆当用类的一个对象去初始化该类的另一个对象时;

◆当函数的形参是类的对象,进行形参和实参结合时;

◆当函数的返回值是类的对象,函数执行完成返回调用者时。

四、程序分析题(写出程序的输出结果,并分析结果)(1)

#include

using namespace std;

class Test { private: int num;

public:

Test();// 默认构造函数

Test(int n);// 带一个参数构造函数

};

Test∷Test()

{

cout<<“Init defa”<

Test∷Test(int n)

{

cout<<“Init”<<“ ”<

int main()

{

Test x[2];// 语句1

Test y(15);// 语句2

return 0;}

【输出结果】

Init defa

Init defa Init 15

【问题分析】

本题主要考查构造函数的调用时机和构造函数的匹配问题。【要点提示】

构造函数在创建对象时被自动调用,具体调用哪个构造函数将由编译系统根据重载函数的匹配原则来确定。【结果分析】

① 程序声明了2个对象x和y,类中有2个构造函数。

② 程序首先执行语句1,创建对象x,调用默认构造函数。由于对象x是对象数组,每个数组元素被创建时都要调用构造函数,所以默认构造函数被调用了2次,输出第1、2行结果。程序接着执行语句2,创建对象y,调用带一个参数的构造函数,输出第3行结果。(2)

#include

using namespace std;class Xx { private: int num;public:

Xx(int x){num=x;} // 构造函数

~Xx(){cout<<“dst ”<

};

int main()

{

Xx w(5);// 语句1

cout<<“Exit main”<

return 0;}

【输出结果】

Exit main dst 5

【问题分析】

本题主要考查析构函数的调用时机。【要点提示】

析构函数在释放对象时被自动调用。【结果分析】

① 程序声明了一个对象w。

② 程序首先执行语句1,创建对象w,调用构造函数,num得到初值5。程序接着执行语句2,输出第1行结果。当程序结束时,释放对象w,析构函数被调用,输出第2行结果。

(3)将例3.10中的Whole类如下修改,其他部分不变,写出输出结果。

class Whole { public:

Whole(int i);// Whole的有参构造函数

Whole(){};// Whole的无参构造函数

~Whole();// Whole的析构函数

private:

Part p1;// 子对象1

Part p2;// 子对象2

Part p3;// 子对象3 };

Whole∷Whole(int i):p2(i),p1(){

cout<<“Constructor of Whole”<

Whole∷~Whole()

{

cout<<“Destructor of Whole”<

【输出结果】

Default constructor of Part

Constructor of Part,3

Default constructor of Part

Constructor of Whole

Destructor of Whole

Destructor of Part,0

Destructor of Part,3

Destructor of Part,0

【问题分析】

本题主要考查子对象初始化的方法和含有子对象时构造函数和析构函数的调用顺序。【要点提示】

◆当建立X类的对象时,先调用子对象的构造函数,初始化子对象,然后才执行X类的构造函数,初始化X类中的其他成员。

◆对子对象构造函数的调用顺序取决于这些子对象在类中的说明顺序,与它们在成员初始化列表中给出的顺序无关。

◆如果X类的构造函数没有给出成员初始化列表,表明子对象将使用默认构造函数进行初始化。◆析构函数的调用顺序与构造函数的调用顺序正好相反。【结果分析】

程序的Whole类中出现了类Part的3个对象p1、p2和p3,作为该类的数据成员,则p1、p2和p3被称为子对象。当建立Whole类的对象w时,子对象p1、p2和p3被建立,相应的构造函数被执行。由于p1在Whole类中先说明,所以先执行它所使用的构造函数,即类Part的默认构造函数,接着p2执行它所使用的有参构造函数,紧接着初始化p3,由于Whole类构造函数的成员初始化列表中没有子对象p3进行初始化的选项,所以执行类Part的默认构造函数,当所有子对象被构造完之后,对象w的构造函数才被执行,从而得到前4行输出结果,而后4行是执行相应析构函数的输出结果。(4)

#include

using namespace std;

class Book { public:

Book(int w);

static int sumnum;

private:

int num;};

Book∷Book(int w)

{ num=w;

sumnum-=w;}

int Book∷sumnum=120;// 语句1

int main()

{

Book b1(20);// 语句2

Book b2(70);// 语句3

cout<

return 0;}

【输出结果】

【问题分析】

本题主要考查“在类的范围内所有对象共享静态成员的数据”的含义。【结果分析】

程序中语句1对静态成员sumnum进行初始化,sumnum得到初值120。执行语句2时,调用构造函数,sumnum变为100。接着语句3,再调用构造函数,sumnum变为30。

五、程序设计题

(1)声明一个Circle类,有数据成员radius(半

径)、成员函数area(),计算圆的面积,构造一个Circle的对象进行测试。【问题分析】

本题主要考查类定义的形式、对象成员访问和对象初始化的方法。要求理解类和构造函数的真正含义,特别注意如何将客观事物的属性和行为抽象为类的成员。【解题思路】

① 题目中已给出了类的基本部分,需要增加一个构造函数来初始化数据成员radius。

② 为了程序的通用性,圆的半径由键盘输入。【参考程序】

// xt3_1.cpp

对象语言 第3篇

关键词:VB.NET;面向对象编程;排课系统设计

中图分类号:TP311文献标识码:A文章编号:1007-9599 (2013) 06-0000-02

1引言

排课问题是一所学校的教学及其他活动的基准。我国的高等教育事业的不断发展,通常情况下,各大高校将分配到本校的计算机排课系统提交到院校的教务部,由负责的数据工作人员录入电脑。这种最基本的排课系统,只能在一定程度上提高效率。因此,计算机系统研究人员也在不断探索更先进的计算机技术,从而使教务人员从复杂的任务中解放出来,提高老师的教学备课时间有效地利用教学资源,而且还提高教学管理的质量和教育管理的工作效率。如何减少教务工作者的工作强度,更有效地利用人力和物力资源,如何管理和利用好数据信息,已经成为当前人们关注的主要问题。

VB就是Visual Basic 的简称,它是一种可视化编程语言,功能包括应用程序、编写代码以及用户界面设计。Visual Basic6.0中改变程序的机制,是对传统意义上的主程序的改造,它是通过子程序驱动。作为面向对象编程语言,代码和数据相结合,大大提高了程序设计的效率,当前程序员只需要编写传统上程序员函数代码中的一部分。用户在使用时,也大大简化,只需知道程序的功能,至于它是如何工作的就不必知道了。

2编程语言Visual Basic.NET概述

开发数据库系统的首选语言是Visual Basic.NET,通常被简称为VB.NET,是基于NET框架的面向对象的编程语言。VB.NET是可以用来创建多种程序的编程机制,包括Windows应用程序、网络服务和网络程序、智能设备等,并且支持面向对象。

Visual Basic.NET和现在所知的开发工具完全不同,Visual Basic.NET具有强大的网络功能。其一是VB.NET中有它将是DCOM的取代者;其二是VB.NET中还有Web Forms,它代表了一个一个的Web页面。它的特点包括,作用广泛,容易掌握,使用也十分方面,拥有支持可视化继承的窗口板块设计器,程序采用标准化界面,真正支持面向对象和继承性。

3排课系统需求分析

3.1用户需求分析

班级信息有所在教室、所在教室上课班级的个数、班级学委的联系方式、班级专业编号;课程信息有班级专业编号、每学期总课时数目、每周节数以及是否分单双周上课、任课教师基本信息;教师信息包括手机号或其他联系方式、教师所上课程名称等;时间信息包括所上课程是第几周、第几节以及是否需要临时补课等。每门课程都有自己的期末考核办法,可以是书面作业,也可以是社会实践;每门课程可以规定禁止安排上课时间,也可以指定教师。

每个教室属于一个教学区域、教室名称、教室类型。为了考虑节约教学资源,根据教学班人数来安排合适容量的教室。同时,在同一时间每个教室只能安排某一教学班的授课。

3.2排课系统功能分析

排课系统首先需要实现系统初始化,包括设定教学区域、校区、学年学期、学期起始周次等。此外还有信息管理功能的维护,包括院系专业基本信息、基本信息、教师基本信息、教学班基本信息、班级基本信息、课程基本信息、学生基本信息及自动导入和手动录入教室基本信息。

其次是对于某些特殊情况,比如放长假之前需要补课,又比如任课老师要出差无法按时上课,这时就需要进行手动预排课。此种情况下,班级负责人就需要去上报情况,跟教务管理人员回报需要变动的教学计划,提前查看近期空教室的情况,推迟课程,重新排课。此时,需要考虑对下次授课时间的设定以及对教室容纳量有没有特殊的要求等进行排课,然后教务人员及时录入,并挂在网站上。

再次是网上查询课表、课表打印功能。排课系统提供互联网查询功能,进行计算机排课结束后,要确保学生和任课老师能够在网上查询本学年的课程安排情况,学生能够在网上打印输出自己班级的课表,教务人员可以进行简单的调课和数据修改,还可以查询各种类型课表。

此外还包括用户管理系统和数据备份与恢复。对不同级别的用户根据不同的情况设置不同的访问权限,用户必须先通过身份认证后才能进入系统,进而进行权限范围内的其他操作。计算机系统排课还可以实现排课系统设计中数据库内的信息安全,包括将数据库中的重要数据进行备份、从备份文件中恢复错误删除掉的数据等等。

4排课系统模块设计

排课系统是各大高校每学年开学前排课的工具,排课系统的作用在于它可以方便快捷地生成课表,同时可以储存本学年的课表文档。根据排课系统的需求,结合各个院系班级的情况以及任课老师的分配,由于录入数据比较庞大,因此需要在系统中装载数据模块,完成了这个预备工作后在开始执行程序语言运行。排课系统需要涵盖班级、教师、用户管理多个模块,而且需要在每一个大的功能模块下分派数目不等的子模块,以此来减少教务人员工作的难度,同时也可以方便用户随时在互联网上查询或下载课表。

4.1基本信息设置模块

(1)班级设置模块。“班级设置”模块负责维护班级信息。班级信息设置模块包括班级所在院系,班级每学年课程节数,班级学生人数,班级班主任基本情况等。

(2)课程设置模块。“课程设置”模块负责维护学校的课程信息,课程信息设置项包括专业课程名称,课程每学年安排多少个课时,每周有多少节,是否分单双周上课,任课教师情况等。

(3)教师设置模块。计算机系统对教师设置模块的设计主要解决教师信息维护的问题,包括任课老师的姓名、电话、邮箱等基本信息,以及任课时间与地点的统计。此版块的功能同样可以根据需要添加或是删除信息等。

4.2用户管理设置模块

用户管理设置板块是编写用户的基本信息,包括用户身份认证、名称、类别、密码等。用户管理模块的作用是保证用户信息添加、删除、修改的维护工作,此外用户管理要对对不同用户权限做出审查,同时,判断该用户是对数据库的访问权限达到限制额,这样做的目的是保证用户在使用过程中的信息安全。

用户管理是对用户信息进行添加、修改、删除和查看,并对用户信息的这些方面进行维护。基本操作流程:首先,点击添加新用户,填写用户信息点击提交,添加新用户成功。其次,删除选择要删除的用户,点击确定,删除用户。再次,修改用户信息,点击修改用户信息,选择要修改的用户,点击确定,提交修改。

5结论

高校各个学年开课之前必然需要排好课表,排课任务重要并且复杂,是高校教务管理工作的难题。排课的目的在于保证学生上课有合适的地点,老师有互不冲突的教学时间,从而使每学期的教学工作能够有秩序的展开。在计算机系统广泛应用之前,处理数据以及管理排课日程由教务人员手工操作,任务繁琐,容易出错,出错之后难以及时更改,造成各种麻烦,严重影响教学效率。面向对象编程语言VB.NET,不仅十分轻松的完成编写任务,在代码输入上也大大简化了工作程序,并且这种语言完全面向对象,代码维护方便容易,解决原先不能及时更改错误的难题。本文的主要工作是基于面向对象编程语言VB.NET,以设计高校课程安排管理系统的需求为目的,设计并实现了包括教室安排、班级管理、课程设置、教师设置、用户管理四个功能模块的高校排课管理系统,该系统的实现有利于提高工作效率,实现排课系统管理的信息化和标准。

参考文献:

[1]李英杰.VB.NET2005程序设计实例教程[M].天津:天津大学出版社,2008,11.

[2]郭瑞军,王松.Visual Basic.NET数据库开发实例精粹[M].北京:电子工业出版社,2006(5):34-59.

[3]孙雪莲,冯毅夫.基于B/S模式下的高校食堂管理系统设计[M].吉林师范大学学报(自然科学版),2005,11.

[4]李春葆.VB.NET 2005程序设计教程[M].北京:清华大学出版社,2009,2.

[5]龚辉锋,赵玉意,秦立公.基于VB.6与Excel的物流软件的开发构想中国管理信息化[J].2008,12.

浅谈语言学的两个对象—语言与思维 第4篇

语言学的产生不是一朝一夕的事, 它是在一个特定的历史阶段产生, 而它的发展和对语言学的认识, 却是在很多理论的基础上得以确立的。20世纪初, 索绪尔的关于符号学和结构主义的理论, 明确了语言的本质。到了20世纪50年代, 美国语言学家乔姆斯基提出了转换生成语法, 把结构主义推向了一个全新的阶段。他们的理论, 在语言学界的产生了深远的影响。随着语言学的不断发展, 相关学者对语言的研究和分析的节奏也在不断加快。语言和思维的本质及相互关系也逐渐引起相关专家的重视。

二、语言的内涵

(一) 语言的自然性

语言如果只是简单的发出声音, 并不能作为语言来看待。人作为高级动物, 具有相当的思维, 通过思维的加工, 声音才变成语言, 这是人与动物的区别。所以在语言的自然性方面, 我们认为语言是人自然产生的, 但是是在具有思维的前提下产生的。语言离开思维, 就不能作为语言, 只能作为声音。语言的自然性有其客观性, 在自然的基础上, 语言通过思维, 来主宰人类的认识, 并影响着人们对事物的认识和了解。

(二) 语言的历史性

语言不仅忠实的记录了一个民族的历史文化, 而且还是这个民族生活的现实写照。相对于自然性来讲, 语言的历史性是社会发展的必然, 当社会发展到一定阶段, 语言的发展必然会遇到一些瓶颈, 这时思维就会活跃起来, 她讲语言与历史的发展结合起来, 形成具有一定历史性的语言, 从而为在特定历史阶段的语言发展提供一个交流平台。语言的历史性也带来很多专业的发展。回到起点是为了更好的回顾历史, 从而为语言的历史性的研究, 找出更好的规律。语言历史性:一是所指的是特定的事物, 二是所指事物的包含的精神层面的含义。

(三) 语言的社会性

语言的社会性强调语言的通用性, 她是一个工具, 人的交流是离不开语言的。

没有语言的存在, 人的交流将会很困难。如果我们只将语言作为交流思想的智力工具, 就不能全面了解语言的实质。作为对语言的研究, 我们首先要了解三个相互抗衡的理论。第一, 语言之所以存在, 是为了表达思想。第二, 语言之所以存在, 是为了掩盖思想。根据索绪尔的研究, 我们可以看出:言语是个人的东西, 是个人的行为, 个人始终是言语的主体。语言具有很强的社会性, 个人对于语言只能接受, 却不能改造和创造她, 她是一个社会产物, 存在于社会成员之中。语言在概念上一般概括为相同言语的总和, 是一个普遍现象。情感与语言的结合, 形成了情感语言, 这是社会学语言的具体体现, 并且在生活中得到进一步升华。

三、思维的实质

(一) 思维的产生

思维如何产生?又是如何工作的?这是我们研究思维与语言关系必须解决的问题之一。个体思维通过言语显示出来, 每个词语符号都获得一个大致明确的思想内容, 人们要“理解”一个词必须预先动一番脑筋, 对外部世界进行分解和联系, 从而给予心理一个定位, 进行思维。例如, 我们经常使用某一符号, 从而使人们的精力集中到某一个共同特征上来, 从而促进思维形成一个抽象的概念, 以对这一固定现象进行分析和概括。在思维的产生过程中, 我们需要借助很多现实的东西, 这是思维产生的必经之路。我们要使自已能够进行思维, 首先要有一定的抽象符号, 才能促使自已进行一些必要的思考。通过对母语以外的语言的学习, 我们的思维被新的模式打破, 在一个新的环境中, 通过不断的对某一语言现象进行分析、归类等过程, 从而促进思维模式的更新。

(二) 思维的内容

思维是伴随着语言的, 但是思维并不完全是语言的内容, 但思维的内容一般是通过语言来表达的。在研究的过程中, 我们发现存在有共同的思想储存这一假设基本被否定了。说人们有相似的思想就是说他们的思维相似, 可能如此相似以至于我们甚至说他们有相同的思想, 就像我们说有两个人住同一个地方。但我们不能由此说他们共同拥有了思想或者这种思想的储存。思维是动态的, 通过思维, 我们对语义特征得到高度的表述和详细的理解, 从而极大的超越了任何相关经验, 并且在广阔的范围内极大的独立于经验的变化和具体的神经结构。随着研究的继续和认识的增长, 我们关于理性和可理解性的标准同样会改变或者发展, 这是思维留给我们的对事物发展的认识, 也是思维内容的不断更新后对人类的发展产生的贡献。

(三) 思维的形式

思维的形式可以多样性, 但是表现出来的却是很平淡的, 只展示思维的最后结论。在这一点上, 我们需要了解一下表现系统。表现系统是思维的具体显示, 它一般被认为固定的和不变的, 对其基本原因是一无所知的。正是由于认知系统嵌入表现系统的方式, 语言学家通过研究发现, 说话人通过心智, 从所听的和所说的话语中, 抽象出其一般性的概念, 这些概念对其个体产生影响。思维的形式影响着人们的生活, 对社会的发展也有到一定的影响。这要求我们对思维的形式有一个更清晰的认识, 才会使我们从容应对思维的变化, 通过言语表达思维, 最终为人类发展服务。当然, 对于一些传统的观念不能得到清楚的表达, 直到形式主义提出了生成的概念。对于这些问题的研究被认为是传统观念和新的形而上学的概念的见解的新的融合。正是这些参与思维和行为的机制表明, 语言的学习和心智是密切相关的。思维的形式和语言的表达也是密不可分的。

四、相互关系

语言学对社会的发展起到很重要的作用, 而对语言和思维的关系的研究, 也一直牵动着相关学者的心, 并不断演化成学术界积极探讨的问题之一。在实际生活中, 语言影响思维的形成。语言不直接影响是思维, 而是通过言语的内化作用决定人的思维, 这种思维即言语思维。言语是语言和思维的桥梁和纽带, 在语言和思维的关系上, 两者是相互作用, 但思维起到关键作用, 是决定性的。我们之所以这么认为, 是因为思维起到了两个关键作用: (1) 言语的产生和发展是思维的在推动的 (2) 思维决定着言语表达的内容。在相互作用方面, 语言对思维的作用也是不可忽视的。言语在思维中的作用主要是充当思维的工具, 是思维的物质外壳。问题的关键在于:思维依靠语言来表达和交流, 作为一种工具, 但却不是唯一工作, 人们可以利用其它符号系统来表达思维的内容, 例如、手势、表情等来传达思想, 这是多模态研究的内容, 我们在这里就不分析了。

作为符号系统的各种语言, 用作思维工具时, 它们之间的工作效能差距相当大。虽然言语符号系统决定并限制了个人的智力发展, 但是这并不意味着个人无法超越自身的语言能力限制。语言仅仅是记载过去所取得的思维成果, 并且通过某种方式固定下来。“掌握”一个词意味着在语音组合和对应的思维内容之间建立某种关系, 但是个人必须经过思考, 才能形成这种关系, 并固定下来。如果没有先作一番思考的能力, 那就无法掌握词的意义。词仅仅是起促进和协助思考的作用, 并不是决定作用。语言是思维的工具, 两者紧密联系, 不可分离。没有语言, 人们就不能认识客观世界的规律, 而这种社会现象又是紧密地联系在一起的。

根据语言和言语的关系, 我们可以得出言语对讲这种语言的人的思维发展有很大影响。我们知道一个语言在某一阶段所处的状态代表着说这种语言的人们的智力发展的某一阶段。因此, 语言的发展原因和规律需要从人类的心理和生理结构去寻找。我们对语言和思维的认识, 不能停留在表面, 我们需要通过一些细微的方式去了解这种现象, 并且不能带有武断的性质, 同时, 我们通过一定的方式去了解语言和思维的关系, 并维护好, 从而, 好好的为交流服务。

五、结论

语言和思维是相互作用的, 不可忽视任一方的作用, 但二者的作用程度是有差异的, 思维对语言具有决定性的作用, 而语言对思维有着巨大的影响力。回顾以往, 语言不仅仅是喉咙所发出声音所组成的系统, 更是人们打开通向心灵的钥匙。语言是表达思想的至高无上的工具, 它具有自然性、民族性、历史性, 是人类文明进步的关键。思维是语言发展比不可少的一个过程, 在我们研究其相互关系时, 我们可以看出, 语言的衍生, 言语的出现, 思维的形成等都是历史发展的必然阶段, 我们只有充分了解语言的发展, 不断去思维, 才能在语言学的知识海洋中索取一瓢, 为我们在教学的过程中提供指导, 更好的服务教学。

摘要:20世纪语言学的发展掀开了史上最辉煌的篇章。不同的语言学家对语言的研究和探索得出很多新的理论, 从而加速了语言学的发展。而对语言和思维这两个语言学的基本元素的研究也有了新的进展。本文拟从对语言和思维的内涵及相互关系展开分析。

关键词:语言,思维,相互关系

参考文献

[1]L.R.帕默尔著.语言学概论.商务印书馆, 1983.

[2]诺姆·乔姆斯基著.乔姆斯基语言学文集.湖南教育出版社, 2002.

[3]鲍莉.语言和思维的关系.咸宁学院学报, 2006.8.

对象语言 第5篇

1.抽象和()是面向对象程序设计的重要特征。

封装 包装

分析 建类

本题分值: 5.0 用户得分: 5.0 用户解答: 封装

知识点: 4.1 抽象与封装

2.计算机软件开发中所用到的抽象有两类:()。

分析和抽取 过程抽象和数据收集

过程抽象和数据抽象 数据抽象和计算抽象

本题分值: 5.0 用户得分: 5.0 用户解答: 过程抽象和数据抽象 知识点: 4.1 抽象与封装

3.封装的重点是对数据的封装,因此将()及请求的所有相互作用通过对象方法实现称作“数据封装”。

隐藏内部状态 数据 数据捆绑 内部数据

本题分值: 5.0 用户得分: 5.0 用户解答: 隐藏内部状态 知识点: 4.1 抽象与封装

4.对象用()“域(fields)”存储它的状态。

一个或多个 常量

数据 变量

本题分值: 5.0 用户得分: 5.0 用户解答: 一个或多个 知识点: 4.2 声明Java类

5.在Java语言中对象是()捆绑在一起的软件。

数据 函数

变量 域与相关方法

本题分值: 5.0 用户得分: 5.0 用户解答: 域与相关方法 知识点: 4.2 声明Java类

6.对象的状态存储在“域”,有时又被称做变量,这些变量形式上称为()。全局变量 局部变量 实例变量 变量

本题分值: 5.0 用户得分: 5.0 用户解答: 实例变量

知识点: 4.2 声明Java类

7.对象的行为通过“()”体现出来,方法又被称做函数。

代码 语句

程序 方法

本题分值: 5.0 用户得分: 5.0 用户解答: 方法

知识点: 4.2 声明Java类

8.在Java程序设计语言中,一个类型定义对象类别细节的实现。类定义实例以及类(),指定类实现和类的直接超类的接口。

函数 属性方法 数据 变量和方法

本题分值: 5.0 用户得分: 5.0 用户解答: 变量和方法 知识点: 4.2 声明Java类

9.通过类创建的对象称为一个类的“()”。

都不对 实例

对象 变量

本题分值: 5.0 用户得分: 5.0 用户解答: 实例

知识点: 4.2 声明Java类

10.用()修饰的类可以被其他任何类使用,如果没有这个修饰符类只能被与它在同一个包中的其他类使用。

私有的 默认 全局的

public(共有的)

本题分值: 5.0 用户得分: 5.0 用户解答: public(共有的)知识点: 4.2 声明Java类

11.在Java语言中有如下几种变量:  在类中的成员变量,又称域。 在方法或代码块中的()。 在方法声明中的变量,又称参数。

系统变量 成员变量 类变量 局部变量

本题分值: 5.0 用户得分: 5.0 用户解答: 局部变量

知识点: 4.3 声明成员变量

12.定义成员变量时,类型指域或成员变量的()。所有变量必须有一个指定的类型,可以使用Java语言提供的任何数据类型。

引用型 类或接口 原始型 数据类型

本题分值: 5.0 用户得分: 5.0 用户解答: 数据类型

知识点: 4.3 声明成员变量

13.成员变量的名称必须符合Java()的命名规则。

标识符 符号 变量 类

本题分值: 5.0 用户得分: 5.0 用户解答: 标识符

知识点: 4.3 声明成员变量

14.用()修饰的域称为静态域,又称为“类变量”。

static package public void

本题分值: 5.0 用户得分: 5.0 用户解答: static 知识点: 4.3 声明成员变量

15.声明类的方法需要指定方法的访问级别,名称,类型,参数和方法体,方法的声明由编程者根据对象的()来设定。

计算 需要 功能 特征

本题分值: 5.0 用户得分: 5.0 用户解答: 功能

知识点: 4.4 定义方法

16.方法签名由在方法声明中的两个部分组成,即()。

方法名称和参数类型 方法声明

参数 名称

本题分值: 5.0 用户得分: 5.0 用户解答: 方法名称和参数类型 知识点: 4.4 定义方法

17.Java语言支持重载方法,可以区分()不同的方法。这意味着在一个类中存在方法参数列表而名称相同的方法。

返回值类型 返回值 参数类型 方法签名

本题分值: 5.0 用户得分: 5.0 用户解答: 方法签名 知识点: 4.4 定义方法

18.创建对象通常需要经过下面几个步骤:  声明一个变量用来引用对象。 实例化类。()。初始化对象 设置初值 使用对象 赋值

本题分值: 5.0 用户得分: 5.0 用户解答: 初始化对象

知识点: 4.5 对象创建、使用

19.使用对象的域必须通过它们的(),这个名称必须清楚明确的。

类 其他变量

名称引用 其他对象

本题分值: 5.0 用户得分: 5.0 用户解答: 名称引用

知识点: 4.5 对象创建、使用

20.嵌套类被分为两个类别:静态的和()。

非静态的 默认引用

对象 实例

浅析Java语言中对象的创建过程 第6篇

Java语言是面向对象的程序设计语言。类是Java语言中最重要的数据类型, 类声明的变量也叫对象引用。定义类就是为了创建对象, 创建对象的过程分为两个步骤, 首先是声明对象引用, 然后是创建对象实体[1]。类信息、对象引用、对象实体在内存不同的区中。

2 Java的内存结构

每一个Java应用程序都唯一对应一个JVM实例, JVM实例完成对象的内存分配。JVM的内存可分为3个区:堆区 (heap) 、栈区 (stack) 和方法区 (method) 。

堆区存放通过new创建的对象实体, 每个对象实体都有自己的内存地址, 对象实体中的成员变量都有默认的初始值。对象实体在没有对象引用指向它的时候, 就会变成垃圾, 虽然仍占用着内存, 但不能再被使用, 在随后的一个不确定的时间被垃圾回收器释放掉。

栈区存放局部变量, 包括基本数据类型变量、对象引用。当局部变量数据用完时, 所占内存空间会自动释放。

方法区是系统分配的一个内存逻辑区域, 是JVM在装载类文件时, 用于存储类型信息的 (类的描述信息) 。这些信息包括[2]:

⑴类的基本信息:包括类名、访问修饰符等。

⑵运行时常量池:包括该类型所用到的所有常量, 例如文字字符串、final变量值等。

⑶字段信息:存放类中声明的每一个字段的信息, 包括字段的名、类型、修饰符。

⑷方法信息:类中声明的每一个方法的信息, 包括方法名、返回值类型、参数类型、修饰符、异常、方法的字节码。在编译的时候, 就已经将方法的局部变量、操作数栈大小等确定并存放在字节码中, 在装载的时候, 随着类一起装入方法区。

⑸静态区:专门存放静态变量和静态块。

⑹到类classloader的引用:到该类的类装载器的引用。

⑺到类class的引用:虚拟机为每一个被装载的类型创建一个class实例, 用来代表这个被装载的类。

3对象的创建过程

下面以Test类为例, 分析对象创建过程中在内存中的分配情况以及方法的调用过程。

程序的执行结果:

Test类静态初始化块

Test类实例初始化块

调用了Test类的无参构造器

Test类实例初始化块

调用了Test类的有参构造器true

2 2

执行程序时, 我们使用的命令是:

java Test

这条命令执行时, 计算机操作如下:

⑴先把JVM加载到内存。

⑵JVM查找类Test.class是否存在, 如果不存在, 就抛出一个异常, 进程结束, 如果存在, 就把Test.class加载到内存方法区中。

⑶对类中的静态变量初始化。在本例中, 将静态变量b的值初始化成1。

⑷然后执行该类中static代码块。如果有static代码块的话, 对Test.class类进行初始化。 (此时输出‘Test类静态初始化块’) 。类中的static代码块仅在类加载时执行一次。

⑸接下来执行main方法。main方法中第一句, 在栈空间创建局部变量t1, 然后在堆空间创建对象实体, 并且对堆中的对象成员变量初始化, 接下来执行实例初始化块 (也叫构造代码块, 此时输出‘Test类实例初始化块’) , 然后是执行构造函数 (此时输出‘调用了Test类的无参构造器’) , 接着, 把堆内存中的对象地址赋值给栈内存中的对象引用t1, 第一句执行完毕。main方法中第二句, 在栈空间创建局部变量t2, 然后在堆空间创建对象实体, 并且对堆中的对象成员变量初始化, 接下来执行构造代码块 (此时输出‘Test类实例初始化块’) , 然后是执行构造函数 (此时输出‘调用了Test类的有参构造器’) , 接着, 把堆内存中的对象地址赋值给栈内存中的对象引用t2, 第二句执行完毕。

⑹接下来, 程序输出t1对象和t2对象的str引用是否相等。因为这两个str引用都指向运行时常量池中的同一个字符串常量, 所以是相等的, 输出为true。

⑺最后输出t1对象和t2对象的静态成员变量b的值。因为不同的Test对象也是共享同一个静态变量b, 所以, 在t2对象的构造器中, 把b的值初始化成了2, 输出两个2。

此时的对象占用内存示意图如图1所示:

从图中我们看到, 对于静态成员变量, 堆中创建的对象保存的是这个静态成员变量的引用。这样, 同一个类的不同的对象是共享静态成员变量的。对于对象成员, 堆中新对象也是保存对象成员引用。如果这个对象成员是String类型, 并且初始值是字符串常量对象, 则这些对象成员引用都指向常量池中的同一个字符串常量对象。

还需要注意的是, 实例初始化块和静态初始化块在执行时是不一样的。静态初始化块在类加载时只执行一次, 主要用来对类中的静态成员变量进行初始化, 与实例化没有关系。实例初始化块则是在创建对象时执行, 所以, 主要是对实例变量进行初始化[3]。

4 小结

通过以上分析, 我们知道Java程序在运行时, 首先要加载Java虚拟机实例, 然后由Java虚拟机实例负责main方法的执行和对象的创建。加载类时, 先执行的静态初始化块。创建对象时, 先在堆中分配实例成员变量的内存空间, 再执行的是实例初始化块, 然后执行构造器, 最后返回堆中对象引用, 将这个对象引用赋值给栈中的类变量。把握了以上过程, 我们对Java程序的内存分配和对象创建过程就清楚了, 有利于我们更深入地学习Java语言, 编写结构合理的Java程序。

摘要:介绍了Java语言的内存结构和对象的创建过程。通过程序实例说明了对象的成员在内存中的分配情况。

关键词:Java内存结构,方法区,常量池

参考文献

[1]耿祥义.Java2实用教程[M].北京:清华大学出版社, 2007.3.59-68.

[2]惠华先, 张静.Java语言中对象内存分配过程的研究[J].安徽:电脑知识与技术, 2011.3.1799-1801.

对象语言 第7篇

C#语言是由Microsoft公司的Anders Hejlsberg和Scott Wiltamuth领导的开发小组专门为.NET平台设计的新一代语言。C#语言从其形成的过程来看由C、C++和Java语言发展而来, 并集成了这三种程序语言的优点, 采取使用事件驱动和面向对象的编程模式[2]。

作为一种新的编程模式, C#语言也具有其自身的特点, 它是一种基于XML语言, 但又增强了Web服务功能的运行于.NET平台的新型语言。因为C#具有良好的面向对象特性, 使用简单的C#语言结构, 所有的组件都可以转换成Web服务, 可以完成底层平台的调用与底层代码的控制, 实现跨语言、跨平台的因特网远程调用, 笔者认为, 正是因为该语言具有上述的优点, 所以, 在复杂的网络应用程序设计中, C#语言是一种较好的选择[1]。

江苏城市职业学院作为一所高职高教类学院, 着重于培养应用性和实践性较强的人才, 学生自身大多也比较喜欢动手实践, 往往对枯燥乏味的理论知识缺乏学习兴趣。而C#作为新一代编程语言, 在教学过程中, 又不可避免地要进行代码的编写, 必须记忆常用的语句。如何处理好这种教学的矛盾, 达到教学目的, 笔者通过近年的教学体会到, 除了教学手段和教学方法之外, 如何选择适用的教材是搞好C#教学的重要一环。为了能够高质量的完成教学任务, 教师必须依据学生的特点慎重选择教材。对于C#语言类, 特别是面向对象的语言类课程, 我个人认为应当选择理论与实例结合紧密的教材为佳, 可以通过教材中众多实例引起和增加学生对本门课程学习兴趣, 同时也便于学生通过模仿实例, 掌握知识点, 提高学生的实际动手编程的能力。理论与实际结合紧密的教材, 在实际教学过程中, 往往能起到事半功倍的效果, 切忌使用那种仅从教师角度看来似乎是简捷明了的、纯理论推导的教科书。

2 C#课程特点及教学手段分析

C#作为一门高职院校专业课程, 有着其自身的特点。首先, 它是一门计算机语言类的课程, 虽不及C语言、C++那样完全用代码进行编程, 需要记忆大量的语句格式, 语法, 但基本的运算符、表达式还是需要掌握, 这部分内容是学习后续章节的基础, 同时也为今后理解和编写C#程序奠定基础, 在进行这一部分教学时, 可以适当增加课堂练习, 通过练习帮助学生巩固这部分知识。其次, C#是一门实践性较强的课程, 所以在条件允许的情况下, 教师应首先选择在机房进行授课, 这样既可以方便教师通过教师机进行演示, 使学生能及时进行上机练习, 而且在学生练习时间内, 教师还可以进行个别指导。第三, C#是一种面向对象的程序设计语言, 其中包含了大量的控件, 每一控件都有各自属性及方法。在讲解控件章节时, 教师应结合实际应用, 设计实例使用所要讲述的控件, 同时在该实例中, 要尽可能多的使用到该控件不同的属性和方法。这样, 在教学过程中, 可以通过演示实例, 提高学生对该控件的理解, 另外, 还可以留给学生一些任务, 通过任务驱动, 可以使学生灵活运用控件, 解决实际问题。第四, 教师在教学过程中, 合理分配教学课时。在授课内容结束以后, 最好安排一个完整且应用性较强的系统设计环节, 以培养和锻炼学生综合实践能力。

3 C#课程的教学方法分析

在教学过程中, 通过对该课程的特点的研究, 总结了一些针对该课程的一些个人认为较为有效的教学方法。

3.1 针对教学的不同内容, 设计不同的教学方法

(1) C#课程虽然是一门实践性很强纯面向对象的语言类课程, 但首先要让学生理解纯面向对象型语言的的编程模式OOP, 在此基础上, 随后的几个章节, 是有关于该语言的基本运算、表达式等内容, 这些知识是需要学生进行记忆的知识点, 是整个课程的基础, 基础掌握的如何, 对以后章节的学习有着关键性的作用。针对这一特点, 笔者在教学过程中, 采取适当增加一些书面练习的方法, 以提高学生对该语言语法知识的理解。同时这也为学生学习控件、阅读程序、编写程序奠定良好的基础。

(2) 在后续章节中, 学生要学习控件及数据库等方面的知识, 这部分内容实践性比较强, 教师在教学过程中, 可以采用实例+任务驱动的教学模式。在课堂上, 教师可以利用课前设计好的实例, 通过教师机或投影讲解控件的属性、方法, 使学生直观地了解控件。当然, 在课堂上, 可以在演示过程中, 通过更改属性, 或对控件方法的修改, 用形象的方式增强学生对属性和方法的理解。

3.2 培养学生良好的编程习惯, 见图1~3

在学习语言编程类课程时, 学生普遍把精力集中于实际的编程能力, 往往忽视自己是否具有良好的编程习惯, 这需要教师在平时的教学过程中, 注重对学生这一方面的培养。

(1) 对象的定义。

对象的定义是非常重要的一个环节, 学生在学习初期, 经常随意定义对象的名称, 容易造成重复命名、增加阅读程序难度等问题。教师在授课过程中, 使学生明白一个对象的名称对于一个程序的重要性, 怎样才能有效地定义一个对象的名称。

在此实例中, 我们可以更改两个按钮的“name”属性, 将两个实例的名称分别更改为“over”和“count”, 在程序中可以使用这两个名字进行编写。

(2) 程序的结构。

学生在编程过程中, 为了尽可能提高程序的执行效率, 采取一些非常规的算法。表面上看, 学生具有较强的编程思维, 但这样的做法是不可取的, 教师应该适当给予提示。编写任何程序, 其编程的第一原则是可读性, 而不是程序的执行效率, 其原因有很多, 比如, 有利于程序的维护等等。

(3) 经典实例的模仿。

编程思维方式可能与人们平时的思维方式不太一样, 在处理某些问题时, 有一些常用有效的方式, 而这些方式都是前人总结归纳出来的, 学生可以在今后的编程过程中加以引用。例如, 任意输入两个整数, 输出其最大公约数和最小公倍数。

3.3 面授与实践相结合, 注重对学生实践能力的培养

在教学过程中, 教师应该合理安排教学环节, 以简练的语言传授基本语法、控件的属性和方法, 目的是使学生对控件有一个理论上的概念;接下来, 教师应当选择适当的控件实例, 通过讲解实例, 让学生巩固控件的属性及方法, 为了考查学生对该控件的理解, 可以适当要求学生自己在该实例中更改属性或是方法, 这样既及时了解学生的接受情况, 同时也锻炼学生的实践动手能力。

3.4 引导性教学, 以培养学生自学能力

在后续教学中, 教师应针对该课程的实践性强的特点, 安排一段实践环节 (通常可以安排两周时间) , 交给学生一些小型的课题, 让他们自己设计系统, 编写程序。在设计初期, 教师可以与同学一起分析问题的实质, 讨论一些解决方案, 适当给予一些提示性建议。但进入实质编写代码阶段, 学生则可以完全自己来实施。在这过程中, 学生难免会遇到一些问题, 这时, 教师再给予适当帮助或提示, 建议他们自学部分知识, 以这种方式学习, 可以加深学生对知识的理解, 将自学的理论应用于实际, 提高他们的自信心和兴趣。总之, 在实践教学环节中, 要充分发挥教师的引导作用, 最大限度地培养学生主动学习能力, 综合实践能力, 以及将理论知识化为解决实际问题的能力。

3.5 调节课堂气氛, 培养学生学习兴趣

C#作为一门语言类课程, 学生在学习过程中需要记忆语句, 语法, 在编程阶段, 调试阶段等都非常烦琐, 容易产生厌烦甚至抵触情绪, 这时就需要教师适当调节课堂气氛, 培养学生良好的学习习惯。比如, 在实践阶段, 通常都由学生独自完成课题, 教师可以在这期间, 留心观察学生上机情况, 若注意到学生出现实践上的问题, 可以及时和学生一同探讨, 了解学生的编程思路, 有针对性地给予一定指导, 以培养和树立学生的自信心。

教学过程是一种经验累计的过程, 同时教学过程更是一种不断更新的过程, 累计更多的是依靠个人, 而更新是需要借鉴他人, 只有这样才能不断提高自己的素养, 适应不断更新的时代。上述是笔者在实际的C#教学过程中总结的一些体会, 希望能与同仁进行交流探讨。

摘要:Microsoft公司推出了.NET战略, 作为新一代网络应用基础, 其包含的技术先进并且全面, 而其中C#语言是Microsoft公司适应未来网络技术发展而推出的新一代编程语言, 它是专为.NET战略所开发的语言。而Visual C#作为一门课程, 笔者在教学过程中着重学生对该语言实践能力的培养, 总结了该课程的特点, 积累了一些教学经验, 形成了一套较为适合该课程的教学方法。

关键词:Visual C#、,教学手段,教学方法,实践

参考文献

[1]周峰, 李德路, 王征.Visual C#.NET2005中文版基础与实践教程[M].北京:电子工业出版社, 2007.

[2]殷泰晖, 张强, 杨豹, 等.C#编程从基础到实践[M].北京:电子工业出版社, 2007.

对象语言 第8篇

对象是现实世界中行为和思考时作为目标的人或事物。在面向对象软件工程方法学中,对象是个体或事物的抽象表示,是其属性和相关操作的封装。在程序设计中是基本的运行时的实体,把对象作为融合了数据及数据上的操作行为的统一软件架构,用对象分解取代了传统方法的功能分解。

2 对象的基本认识

2.1 对象的声明

对象的声明有多种形式,如局部对象、自动对象、全局对象、静态对象、对象数组、类的对象成员、堆对象等,对象的初始化由构造函数来完成,销毁由析构函数来完成。

声明对象的代码如下:

2.2 对象的作用域和生存期

局部对象:具有块作用域(局部作用域),当程序每次执行遇到它的声明时创建,每次离开它所出现的块时销毁。

自动对象:是一种每次调用函数时创建和撤销的局部对象,具有块作用域,在函数控制经过变量定义语句时创建,在函数结束时销毁。

全局对象:具有全局作用域,只在程序的开始处创建一次,在程序终止时销毁。

堆对象:通过new运算符创建,通过delete运算符销毁。

局部静态对象:具有块作用域,在程序执行中第一次遇到它的声明时创建一次,在程序终止时销毁。

类的对象成员:具有类作用域,在它作为成员的那个对象创建或销毁时,它也随之创建或销毁。

对象数组:在数组创建和销毁时,数组中的每个对象元素也随之创建和销毁。

3 临时对象

临时对象就是在源代码中没有声明,而是编译器根据情况在栈中创建的匿名的对象。

3.1 产生临时对象的三种情形

3.1.1 函数存在返回值

当函数返回一个对象时,编译器会从调用该函数的函数栈中开辟空间,并用返回值作为参数调用该对象的拷贝构造函数在此空间中生成该对象。在被调用函数结束并返回后,可以继续利用此对象。

演示代码如下:

语句(1):当执行fun()时,先调用构造函数创建了局部对象a,然后用a作为参数调用拷贝构造函数创建了临时对象。当fun()函数结束并返回main主函数时a销毁,并用创建的临时对象初始化了引用b,输出结果为constructing,copy constructing,destructing。

语句(2):当执行fun()时,先调用构造函数创建了局部对象a,然后用a作为参数调用拷贝构造函数创建了临时对象。当fun()函数结束并返回main主函数时a销毁,并用创建的临时对象初始化了指针c,该语句结束后临时对象销毁。所以指针对临时对象的引用是没有意义的,输出结果为constructing,copy constructing,destructing,destructing。

语句(3):在正常情况下,当执行fun()时,先调用构造函数创建了局部对象a,然后用a作为参数调用拷贝构造函数创建了临时对象。当fun()函数结束并返回main主函数时a销毁,并用创建的临时对象调用拷贝构造函数初始化了对象d。但实际运行的情况是编译器并没有创建这个临时对象,而是直接用a作为参数调用拷贝构造函数初始化d,等效于语句A d=a;,当fun()函数结束并返回main主函数时a销毁,输出结果为constructing,copy constructing,destructing。

语句(4):创建了一个局部对象e,输出结果为constructing。

语句(5):当执行fun()时,先调用构造函数创建了局部对象a,然后用a作为参数调用拷贝构造函数创建了临时对象。当fun()函数结束并返回main主函数时a销毁,并用创建的临时对象赋值给e,该语句结束后临时对象销毁,输出结果为constructing,copy con-

structing,destructing,destructing。

语句destructing,destructing,destructing为依次销毁e、d、b。

3.1.2 隐式类型转换

演示代码如下:

通过输出结果可以分析出在发生隐式类型转换时,编译器先自动用2作为参数调用构造函数创建了一个临时对象,然后通过赋值运算符将临时对象赋值给对象a。

3.1.3 存放临时结果

演示代码如下:

在该段代码中,变量a、b值均未被改变,而是用一个临时对象保存a+b的结果,然后赋值给c。a++的语义就将a的值保存在临时对象中作为整个表达式值,然后将a的值增1。

3.2 临时对象的作用域和生命期

通过分析输出结果,一个临时对象的作用域和生命期从创建时开始,到包含创建它的最长语句执行完毕。当一个临时变量被约束到某个引用或被用于做命名对象的初始化时,将在“它的”引用或命名对象离开作用域时销毁。

4 无名对象

无名对象就是显式的调用构造函数创建的匿名的对象。

4.1 无名对象的声明

声明无名对象的代码如下:

4.2 无名对象的典型用法

演示代码如下:

语句(1):用无名对象作为参数拷贝构造一个对象a。正常情况下,先显式的调用构造函数创建一个无名对象,然后再用这个无名对象作为参数调用拷贝构造函数初始化a。由于在用一个无名对象去拷贝构造一个对象后,该无名对象失去任何作用就自动销毁了。所以,C++规定其等效于语句A a(1);或A a=1;,只调用构造函数初始化对象a,省略创建无名对象这一个步,输出结果为1con-structing。

语句(2):用无名对象初始化一个引用。引用在逻辑上相当于变量(或对象)的别名,所以该语句等效于A b(2);或A b=2;,输出结果为2constructing。

语句(3):用无名对象的地址初始化一个指针变量。由于无名对象在语句结束后就自动销毁了,所以用无名对象初始化一个指针是没有意义的,输出结果为3constructing,3destructing。

语句(4):用无名对象初始化一个数组。对象数组的每个元素都某个类的一个对象,初始化就是要调用该对象的构造函数。所以当构造函数有需要传递参数的要求时,可以显式的调用构造函数创建无名对象来初始化数组,或者直接用如语句A d[3]={1,2,3};的形式来初始化数组,原理同语句(1),输出结果为4constructing,4constructing。

语句(5):用无名对象赋值给一个对象。先调用构造函数创建一个无名对象,然后调用默认的赋值运算符给对象a赋值,输出结果为5constructing,5destructing。

语句(6),语句(7),语句(8):无名对象作为实参传递给函数形参。先是调用构造函数创建了一个无名对象,然后用该无名对象初始化形参。语句(7)中在进行值传递的过程中省略了创建无名对象这一步,直接调用构造函数初始化了形参,原理同语句(1),输出结果为6constructing,6destructing,7constructing,7destructing,8constructing,8destructing。

输出结果4destructing,4destructing,2destructing,5destructing为依次销毁d[2]、b、a。

4.3 无名对象的作用域和生命期

通过分析输出结果,无名对象其作用和生命期仅存在于创建无名对象的那个完整语句,当完整语句结束时无名对象自动调用析构函数销毁自己。由于C++对无名对象在初始化对象时的等效作用,所以语句(1)、(2)、(4)省略了创建无名对象这一步而直接创建了局部对象,并具有局部对象的作用域和生命期。

5 结论

以上对对象的概念、特点和用法进行了详细的论述,特别是对临时对象、无名对象的含义、产生的场合、作用域和生命期的自动转换进行了深入的讨论。在面向对象的程序设计中,灵活的掌握这些特性可以避免由于编译器隐式产生对象而引起的对程序性能的影响。

参考文献

[1]Stroustrup B.C++程序设计语言(特别版)[M].裘宗燕,译.北京:机械工业出版社,2002.

[2]Lippman S B.C++Primer中文版[M].4版.李师贤,译.北京:人民邮电出版社,2006.

[3]冯宏华.C++应用程序性能优化[M].北京:电子工业出版社,2007.

[4]钱能.C++程序设计教程[M].北京:清华大学出版社,1999.

对象语言 第9篇

语言是一种重要的社会资源, 语言以其独特的符号结构, 承载着丰富、厚重的语意和社会文化信息。语言符号系统所承载的语义、文化信息为社会所利用, 来实施语言的表意功能和施事功能, 进而作用于社会现实, 产生社会效益和政治、经济、文化、科技等效益。所以语言是一种有价值、可利用、出效益的特殊的社会资源。语言资源主要由语言本体和语言社会应用两部分构成。“语言本体包括语音系统、词汇系统、语法系统和语义系统, 是语言资源的物质基础;语言应用包括语言在社会各领域的应用, 和人类社会对语言文字的各种使用及其效益, 是语言资源价值和可利用性的具体体现。”[1]

语言做为一种重要的资源, 在旅游业发展和游客旅游过程中发挥着重要作用。旅游中的语言资源可分为三种[3]:一是工具性资源, 主要包括旅游广告、景区文本和部分导游讲解。其主要功能承担着承担着引导旅游者到“何处去、怎么去、以及怎么游”的重要导向性作用。旅游中的第二种语言资源为人力性资源, 主要包括旅游工作者的语言能力。旅游中的第三种语言资源为对象性旅游资源, 即语言可做为旅游体验的目的对象。

二、对象性旅游语言资源

在体验经济的大背景下, 旅游语言一个更重要的特点是体验性建构, 即旅游语言的对象性或体验性。“旅游活动的最根本目的是求新、求异、求享受, 是集休闲、娱乐和学习等为一体的综合性活动。人们到异地旅游, 在了解当地风土人情的过程中必然会想到当地使用的语言。因为当地语言也是旅游资源的一部分。”[3]人们对自己的母语和方言往往寄以深情。对于旅游者来说, 异地、异民族的语言往往带来独特的听觉体验。旅游景区语言独特的语音、语调特质和表意功能可做为旅游体验的产品。在旅游语言全球化、旅游体验同质化的趋势下, 某一地区特殊的语言资源应该为保持旅游语言的本土化和促进旅游者体验的多元化作出贡献, 真正成为富有特色的对象性资源。

三、对象性旅游语言资源的类别

张掖位于河西走廊中部, 东邻武威、金昌, 西连酒泉、嘉峪关, 南与青海省毗邻, 北和内蒙古自治区接壤。总人口130万。有汉、裕固、藏、回等37个民族。有着悠久的历史、灿烂的文化、优美的自然风光和独特的人文景观, 是全国历史文化名城和中国优秀旅游城市。张掖市可供开供开发的对象性旅游资源包括张掖方言和裕固语。

张掖方言属于汉语官话方言的兰银官话。东部裕固语, 是裕固族所使用的两种语言之一。亦称“恩格尔语”, 属阿尔泰语系蒙古语族。分布于甘肃肃南县康乐区及皇城区的北滩乡、东滩乡。目前使用东部裕固语的人口约5000多人。西部裕固语是中国甘肃省张掖市肃南裕固族自治县西部, 大河区和明花区的裕固族所用的语言, 属于阿尔泰语系突厥语族东突厥语支西伯利亚语组。语言上最接近哈卡斯语、图瓦语等, 保留了古回鹘语的计数法等古代回鹘语言特征, 而与属于葛逻禄语组的维吾尔语有一定距离;与属于蒙古语族的东部裕固语不能沟通。使用人口约4, 600人。

(一) 语言本体资源

本体资源包括各种语言的语音、词汇、语法系统和文字符号系统是语言资源的物质基础。张掖市可供开发的旅游本体资源包括张掖方言和裕固语的语音、语调语法系统。

(补充张掖方言的语音描述) 东部裕固语有29个辅音, 词首辅音h较多;8个元音, 长短对立不明显, 复元音较多。基本语序为主、宾、谓。名词的领格和宾格之间无形态区别, 后缀均为-in、-n;动词的后缀保留着中世纪蒙古语后缀-su的变体-sɑ。词汇中约三分之一为借词, 其中突厥语借词较多, 但主要的是汉语借词。语音同东乡语、土族语和保安语接近。西部裕固语除8个基本元音外, 还有6个带擦元音。它们具有区别词义的作用, 并且其擦音成分有多种变化;因汉语的影响增加了一些复元音, 所以复元音较多;塞音和塞擦音都是清音, 分为送气和不送气的两套, 但在不区别词义的条件下, 可以自由变换;一些词保留着古老的语音特点, 主要是词中或词末有z音。

这些独特的元音、辅音和语调特质可以给旅游者带来独特、新鲜的听觉体验, 主、宾、谓的句法结构可以满足游客求异心理需求。

(二) 饮食名称

由于每一地区独特的文化民俗, 其独特的饮食名称也可以做为对象性旅游资源。张掖市的独特饮食名称有:

饸洛面、搓鱼子、拉条子、臊面、面筋、小饭、酿皮、炒炮、揪面片、鱼儿粉、烧壳子、炒炮、烧壳子 (烤制的面食) 、酥油面饼 (裕固语称“亚合吧”) 、锁阳饼、曲拉 (奶疙瘩) 。

(三) 方言词和谚语

方言词和谚语独特的表意功能既能让旅游者体会到所指相同情况下不同能指的新鲜感, 又能让游客体验到语言符号所承载的旅游地独特的民俗和文化信息。

方言词:

草包——对表面华丽而无真才实学人的贬称;急惶惶——对急性子人的称呼;姑姑子——对道姑、尼姑的统称;结嗑子——对口吃人的称谓;冷棒——不机灵的人。

谚语:

不要因为怕招土匪把羊儿都卖光了[西裕固族];不要因为要搬房子把柴火都烧光了[西裕固族]。

惯坏的毛病用皮鞭也赶不走[东裕固族];水的源头是泉水, 人中最大的是舅舅[东裕固族]。

(四) 文艺类作品

裕固族本民族的文字虽然已经失传, 但是民间仍然保留着自己优秀的文化传统。包括神话、传说、寓言、民歌、叙事诗、格言、谚语等。其民歌曲调独特, 内容多是表达劳动和爱情。《黄黛成》和《萨娜玛可》是流行较广的歌曲。《萨娜玛珂》是裕固族著名叙事诗, 有多种变化了的体裁, 主要是歌颂和缅怀裕固族历史上的一位女英雄。据传, 这位女英雄是某个部落头目的妻子, 在一场与外部落的战争中, 她毅然参战。足智多谋、武艺高强、勇气过人的萨娜玛珂赢得了人们的信赖, 在取胜后返回的路上, 她身负重伤, 最终献身。这首诗歌颂了萨娜玛珂的事迹, 表达了裕固族人民对民族英雄的怀念和景仰。有固定的曲调用来演唱。

(五) 文字景观

由于文字的各种形体和结构变化使得文字这种视觉符号具有形象性、审美性、文化性等特点, 文字符号代表了一定的艺术形象, 对文字符号艺术形象的进一步解构可以建构起游客独特的文化艺象, 给游客以独特的旅游体验。因而文字景观是一种独特的对象性旅游资源。

然而, 文字景观除了其自身的艺术美感之外, 更重要的艺术再现存在于导游员对于文字的讲解, 对文字景观的进一步再现。正如陈丽君“提出对文字的开发利用要围绕其视觉审美效应来进行, 强调旅游规划中让文字景观自然显现, 旅游宣传中让文字景观得到体现以吸引旅游者来欣赏, 旅游讲解中让导游员引导旅游者去体验文字景观带来的审美意境。”[2]

(六) 对象性旅游语言资源的开发原则

上文介绍了对象性语言资源可分为语言本体、方言词和谚语、饮食名称、文艺作品、文字景观五种类别。做为一种重要的资源, 语言本体、方言词和谚语、饮食名称、文艺作品、文字景观在旅游业开发建设中需要开发才能被游客所体验和消费。对象性旅游语言资源的体验依赖于依赖再现、释解及跨文化传播。语言本体、方言词和谚语主要依赖于语音再现和释解;饮食名称和文艺作品的体验依赖于释解和跨文化传播;文字景观的体验主要依赖于释解。在语音再现、释解和跨文化传播过程中导游人员的个人语言能力和释解能力贯穿始终, 并直接关系到游客对于对象性旅游语言的感知和体验, 如下图所示:

摘要:本研究从语言资源的概念出发, 提出了旅游景区的语言可做为一种重要的对象性资源开发, 以提高游客的旅游体验。通过对张掖市旅游景旅游语言的研究发现, 对象性旅游语言的可分为语言本体资源、方言词和谚语、饮食名称、文艺作品、文字景观五种类别。这五种对象性语言资源的体验依赖于再现、释解和跨文化转播三个方面。在语音再现、释解和跨文化传播过程中导游人员的个人语言能力和释解能力贯穿始终, 并直接关系到游客对于对象性旅游语言的感知和体验

关键词:语言资源,对象性,旅游语言,张掖市

参考文献

[1]陈章太.论语言资源[J].语言文字应用, 2008. (1) .

[2]陈丽君.基于资源概念的旅游语言研究[D].华东师范大学博士论文, 2012.

对象语言 第10篇

本文首先分析了Action Script 3.0作为面向对象程序设计语言的特点, 然后针对Action Script 3.0的特点提出了针对Action Script 3.0的教学设计方法。在教学过程中, 经过数年的实践和调整, 教学成果较为理想。

一、Action Script3.0面向对象程序设计语言的特点分析

1. 严谨的面向对象程序设计概念。

与脚本语言Action Script2.0不同, Action Script3.0是完全意义上的面向对象程序设计语言, 具有类、对象、包、继承、多态等面向对象概念。

2. Action Script3.0具有与C语言和Java等语言不同的语法表达。

Action Script 3.0具有与C语言和Java语言不同的基本语法表达。在实际教学中, 对于已学习过其他语言的同学来说, 需要注意明确指出这种区别, 以便减少学生由于基本语法上的混淆而影响实际程序的开发。以下列举几种基于不同语言的基本语法表达的异同: (1) 变量的定义和赋值。基于C语言和Java语言的整数类型a变量定义并赋值为6的语句如下:int a=6;基于Action Script 3.0同样表达以上含义的语句则为:var a:int=6;如上文的语句所显示的, Action Script3.0中变量定义采用关键词var, 即variable的缩写, 而该变量的类型则通过变量名后加冒号 (:) , 冒号后面是指定的类型。 (2) 数组的定义和赋值。Java和C语言中常用的数组定义和赋值语句如下:int a[5]={1, 2, 3, 4, 5};Action Script 3.0中可以用以下语句对数组定义和赋值:var a:Array=[1, 2, 3, 4, 5];与定义变量的语法类似, Action Script 3.0中, 采用关键字Array定义变量a为数组类型。 (3) 函数的定义和赋值。C语言中常用的函数定义语句如下:int max (int a, int b) {};Action Script3.0中函数定义语句如下:function max (a:int, b:int) :int{}。

3. Action Script3.0具有与Java等面向对象语言不同的概念。

除类、对象、包、继承、多态等面向对象概念外, Action Script3.0还有独特的概念, 如名称空间, 也称为命名空间。这一概念在XML等技术中被采用, 但是Action Script3.0中的名称空间的概念与XML中的又有不同。这些异同点在教学过程中需要阐述清楚, 并且在学生实践过程中出现语法错误时及时纠正, 帮助学生尽快掌握Action Script 3.0特有的语法表达。

4. 实用的可视化实例交互控制功能。

对可视化素材实例的交互操作功能是Action Script 3.0的重要优点。Action Script 3.0是Flash自带的脚本语言, 活用Flash本身的强大动画制作能力, 采用Action Script 3.0可以非常便利地实现对可视化素材进行交互式操作, 从而实现具有丰富视觉效果的交互系统。具体方法是通过Flash制作可视化素材, 将该素材定义为可视化类, 然后在脚本程序中可以按照生成类的实例化对象的方法, 定义可视化类的实例化对象。对可视化素材的实例化对象的操作, 是通过Action Script 3.0的事件机制实现的, 通过定义不同的事件类型和事件侦听器, 达到对可视化素材直接操作的效果。

二、Action Script3.0的教学设计

由于Action Script3.0所具有的特色, 在教学过程中采取了以下几种教学方法, 获得了很好的教学效果。

1. 采用对比法和类比法学习面向对象概念。

根据上文对Action Script 3.0语法特点的分析, 在实际教学过程中根据基础不同的学生采用不同的教学方法。本专业的很多学生在学习本门课程之前学习过C语言或Java语言, 针对这部分学生, 由于有以往学习的经验, 在掌握编程思想以及面向对象编程思想时是有利的, 然而根据以往的经验, 这部分学生对Action Script 3.0语法最初很不适应, 如果不能及时地帮助学生区分这些异同, 会大大降低学生继续深入学习的兴趣, 使一部分不能克服的学生在后面的学习中感到非常困难, 甚至不能体会Action Script 3.0开发的精髓。

2. 注重可视化案例设计。

Action Script 3.0在可视化方面的优秀表现是我们确定该项内容为教学重点的原因。为了使学生更好地熟悉和掌握这种技术, 在教学过程中我们制作了各种常用的可视化素材的交互控制应用, 在演示案例并详细讲解相关代码含义的基础上, 设置类似的工作任务, 引导学生在模仿的基础上能够开发自定义功能, 达到对相关知识的理解和掌握。

3. 引导交互功能的设计与实现。

学生通过学习和实践在掌握了Action Script 3.0的编程内容以后, 再在教学进程中安排Action Script 3.0程序设计的实训课程, 在此环节, 设计了不同主题的游戏任务, 在学生任务书中从技术要点方面对学生需要完成课题的难度、结构、组织方式、工作时间以及工作规范等内容进行了明确要求。学生按照4~6人一组进行分组, 具体的游戏内容和游戏规则由组长带领组员共同商讨进行, 并将小组内成员的具体分工和指导教师共同讨论, 并达成一致。

实践表明, 绝大多数学生可以按照计划完成最初策划的基本内容, 在实际开发的过程中, 也会对最初的策划进行一定程度的修改。在此过程中, 有的学生可以很巧妙地应用之前学习过的案例, 并进一步发展以实现自己设计的功能, 从而加深了对所学内容的理解并且进一步提高了学习的兴趣。

三、总结

本文总结了Action Script 3.0程序设计课程的多年教学经验, 首先分析了Action Script 3.0作为面向对象程序设计语言的特点, 然后针对Action Script 3.0的特点阐述了针对Action Script 3.0的教学设计方法。相关的教学方法在教学过程中, 经过实践和调整, 取得了较为理想的教学效果。通过本门课程的学习, 学生采用相关技术, 多次在省级和国家级竞赛中策划、获奖、开发各类系统以及进行毕业设计等, 达到了学以致用的目的。

摘要:本文分析了面向对象程序设计语言Action Script3.0的特点, 以此为依据, 提出了该课程在教学上的组织形式、教学案例设计、学习方法引导以及实训项目开展等方面的教学尝试。经过教学实践, 证明了所提出教学方法对于提高学生的学习兴趣、发挥学生的学习主动性等方面具有较好的效果, 有助于学生理解和掌握面向对象程序设计语言的概念以及Action Script3.0程序设计应用。

关键词:面向对象程序设计语言,Action Script3.0,案例设计,教学方法

参考文献

[1]朱喜福.Java程序设计[M].北京:人民邮电出版社, 2008.

[2]翟宝利, 等.Action Script3.0从入门到精通[M].北京:化学工业出版社, 2009.

[3]沈钧, 李庆.风云ⅡFlash CS3 Action Script3.0游戏开发基础与范例[M].北京:电子工业出版社, 2008.

对象语言范文

对象语言范文(精选10篇)对象语言 第1篇一、身体语言的含义和作用身体语言是由人的面部表情、身体姿势、肢体动作和体位变化而构成的一个...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部