第二章 第一个游戏

系列教程导航

2.1 Java基础一 你好

2.1.2 下篇

文章目录

  • 尝试
  • 成功
  • 数据类型
  • 后记

尝试

还记得吗?在上篇,我们提出了一个进阶任务:打印多句“你好,XXX”。由于你好是重复出现多次的内容,所以我们想到了给它取一个名字,也就是标识符。如果你已经忘记了上篇的有关知识,可以点击下面的链接回到上篇。

接下来,让我们进一步思考,在Java程序中应该如何书写这一个语句:给“你好”取一个标识符。我们日常生活中也许会这么说:“你好”叫做nh,(举个例子,他叫做孙悟空)或者说nh就是“你好”。(举个例子,孙悟空就是他)

在Java程序中,我们把这个语句称为赋值语句。也就是说,我们会把“你好”这一个值赋予给nh

那么赋值语句到底是什么样的呢?很简单,它的基本格式为:

标识符 = 值;

注意这里的等号的含义并不是数学上的相等,而是赋值。这句话的意思是,把赋值号右边的值赋给左边的标识符所代表的内容。

很简单吧!现在让我们来试一试:

然后你惊奇地发现这一句话下面出现了红色的波浪线,这说明AIDE检查到了一些问题。我们在写程序的时候经常会碰到各种各样的问题,所以碰到问题不用惊慌。在AIDE里面,我们长按红色波浪线标出的代码,就可以看到错误的原因了。

首先,我们长按nh

AIDE告诉我们说,nh是未知的。这个是容易理解的。举个例子,我们如果想要写“他是个帅哥”这句话,最好先在前文说清楚到底是谁。在Java程序中也是如此,我们如果想要使用这个标识符,就得先告诉程序这个标识符究竟是什么。

我们再来长按你好

错误的原因竟然和刚才的一样:你好是未知的内容。这是为什么呢?带着这些疑问,请你接着看下一个部分。


成功

在前面的文章,我们经常提到标识符。但是,标识符其实只是一个名字,我们更关注的其实是标识符所代表的内容。标识符所代表的内容往往是一个变量。既然有变量,那么就应该会有常量。所以我接下来会详细讲解常量和变量的知识。

常量,跟数学里的常数有点像,是不能改变的数值。比如说,1的值就是1,永远不可能变成2。在Java中,有如下的6类常量:

  1. 整数常量。比如1,2,3……
  2. 小数常量。比如1.1,2.7,3.1415……
  3. 布尔(英文是boolean,它是一个关键字)。布尔类型的常量只有两个值:true和false(它们也是关键字)。学过英语的人都知道,true是真,false是假。
  4. 字符常量。它由英文单引号和里面的一个数字、字母或者符号组成。比如’a’,‘字’,‘2’,’$’……
  5. 字符串常量。它和字符常量相似,由英文双引号和其中的一个或多个字符组成。比如"good",“3Q”,“我”……
  6. null常量。它的意思就是“空”,什么都没有。null常量只有一个值:null(它也是关键字)

上面的六种常量在Java中会频繁地使用到,所以即使现在不是很清楚,也没关系,有一个大体的印象就行。

Java中除了常量之外还有变量。想象一下数学中的未知数,它和Java中的变量就比较相似。

更加严谨地讲,变量是内存中的一个存储区域,这个区域有自己的名称(变量名)和类型(数据类型),里面的数据可以在同一个数据类型的范围内不断变化。

那么,我们为什么要引入变量的概念呢呢?这是因为我们在Java程序中往往会操作很多常量,而这些常量里面,也许有很大一部分都是用过一次之后就没有作用了。如果我们不引入变量的话,操作这些数量巨大、而且不一定常用的常量将会变得非常困难。所以我们会用变量来不断地存放同一个类型的常量。而且变量可以重复使用,所以说我们往往只用很少的变量就可以操作大量的常量。

我们使用变量的时候,一定要注意,变量往往具有一定的作用范围(或者说是生命周期)。因为变量本质上是内存里的一个存储区域,如果一个程序里的所有变量都可以在整个程序的任何位置使用,那也就意味着它们会一直占据着内存里的一部分区域,这显然是不合理的。比较好的情况应该是:需要用到变量的时候就定义变量;不需要的时候,它会被及时删除。另一个需要注意的地方是,变量需要被初始化之后,才能使用。变量的初始化其实就是给它赋予一个初始的值。这是因为,如果变量没有被初始化,程序就不知道它到底代表的是哪个值。

那么,我们到底如何定义一个变量呢?很简单,定义变量的格式一般有如下两种:

  1. 不指定初始化值,只是声明变量

数据类型 变量名;

  1. 定义变量并指定初始化值

数据类型 变量名 = 初始化值;

关于数据类型我会在文末列一个表,这里我就先简单地介绍一下我们即将用到的数据类型(注意大小写):String,即字符串。

现在我们终于可以解答上面提出的疑问了。因为nh这一变量没有被定义,所以是未知的;因为你好这两个字符没有被双引号标记,所以它不是一个常量,是未知的值。

现在让我们来定义一个变量,数据类型是String,变量名是nh,并指定初始化值为字符串"你好"

这一次,我们的代码终于没有错误了!(黄色波浪线只是AIDE的提示,并不是代表你的代码出现了错误)接下来,我们将真正地解决上篇提出的进阶任务。

顺便一提,为了将一个字符串和一个字符串类型的变量组合在一起,我们将会使用 + 。注意这个虽然和加号是同一个形式,但是准确地讲,此处它叫做连接符,也就是把两个字符串按顺序连在一起,很形象吧。

上面的程序运行之后的结果如下:

成功!


数据类型

数据类型 基本数据类型 数值型 整数类型 byte short int long
浮点类型 float double
字符型 char
整数类型 boolean
引用数据类型 class
接口 interface
数组 []

这里大家可能会感到疑惑:为什么整数和浮点有那么多类型呢?其实,这涉及到数字的长度问题。我们知道,在计算机里面,数字最后是会被转成二进制的。不同长度的二进制数可以表示的数字数目是不一样的,所占的内存也是不一样的。根据不同的需求,我们就可以选择合理的整数和浮点类型。

我们一般把8位二进制数叫做一个字节(byte)。整数的类型有四种,byte用一个字节表示(所以说byte类型整数的范围为-128 ~ 127),short两个(范围-32768 ~ 32767),int四个(范围-2³¹ ~ 2³¹-1)和long八个。一般来讲,我们会默认整数的类型是int。

类似的,float被称为单精度小数,它由四个字节表示,而double是双精度小数,它由八个字节表示。一般来讲,我们会默认小数的类型是double。


后记

这一篇文章的篇幅总体比较长,但是其实思路还是很清晰的:我通过打印“你好,XXX”这一个任务引出了Java的几个基本知识点:标识符关键字常量和变量数据类型。本节的内容虽然简单,但是稍微有一点多。尽管如此,我们并不需要死记硬背,因为这些东西后面会频繁地使用,所以现在只求理解即可。如果后面记不得了,再回来回顾一下即可。

感谢你的阅读!本教程会长期不定时更新。本人不是大神,也会犯错,如果有建议或者提问的话,欢迎评论留言!

系列教程导航

AIDE手机编程初级教程(零基础向) 2.1.2 Java基础一 下篇相关推荐

  1. AIDE手机编程初级教程(零基础向) 1.2 初识界面编程

    第一章 第一个应用 系列教程导航 1.2 初识界面编程 文章目录 为什么 讲解 后记 为什么 对于一个Android应用来说,一个好看的界面是非常重要的.在上一篇文章,你已经学会了自定义我们的第一个应 ...

  2. AIDE手机编程初级教程(零基础向) 3.4 本章小结

    第三章 优化小游戏 系列教程导航 3.4 本章小结 也许有点草率吧,不过我还是决定结束第三章.第三章的内容相比于前面的内容要难不少,大家看起来应该会很吃力,当然,更多的原因是因为我讲的不够好(虽然我经 ...

  3. AIDE手机编程初级教程(零基础向) 第二章序言

    第二章 第一个游戏 系列教程导航 第二章序言 文章目录 前言 本章目标 第一个Java程序 后记 前言 在第一章里面,我们开发了自己的第一个应用.虽然我们开发这样的应用可能只要几分钟不到,但是它实在是 ...

  4. AIDE手机编程初级教程(零基础向) 2.7 本章小结

    第二章 第一个游戏 系列教程导航 2.7 本章小结 在第二章 序言这篇文章里面,我提到了我们这一章的目标.通过一共6个小节的学习,我们学习到了Java和Android开发的很多的基础知识,并且在2.6 ...

  5. AIDE手机编程初级教程(零基础向) 3.2.1 设计欢迎页(主体)

    第三章 优化小游戏 系列教程导航 3.2 设计欢迎页 3.2.1 主体部分 文章目录 封装 欢迎页 后记 封装 这一部分和本节内容其实关系不大.不过,我在之后的文章中,也许都会安排这样的一个部分.安排 ...

  6. Java入门教程:最全面最简单的Java基础教程

    Java是一种跨平台的语言,一次编写,到处运行,在世界编程语言排行榜中稳居第二名(第一名是C语言). Java用途广泛,可以用来开发传统的客户端软件和网站后台,也可以开发如火如荼 Android 应用 ...

  7. Java基础教程0-测试人员为什么要掌握Java基础

    本系列我们来学习Java的基础语法部分,和Python一样,Java也是一门编程语言,而且比Python使用更广泛,Java的开发人员数量远远要多于Python的开发人员.作为企业的软件开发来讲,一般 ...

  8. java语言基础总结ppt_我的java基础知识总结ppt

    昨天加上今天,我把java基础知识总结的ppt做好了,其中包括: 1基础阶段所有项目展示 2.阶段自我总结,自己的提升和不足 3.后期学习规划 我在ppt里面把几个有代表性项目展示了出来,并且描述了我 ...

  9. java初级能干什么_小黄鸭系列java基础知识 | java能干什么?

    java能干什么? 前言 java本身只是一种编程语言,一种工具,我们在使用任何工具之前,应该要充分了解这个工具能干什么,只有搞清楚了这问题,你才能清楚你要不要使用它.所以今天我们要探讨的问题就是-- ...

最新文章

  1. hadoop集群安装
  2. 华为自动驾驶实车实路测试视频曝光!
  3. Tungsten Fabric SDN — SmartNIC vRouter 软件架构设计
  4. JavaScript中判断为整数的多种方式
  5. STM32F0308开发环境的选择--CooCox CoIDE篇
  6. swift 去json空格_我尽力了,你们快些拿去吧!
  7. 设计模式笔记 18. Observer 观察者模式(行为型模式)
  8. 洛谷P6097:【模板】子集卷积(FWT)
  9. swiper叠加轮播效果 (含源码) - 案例篇
  10. SpringCloud(二) 生产者、消费者工程搭建与调用(下)
  11. 《编译原理》学习笔记 ·003【第二章:文法和语言(形式语言理论)-2】
  12. windowsC盘msp文件清理
  13. 【课程复习+记录】最优化理论与方法
  14. 阿里云Centos6.6安装配置docker
  15. Linux 命令之 scp 文件传输
  16. layer弹出层的使用(layer弹出提示框,layer弹出一张图片,layer弹出地图框)
  17. 【20保研】厦门大学信息学院2019年全国优秀大学生暑期夏令营招生简章
  18. 张尧浠:美股反弹避险情绪降温、黄金迎美零售看回撤力
  19. 计算机功能键盘使用方法,键盘的使用方法介绍 键盘上都有哪些功能按键
  20. ajax authorization,ajax跨域,_ajax Authorization 鉴权失败,ajax跨域 - phpStudy

热门文章

  1. HTML+CSS实战提升
  2. mysql省市区邮政编码和区号级联sql文件
  3. 神经网络主要类型及其应用指南
  4. Premiere Pro CC2019 软件安装包+安装教程
  5. android获取包名的几种方法
  6. 在线学习(online learning)总结
  7. 8. 使用 Azure Function
  8. ARM汇编语言学习笔记
  9. 读书笔记-----追风筝的人
  10. 【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题