Ⅰ 几种常见的程序设计中命名规则
几种常见的程序命名规则
正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有坦答效的提高程序的可维护性。以下介绍几种常用的变量命名规则。
一、匈牙利命名法:广泛应用于Microsoft Windows这桐信哗类环境中。
这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成 员变 量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:bEnable, nLength, hWnd。
匈牙利命名法中常用的小写字母的前缀:
前缀 类型 描述
a Array 数组
b BOOL 布尔
by BYTE 无符号字符
c char 字符
cb Count of bytes 字节数
cr Color reference value 颜色值
cx,cy Count of x,y(short) 长度
dw DWORD 双字(无符号长整形)
f Flags 标志
fn Function 函数
g_ Global 全局的
h HANDLE 句柄
i Integer(int) 整数
l Long(long) 长整数
lp Long point 长指针
m_ Data member of a class 类的数据成局行员
n Short(short) 短整型
np Near point 短指针
p Point 指针
s String 字符串
sz Zero terminated string 以0结尾的字符串
tm Text metric 文本规则
u Unsigned int 无符号整数
ul Unsigned long(ULONG) 无符号长整数
w WORD 无符号短整数
x,y x,y coordinates(short) 坐标
v Void 空
有关项目的全局变量用g_开始,类成员变量用m_。
前缀 类型 例子
C 类 CDocument, CPrintInfo
m_ 成员变量 m_pDoc, m_nCustomers
g_ 全局变量 g_Servers
二、驼峰命名法:近年来越来越流行。
驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
例如:
printEmployeePaychecks();
函数名中每一个逻辑断点都有一个大写字母来标记。
三、帕斯卡(Pascal)命名法:与驼峰命名法类似。
只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
例如:
DisplayInfo();
UserName
都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。
四、下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
4.1 函数的命名
函数名使用下划线分割小写字母的方式命名:
设备名_操作名();
操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语 宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:
tic_init();
adc_is_busy();
uart_tx_char();
中断函数的命名直接使用 设备名_isr() 的形式命名,如:
timer2_isr();
4.2 变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:
int length;
uint32 test_offset;
单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。
局部静态变量,应加s_词冠(表示static),如:
static int s_lastw;
全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void (* g_capture_hook)(void);
4.3 常量及宏的命名
采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
防止模块间命名的重复。如:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
当然,看作接口的宏可以按照函数的命名方法命名,例如:
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。
Ⅱ 该程序中的常量的名字是什么
常量是说从程序开始到结束,数值始终保持不变的量。整型常量就是平时算术上写的没有小数点的整数,由阿拉伯数字1、2、3、4、5、6、7、8、9、0组成。
常量分为两种:
1、字面值常量。例如println输出的语句中双引号引起来的内容,他的值在最后是不会发生改变的。常量分为六种:字符串常量,整数常量,小数常量,字符常量,布尔常量,空常量。
2、自定义常量。
常量的广义概念是:‘不变化的量’。例如在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;不同的微粒的各自的质量。
换言之,常量在计算机技术方面虽然是为了硬件、软件、编程语言服务,但是它并不是专门为硬件、软件、编程语言而引入的概念。常量可区分为不同的类型,如:25、0为整型常量,6.8为实型常量,‘a、b’为字符常量。
常量一般从其字面形式即可判断,这种常量称为字面常量或直接常量。在讨论函数的值随着自变量的关系发生(变大或者变小)改变时,函数中往往是有一个或者一个以上的常量,人们着重研究这些变化程度的规律,往往是容易寻找到事物发展的规律在大脑中的正确反映。
对于‘常量’的通俗比喻-“如同大山不被轻而易举地改变”(当然,地球上的重力加速度到海枯石烂也会改变;而人们使用的常量是时间不很漫长的那一段时期基本上不会改变的量。而真空状态中的光速是常量理论上不可改变,是常量)。
Ⅲ 在程序设计中,什么是变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中。
变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。例如,可以创建一个名为Click Count的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址。
只要通过变量名引用变量就可以查看或更改变量的值。在VB Script中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant。
变量是记录事物特定的状态的对应的方式,变量主要是变和量,变表示值是可变的,不固定的,量表示的是记录的事物的状态就叫量。执行程序的过程就是一系列状态的变化的过程。
定义变量:
name='egon'
变量的三个特征:
1、变量名:变量名用来引用变量值的。即但凡要用变量值,都需要通过变量名。
2、赋值符号:赋值。
3、变量值:即我们存放的数据,是用来记录现实世界中的某种状态的。
引用计数:python的赋值是在内存空间开辟一个小的空间将变量值放进去,然后将变量名与这个值绑定,这样这个值得被引用次数就增加了一次。
引用计数增加:x=10 #10身上的引用计数增加,y=x #2。
引用计数减少:x=11 #10身上的引用计数减少1。del y #del的意思是解除绑定,10身上的引用计数减少1,引用计数一旦为0,就是垃圾,会被python的垃圾回收机制自动回收。
声明变量:
声明变量的一种方式是使用Dim语句、Public语句和Private语句在Script中显式声明变量。例如:
Dim Degrees Fahrenheit。
声明多个变量时,使用逗号分隔变量。例如:
Dim Top, Bottom, Left, Right。
另一种方式是通过直接在Script中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行Script时出现意外的结果。因此,最好使用Option Explicit语句显式声明所有变量,并将其作为Script的第一条语句。
(3)编程软件中布尔量是什么扩展阅读:
变量的命名规则:
首先,我们必须给变量取一个合适的名字,就好像每个人都有自己的名字一样,否则就难以区分了。在VB6中,变量的命名必须遵循以下规则:
(1)变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成;最后一个字符可以是类型说明符;
(2)变量名的长度不得超过255个字符;
(3)变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别、使用的作用范围——例如一个过程、一个窗体等等。有关引用变量作用范围的内容,将在以后介绍。
(4)变量名不能是VB中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名。
关键字是指VB6语言中的属性、事件、方法、过程、函数等系统内部的标识符。如已经定义的词(if、endif、while、loop等)、函数名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。
例如:strName1,intMax_Length,intLesson,strNo3等是合法的变量名,而A&B,all right,3M,_Number等是非法的变量名。
注意:
(1)变量名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)。C语言中区分大小写。不同的语言有不同的规则。
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。例如:假定正在为水果铺编一个销售苹果的软件。我们需要两个变量来存储苹果的价格和销量。
此时,可以定义两个名为Apple_Price和Apple_Sold的变量。每次运行程序时,用户就这两个变量提供具体值,这样看起来就非常直观。具体方法是:通过用一个或多个单词组成有意义的变量名来使变量意义明确。例如,变量名SalesTaxRate就比Tax或Rate的意义明确得多。
(3)根据需要混合使用大小写字母和数字。一个合理协议是,变量中每个单词的第一个字母大写,例如:DateOfBirth。
(4)另一个合理协议是,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如,使用strName来说明Name变量保存字符串型数据。这种命名方法叫匈牙利命名法。
参考资料来源:网络-变量
Ⅳ Java面试题,常见面试题及答案汇总
Java最新面试题附赠答案
Q1: Java内部类和子类之间有什么区别?
答案:内部类是指在一个外部类的内部再定义一个类,内部类对外部类有访问权限,可以访问类中定义的所有变量和方法。子类是从父类(superclass)中继承的类,子类可以访问父类所有public和protected的字段和方法。
Q2: 静态方法和静态变量的目的是什么?
答案:静态变量被类的所有实例共用,静态类只能访问类的静态变量,或调用类的静态方法。
Q3: Java语言中有哪些常见的访问说明符,有什么意义?
答案:Java中的访问说明符是放在类名之前,用于定义访问范围的关键字,常见的访问说明符有以下几类:
Public:公共,能被项目中的任何一个Class、Method、Field访问。
Protected:受保护,能被同类或子类访问,不能从外部访问。
Default:默认,只能被同一个包的ClassMethod、Field访问。
Private:私有,只能被本类访问。
Q4: 什么是数据封装及其意义?
答案:封装是面向对象编程中用于在单个单元中组合属性和方法。封装可以帮助程序员遵循模块化方法进行软件开发,每个对象都有自己的一组方法和变量,并且可以独立干其他对象来执行其功能。另外,封装也有数据隐藏的目的。
Q5: 什么是 singleton class(单例类)? 并给出其用法的实际例子。
答案:单例类只能有一个实例,必须自己创建自己的唯一实例,必须给所有其他对象提供这一实例。单例做差枯使用场景的最佳实践是由于某些驱动程序限制,或由于许可问题的限制只能连接数据库。
Q6: 什么是循环? Java中有哪些循环?
答案:循环用于编程中重复执行语句,Java中的循环有三类:
1、for循环
for循环用于执行指定重复次数的语句,当程序员明确知道循环次数可以使用for循环。
2、While循环
当语句满足条件时开始进行重复执行,直到语句不再满足条件退出循环。While循环中在执行语句之前先检查是否满足条件。
3、do while循环
Do while 和while循环基本类似,唯一不同的是do while是先执行语句再检查条件,也就是说dowhile循环至少会执行一次语句。
Q7: 什么是无限循环? 如何声明无限循环?
答案:无限循环是指无条件执行,无限运行。无限循环可以由定义中断语句块来结束。
Q8: Java中的double和float变量有什么区别?
答案: float是单精度浮点数,内存中占用4字节double是双精庆册度浮点数,内存中占用8字节。
Q9: Java中的Final关键字是什么意思纯洞? 请举例说明。
答案: final是Java中的关键字,有“无法改变”、“终态”的含义,final类不能被继承,没有子类,final类中的方法默认是final的,且不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。下面的例子中,const_val被声明且赋值为常量100:Private Final int const_val=100而当一个方法被声明为final之后,它不能被子类覆盖,而且会比其他方法都快。
Q10: 举例说明什么是三元运算符?
答案:三元运算符,也称为条件运算符,根据布尔值来决定将哪个值分配给变量,它被表示为...? ...:...
在下面的示例中,如果rank为1,status=Done,否则status=Pending。
Q11: 什么是Java Packages? 其意义是什么?
答案:为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包的作用:
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Ⅳ Java语言好学么
1、 java好学吗?
从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少。即使是零基础也不用担心,java可以零基础授课,入门比较简单,难的是学深入,这不是一件容易的事。学习java是一个循序渐进的过程,要想完全凭自学是很难精通这一技能的。
2、java是不是最难学的语言?
Java是一种面向对象的语言,因而在程序设计思路上要比C类的语言简单得多,但是Java最重要的基础,起步越踏实,后期的学习越简单。但问题在于Java的涉及面很广,并不是单单的知识语言,而是一个知识体系,Java基础,高级。Java Web,Jave Script,JSP,各种框架知识等等都是需要你去学习的,只有掌握的知识足够全面踏实,才能成为一个Java工程师。单单靠Java编程语言是无法完成工作的。
java编程语言难度大于PHP Python Golang 小于C++
3、java和c++学哪个找工作范围比较广一些,以后的发展能好一些?
前提是两种语言都是一种熟练度,都需要精通,两种语言都很热门,有能力工作都好找,C++更底层,较复杂,应用广。JAVA通过调用API接口来完成工作(注:JAVA底层实现用C++,C完成的)适合做应用,流行,相对C++简单