正确使用变量和数据类型

 1.1 什么是变量

现在我们修改一下之前编写的Hello World程序,实现从键盘输入一个名字,如Mike,屏幕上就输出”Hello,Mike”。代码如下:

1    import java.util.Scanner;
2    class HelloMike{
3        public static void main(String[] args){
4            Scanner sc = new Scanner(System.in);
5            String name = sc.next();
6            System.out.println("Hello," + name );
7        }
8    }

第4条语句是实例化一个Scanner对象,负责从键盘获取输入的数据1
程序的基本思路是把输入的姓名先存放在name中(第5条语句),然后再从name中把刚存放的数据拿出来,和”Hello,”拼接在一起组成一句话,用println将其打印输出。name在这里充当的是一个临时存放数据的场所,我们把name叫做变量。
事实上,数据并不是保存在name这个名字里,而是存储在内存单元中的,变量仅仅是代表那块内存单元。如:

String name;

这条语句意思是告诉计算机程序name代表一块存储String类型数据的内存单元,其中的String表示这块内存单元用来存放字符串数据,name表示这块内存单元的代号。对name进行操作其实就是在对name所表示的那块内存进行操作。操作无非就两种:将数据存放到名称为name的那块内存中,或从name中把数据拿出来用,如:

name = "Hello";
name = name + "," + "Mike";

附注
1. 第4条语句是实例化一个Scanner对象,对象名称为sc,sc.next()方法能实现等待用户输入并获取到输入的数据。因为Scanner类存在于java.util包中,所以需要添加第1条import语句,表示将java.util包中的Scanner类引入到本程序中来。java.util包是JDK的一部分,在安装JDK的时候就被安装进我们的电脑中了。以后我们还会陆续用到JDK中很多其它包中的类,使用方法与这里是一样的。

 

1.2 变量的使用方法


使用变量共分三个步骤:声明变量、给变量赋值、读变量的值。
(1) 声明变量
在Java语言中,所有的变量在使用前必须声明。声明的时候必须指明变量类型和变量名称。声明的基本形式有如下两种:

  • 数据类型 变量名;//声明一个变量
  • 数据类型 变量名 = 值;//声明一个变量,同时初始化一个值

也可以在一行内声明多个变量:
数据类型 变量名1 = 值1,变量名2,变量名3 = 值3;
注意,给变量起名是有要求的,变量名必须符合一定的规则:


(2) 给变量赋值:赋予变量一个数据。
(3) 读变量的值:将变量的值读出来参加运算。
优秀攻城师的习惯:
1、变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 myAge
2、变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 保存“学生姓名”信息
PS: Java 变量名是区分大小写的,所以 price 和 Price 是两个完全不同的变量哦!


1.3 数据类型


我们对整数、小数、分数...这些概念都很熟悉,它们各自代表一类相同性质的数。程序设计里我们也要用到这个概念——数据类型。一种数据类型代表一类数据(当然也包括对这类数据的操作规则)。Java中有8种基本数据类型,分别代表8中不同性质的数据。

下面介绍下其中几种常用的数据类型:
int:代表整数。一个int类型的整数的范围是−231~231 – 1。int类型的数据在真是世界中也是被大量使用的,在程序中当然也是相当重要的。int类型的数据可进行加、减、乘、除运算,运算方法和优先级顺序与数学中的是一样的,如下表所示:

你可以运行IntOps.java程序来了解int类型数据的运算规则。

 char和String:char类型表示的是单个字母或者其它可以通过键盘输入的字符。通常除了给char类型的变量赋值之外,char类型的数据很少参与其它运算。String类型是数据是由多个char数据组成的,如“Hello World”一共由11个字符组成。程序中对String类型数据的操作运算比较多,其中最经常使用的一种操作是将两个String数据连接成一个String。例如下面的程序片段:

1 String a, b, c;
2 a = "Hello,";
3 b = " Bob";
4 c = a + b;

第1条语句声明了3个String类型的变量,后面3行语句是给这三个变量赋值。最后c的值是”Hello, Bob“。Ruler.java代码演示了String数据连接操作。
double:double代表浮点数,它可以表示一个最小为4.9 x 10^-324,最大为1.7 x 10^308的数字。它可以是正的或负的。所有实数被称为double字面量。 double字面量可以可选地以d或D结尾,例如1.27d。后缀d或D在double字面量中是可选的。19.7和19.7d代表相同的double字面量。程序DoubleOps.java演示了double类型数据的运算操作。
boolean:boolean是布尔类型,布尔数据类型只有两个有效值:true和false。这两个值称为布尔值字面量。布尔变量不能转换为任何其他数据类型,反之亦然。boolean类型数据主要有三种操作:&&(与)、||(或)、非(!):
&&:a && b,a为true并且b为true,a&&b结果为true,否则为false;
||:a||b,a和b中有一个为true,则a||b结果为true,否则为false;
!:!a,如果a为false,则!a结果为true。


1.4.关系运算


关系运算主要是用来比较两个操作数之间的大小相等关系,见下表:

 

1.5 数据类型转换


自动转换
被转换的数据类型范围比目标数据类型范围小时,java会自动转换。
显示转换

  •  调用转换方法,如Integer.parseInt(), Double.parseDouble().
  •  强制转换。一些基础数据类型之间可以进行强制类型转换,但会引起数据信息丢失,所以转换的时候需要小心。

字符串类型自动转换


技能拓展


如何有效利用API


有时候为了完成某个程序任务,除了需要用到上述简单的算术运算、关系运算等运算操作外,可能还会用到Java类库中提供的一些操作方法,比如求绝对值、求三角函数、在终端窗口中打印输出一串字符等等。当我们需要使用Java类库方法的时候,我们可以通过查阅API(Application programming interface,应用程序编程接口)文档的途径来获取这些方法的用法。API是一些预先定义的函数(封装在类中),目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。例如:
 在终端窗口打印输出字符串

  将字符串转换为基础数据类型:

 数学运算

通常API提供方会随API一起发布一套API说明文档。例如我们可以在Oracle官方网站上找到JDK的API说明文档:https://docs.oracle.com/javase/8/docs/api/index.html,官网这份文档是英文的,对应中文版可在http://tool.oschina.net/apidocs/apidoc?api=jdk-zh这个地址中查阅。

编程实践

  1. 编写一个程序Distance.java,从命令行获取两个整型参数x和y,求点(x,y)到(0,0)之间的距离。
  2. 编写一个程序RandomInt.java,程序从命令行接收一个正整数n,打印输出一0到n-1之间的随机整数。
  3. 编写一个程序Quadratic.java,用来计算x2+bx+c=0(b2-4c>0)的根。
posted @ 2018-09-18 11:25  盆古  阅读(338)  评论(0编辑  收藏  举报