Java官方教程(二-1)变量variable(2020.12.15)

前言

本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子;翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着来看一下橙子的翻译版啊,欢迎大家留言讨论,冲鸭!
更多相关文章点击阅读
Java官方教程目录2020最新版

语言基础

变量 variable

你已经了解了objects存储它们的state在fields里面。但是,Java语言也用术语variable。本节讨论field和variable的关系,以及变量命名规则和约定,基本数据类型(primitive types, character strings, and arrays),默认值,字面量(literals)

variable

正如上一节所说,an object stores its state in fields。

int cadence = 0;
int speed = 0;
int gear = 1;

在上篇(一)介绍object的那一节中,介绍了fields,但你可能还有几个问题,例如:命名fields的规则和约定是什么?除了int, 还有哪些数据类型?声明(declared)fields的时候是否必须对其实例化(initialized)?如果没有显示的实例化fields,是否会为它们分配默认值?在本节课中,我们将探讨这些问题的答案,在此之前,你必须先意识到一些技术区别。在Java语言中,术语“fields” and "variable"都被使用;这是新手之间普遍困惑的根源,因为两者看起来似乎指的同一件事情。

Java语言定义了以下几种variables:

  • Instance Variables (Non-Static Fields)
    技术上来讲,对象将其各自的states储存在“non-static fields”中,即declared fields的时候没有使用static关键字。Non-static fields也被称为instance variables,因为它们的值(values)对于每个类的实例(each instance of a class)(换句话说,对于每个object)都是唯一的。一辆自行车的currentSpeed与另一辆的currentSpeed无关。
  • Class Variables (Static Fields)
    A class variables 是任何使用static修饰符declared的field。这告诉编译器,无论该class被instantiated了多少次,该variable确实只存在一个副本(copy)。一个为特定类型自行车定义挡位的field可以被标记为static,因为从概念上来说,相同数量的挡位将用于所有实例(instances)。代码static int numGears = 6;将创造这样一个field。另外,可以用关键字final指示(indicate)the number of gear永远不会改变。
  • Local Variables
    类似于a object储存它的state在fields,a method 通常store它的temporary state在local variables 。declaring a local varivbles的语法类似于declaring a field(例如:int count = 0;)。没有特殊的关键字将a variables 指定为a local variable;而是由declaring variables的位置决定的,该位置在method的左右括号之间。因此,local variables仅对declared它们的method可见;不能被class的其它部分访问。
  • Parameters
    你已经在Bicycle class和“Hello World” application的main method中看到了parameters的示例。回想一下,main method的签名(signature)是public static woid main(String [] args)。这里,args variable是方法的parameter。要记住的一点是,parameter始终被归类为variables,而不是fields。这同样适用于你在本教程中将学到的其它参数接受结构(例如构造函数(constructors)和异常处理程序(exception handlers))。

本教程接下来在讨论fields and variables时将遵循以下一般准则。如果我们讨论的是“fields in general”(不包括local variables and parameters),我们可以简称“fields”。如果讨论适用于以上所有内容,我们可以简称“variables”。橙子说--------fields范围更小一些包括以上2个(Instance Variables (Non-Static Fields) and Class Variables (Static Fields) ),variables范围更大一些,包括以上4个。如果上下文(context)需要区分,我们将酌情使用特定术语(static field, local variables, etc.)。你也可能偶尔看到术语“member”,A type’s fields, methods and nested types统称为它的members。

naming

对于每种允许使用的名称,每种编程语言都有自己的规则和约定,Java语言也不例外。变量(variables)命名的规则和约定如下:

  • 区分大小写(case-sensitive)
    变量名称可以是任何合法的标识符 — 无限长度的Unicode letters和digits(数字)序列,以字母(letter),美元符号( $ ),或下划线( _ )开头。但是,惯例是始终以letter开头,而不是“ $ ”或者“ _ ”;并且,完全不使用“ $ ”。你可能会发现,有时自动生成的名称会包含$,但是你的变量名称应始终避免使用它。下划线字符存在类似的约定,尽管变量名以"_"开头在技术上是合法的,但是不建议这样做。禁止使用空格。橙子说--------以字母letter开头就对了。
  • 后续字符可以是letters, digits, $, or _。为变量命名时,请使用完整的单词,而不是隐晦的缩写。通常,这将使你的代码有更好地可读性,例如,cadence比c直观的多。另外,不能选用关键字(keyword)和保留字(reserved word)。
  • 如果你的名称只有一个单词,则用小写字母。如果包含多个单词,将后续每个单词的首字母大写。例如,gearRatio and currentGear。如果variable存储了一个常量值(constant value),例如static final int NUM_GEARS = 6;则将每个字母大写,并用下划线分割后续每个单词。按照惯例,下划线字符永远不会在其它任何地方使用。

年轻人不要不讲武德,进来了点个赞再走啊!

猜你喜欢

转载自blog.csdn.net/weixin_42509923/article/details/111097509