版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java编程基础《Java面向对象程序设计案例教程(第2版)》目录/Contents2.12.22.3Java基本语法Java中的常量与变量数据类型2.4
数组思政要点/Point守规则与纪律
遵守编程规则,培养严谨细致的逻辑思维和规则意识。稳定性与灵活性
理解稳定与变化的辩证关系,能够适应环境的变化,灵活应对各种挑战。分类与规划
Java中的数据类型丰富多样,引导学生认识到,在生活中也需要进行分类和规划,以便更好地管理自己的时间和资源。团队协作与分工
引导学生体会团队协作与分工的重要性,培养有序规范的工作习惯,提高整体效率。Java基本语法2.1Unicode字符集是一个国际标准,旨在统一世界上所有的书写系统,使计算机能够处理和存储各种语言的文本。Java语言从设计之初就采用了Unicode字符集,这使得Java程序能够跨平台、跨语言地运行,无需担心字符编码问题。2.1.1Unicode字符集Unicode字符集是不断扩展的,能够容纳新的字符和符号。3.扩展性Unicode支持几乎所有语言的字符,使得Java程序能够处理多语言文本,满足全球化需求。1.全球化支持使用Unicode字符集,可以确保在不同平台和设备上显示的文本内容一致。2.一致性0201Unicode的优势032.1.2Java程序的基本格式
Java程序结构Java程序的基本结构包括类定义、方法定义和语句。每个Java程序都至少包含一个类,而类中可以包含多个方法和变量。
类定义类(Class)是Java程序的基本单位。一个类定义了对象的属性和行为。类定义通常包括类名、修饰符(如public)、继承的父类(如果有)以及实现的接口(如果有)。
方法定义方法(Method)是类中的函数,用于执行特定的操作。方法定义包括方法名、返回类型、参数列表以及方法体。方法体是包含实际代码的块,用花括号({})括起来。2.1.2Java程序的基本格式publicclassHelloWorld{//main方法是Java程序的入口点publicstaticvoidmain(String[]args){//打印输出Hello,World!到控制台System.out.println("Hello,World!");}}语句语句(Statement)是Java程序中的基本执行单元。每条语句都以分号(;)结尾。常见的语句包括赋值语句、条件语句、循环语句等。2.1.2Java程序的基本格式1.Java程序是大小写敏感的,因此类名、方法名和变量名在书写时应保持一致。2.每个Java程序都至少包含一个main方法,作为程序的入口点。3.在编写Java程序时,应遵循良好的编程规范,如使用有意义的变量名、注释代码等。语句注意事项:2.1.3Java中的注释注释1.单行注释符//单行注释是最常用的注释,通常用于注释可以显示在一行内的文本,注释内容从//开始到本行结尾。2.多行注释符
/*…*/多行注释以“ /* ”为开头,以“ */ ”为结尾,中间内容为注释的内容。该注释符既可以用于多行注释,也可以用于单行注释。System.out.println("HelloWorld!");//输出打印HelloWorld字符串/*这是多行注释这是多行注释*/2.1.3Java中的注释注释3.文档注释符
/**…*/文档注释以“/** ”开头以“ */ ”结尾,注释中包含一些说明性的文字及一些JavaDoc标签,后期可以用来自动生成文档。/***这个类演示了文档注释*@authorXXX*@version1.2*/2.1.4Java中的标识符(1)标识符可以由字母、数字、下划线( _ )和美元符( $ )组成,但是不能包含@、%、空格等其他的特殊符号,不能以数字开头。例如:123name就是不合法的标识符。(2)标识符不能是Java关键字和保留字(Java预留的关键字,或者以后升级版本中有可能作为关键字),但可以包含关键字和保留字。例如:不可以使用void作为标识符,但是可以使用Myvoid。(3)标识符严格区分大小写,所以number和Number是两个不同的标识符。(4)标识符的命名最好能反映出其作用,做到见名知意。标识符就是用于Java程序中常量、变量、类、方法等命名的符号。使用标识符时,需要遵守以下几条规则:2.1.5Java中的关键字Java语言中有一些具有特殊用途的词被称为关键字,但不能当作一般的标识符使用。Java关键字均用小写字母表示。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhileJava中的常量与变量2.2常量是指在程序上始终保持不变的量。也就是说,一旦被赋值,就不能再更改了。习惯上,常量名使用大写字母,用关键字final修饰。声明常量的语法格式如下:final数据类型常量名=值2.2.1常量的定义例如:
finaldoublePI=3.1415;
finalStringCOURSE="Java"在程序中,如果某个值需要被重复使用多次,就可以将其设置为常量。一方面可以省去重复输入同一个数值的麻烦,另一方面当这个值需要修改时,只需要修改一次。变量是Java程序中的基本存储单元,是内存中的一块空间,能够存放数据和信息。它的定义包括变量名、变量类型和作用域几个部分。2.2.2变量变量名可以由字母、数字、下划线( _ )、美元符( $ )组成,但是不能以数字开头变量的命名规范2.2.2变量(1)驼峰法,即第一个单词首字母小写,其后单词首字母大写,如myName。(2)尽量简短且清楚,见名知意,如stuName“学生姓名”。(3)长度没有限制,但区分大小写,如price和Price是两个不同的变量。变量的命名习惯2.2.2变量变量的初始化Java语言规定,变量在使用前必须先声明,包括声明变量的类型、名称,还可以为其赋初值。声明变量的语法格式如下:类型变量名[=初始值]例如:
inti;chara='A';doublenumber=15;如果声明的几个变量属于同一类型,那么可以一起声明,变量之间用逗号“ , ”隔开。例如:inta,b,c;数据类型2.32.3数据类型Java是一种强类型的语言,也就是说,必须为每一个变量声明一种类型。Java的数据类型可以分为基本数据类型和引用数据类型,本节主要介绍这些数据类型。2.3.1
基本数据类型整型数据表示没有小数部分的数值,可以用十进制、八进制和十六进制表示,一般情况下使用十进制表示,并且它允许是负数。整数类型类
型存储需求取值范围byte1字节-27~27-1short2字节-215~215-1int4字节-231~231-1long8字节-263~263-12.3.1
基本数据类型浮点型数据表示有小数部分的数值。在Java中有两种浮点类型,其中float表示单精度,double表示双精度。浮点类型类
型存储需求取值范围float1字节-27~27-1double2字节-215~215-1double表示的数值精度是float类型的两倍,大部分应用程序都采用double类型。float类型的数值需要在尾部加后缀f或F,例如1.23f。没有后缀的浮点数值(如1.23)默认为double类型,当然也可以在数值尾部加后缀D(如1.23D)。2.3.1
基本数据类型整型数据表示没有小数部分的数值,可以用十进制、八进制和十六进制表示,一般情况下使用十进制表示,并且它允许是负数。整数类型类
型存储需求取值范围byte1字节-27~27-1short2字节-215~215-1int4字节-231~231-1long8字节-263~263-12.3.1
基本数据类型Java语言中,char用来表示单个字符,字符型数据必须用单引号括起来,例如 'a'、'A'等。Java中还有一些用于表示特殊字符的转义字符,如表所示。字符类型转义字符名
称转义字符名
称\b退格\"双引号\t制表\'单引号\n换行\\反斜杠\r回车
2.3.1
基本数据类型布尔型(boolean)包括两个值,即false(假)和true(真),常用于程序的比较和流程控制。基本数据类型在Java中是不可变的,即一旦赋值,其值就不能改变(除非重新赋值)。布尔类型2.3.2
引用数据类型类(Class)在Java中是通过引用指向对象的实例,这些对象存储在堆内存中。引用数据类型包括类(Class)、接口(Interface)、数组(Array)以及枚举(Enum)。当创建一个引用数据类型的变量时,实际上是创建了一个引用,该引用指向存储实际数据的内存位置。用户自定义的类,如String、ArrayList等,以及用户自己定义的类。类的实例通过new关键字创建,存储在堆内存中,而引用(即对象的地址)存储在栈内存中。接口(Interface)接口是一种特殊的引用类型,定义了一组方法,但不实现它们。类可以实现接口,从而提供接口中定义的方法的具体实现。2.3.2
引用数据类型数组(Array)数组是固定大小的、同类型元素的集合。数组通过索引访问,索引从0开始。字符串(String)String类就是一种引用数据类型,用于表示字符串。2.3.3
基本类型与引用类型的区别1.
存储位置基本类型存储在栈内存中。引用类型存储的是对象的引用(即对象的地址),对象本身存储在堆内存中。5.
传递方式基本类型在方法调用时是按值传递的。引用类型在方法调用时是按引用传递的,但传递的是引用的副本,这意味着方法内部对引用的改变(如指向新的对象)不会影响外部引用,但对对象本身的修改(如修改对象的属性)是可见的。4.
可变性基本类型的值是不可变的(除非重新赋值)。引用类型的对象是可变的(对象的属性可以修改)。3.
默认值基本类型有默认值(如int的默认值为0)。引用类型的默认值为null,表示没有指向任何对象。2.
内存分配基本类型在声明时自动分配内存。引用类型在创建对象时分配内存(使用new关键字)。2.3.4
数据类型转换自动类型转换在运行程序时,经常需要将一种类型的数据转换为另一种类型的数据,Java语言提供了这种数据类型相互转换的机制。数据类型的转换分为两种:自动类型转换和强制类型转换。数据类型可以由低字节向高字节进行自动转换,不会损失数据精度。
例如:inta=5;doubleb=16.5;doublec=a+b;在上述代码中,在运行时首先把a自动转换为double类型,然后与b相加,最后赋值给c。2.3.4
数据类型转换强制类型转换当高字节数据转换为低字节数据时,就需要用到强制类型转换,转换后可能导致数据丢失精度。强制类型转换的语法格式是在括号中给出将要转换的目标类型,后面紧跟待转换的变量名。强制类型转换的语法格式如下:
(数据类型)变量名在上述代码中,a是double类型,赋值给b的时候必须强制转换为int类型。doublea=15.5;intb=(int)a;System.out.println(a);System.out.println(b);例如:
数组2.42.4.1数组的声明数组是一种数据结构,用于存储相同类型的数据元素的集合。数组中的每个元素都可以通过索引进行访问。数组在使用之前必须先声明,也就是定义数组元素的类型、数组的名称和维数。数组的声明格式有两种,分别是:
数据类型[]数组名;
数据类型数组名[];注意:数组声明时,并没有在内存中为数组分配存储空间,因此方括号中不能有数组元素的个数。必须先使用new关键字创建数组对象,才能够访问数组中的元素。int[]scores; //定义存储分数的数组,类型为整型doubleheight[]; //定义存储身高的数组,类型为浮点型String[]names; //定义存储姓名的数组,类型为字符串其中,数组名可以是任意合法的变量名,数据类型可以是基本数据类型或者引用数据类型。例如:
2.4.2数组的创建创建数组,需要使用new关键字为数组分配存储空间,语法格式如下:
数组名=new数据类型[数组长度]也可以将以上两步进行合并,在声明数组的同时创建数组,例如:int[]scores; //声明一个整型数组scoresscores=newint[5]; //定义数组scores能够存放5个整型元素Stringnames[]; //声明一个字符串数组namesnames=newString[3]; //定义数组names能够存放3个字符串元素数组长度也就是数组中能存放元素的个数,例如:
intint[]scores=newint[5];Stringnames[]=newString[3];2.4.3数组的初始化数组的初始化可以在声明时直接进行,也可以单独进行。在创建数组后,就可以为每个数组元素进行赋值,例如:int[]scores; scores=newint[5];scores[0]=95;scores[1]=93;scores[2]=80;scores[3]=86;scores[4]=79;2.4.3数组的初始化也可以用以下方式为数组元素赋值,数组长度由“{}”中的元素个数决定。例如://声明并初始化整型数组int[]scores={95,93,80,86,79}//声明并初始化字符串数组String[]stringArray={"Hello","World","Java"};2.4.4数组的长度数组的长度即数组中可以存储的元素数量。可以通过其length属性获取,例如:int[]array={1,2,3,4,5};System.out.println("数组的长度是:"+array.length);//输出:数组的长度是:52.4.5数组元素的使用创建数组后,数组中的元素可以通过索引进行访问和修改,格式为:
数组名[下标]可以对赋值后的数组元素进行操作和处理,如获取并输出数组中元素的值:
int[]scores={95,93,80,86,79}System.out.print("scores数组中第1个元素的值:"+scores[0]);2.4.5数组元素的使用运行时会报错,如图所示。注意:数组下标是从0开始的,也就是说,scores[0]代表数组中的第一个元素,最后一个数组元素的下标为“数组长度-1”。使用数组时要注意下标不能超出范围,如果超出范围,在程序运行时,系统就会抛出数组下标越界异常。例如:
int[]scores=newint[2];
scores[2]=85;2.4.5数组元素的使用【例3-1】循环打印输出数组中的数字。publicclassTest{publicstaticvoidmain(String[]args){//定义一个长度为4的数组int[]scores={78,91,85,88};//循环打印输出数组中的元素,数组最大长度为scores.lengthfor(inti=0;i<scores.length;i++){System.out.println("数组中第"+(i+1)+"个元素的值是"+scores[i]);}}}2.4.5数组元素的使用程序运行结果如图所示其中,数组名具有一个属性length,用于获取数组的长度,其用法为:
数组名.length如上述代码中的scores.length的值为4。2.4.5数组元素的使用【例3-2】定义一个数组hobbys,其值为music、sports、game,循环打印输出。publicclassTest{publicstaticvoidmain(String[]args){//定义一个长度为3的数组String[]hobbys=newString[3];hobbys[0]="music";hobbys[1]="sports";hobbys[2]="game";//循环打印输出数组中的元素for(inti=0;i<hobbys.length;i++){System.out.println(hobbys[i]);}}}程序运行结果如图所示2.4.6二维数组二维数组是数组的数组。其实Java只有一维数组,但是由于数组可以存放任意类型的数据,当数组中的每个元素类型也是数组时,这个数组就被称为多维数组。最常见的是二维数组,可以把二维数组看作一个矩阵。
数据类型[][]数组名=new数据类型[行的个数][列的个数];数据类型[][]数组名;数组名 = new数据类型[行的个数][列的个数];二维数组的创建格式为:二维数组的创建或者:2.4.6二维数组二维数组的赋值和一维数组类似,可以通过下标来逐个赋值,索引从0开始。语法格式如下:
数值类型[][]数组名={{值1,值2…},{值11,值22…},{值21,值22…}};int[][]number=newint[2][3];number[0][0]=11;number[0][1]=32;number[0][2]=15;例如:也可以在声明数组的同时直接赋值。语法格式如下:
数组名[行的索引][列的索引]=值;
例如:
int[][]number={{1,2,3},{4,5,6}};2.4.6二维数组二维数组的访问和输出同一维数组一样,只是多了一个下标而已。二维数组的索引也是从0开始,第一个索引表示行,第二个索引表示列。例如:int[][]number={{1,2,3},{4,5,6}};//访问二维数组元素System.out.println("第一行第二个元素是:"+number[0][1]);//输出:第一行第二个元素是:2在循环输出时,需要里
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 26067-2010硅片切口尺寸测试方法》
- 深度解析(2026)《GBT 26012-2010电容器用钽丝》
- 深度解析(2026)《GBT 25952-2010散装浮选镍精矿取样、制样方法》(2026年)深度解析
- 深度解析(2026)《GBT 25915.4-2010洁净室及相关受控环境 第4部分:设计、建造、启动》
- 2025江苏苏州市公交集团有限公司管理岗位(应届生)招聘7人模拟笔试试题及答案解析
- 2026广东省气象部门气象类高校毕业生招聘5人(广州专场)参考笔试题库附答案解析
- 2025广西国土规划集团西藏办事处招聘备考考试题库及答案解析
- 深度解析(2026)《GBT 25631-2010机械振动 手持式和手导式机械 振动评价规则》(2026年)深度解析
- 高中阶段学校多样化发展的制度瓶颈-基于《高中阶段教育普及攻坚计划》后续评估
- 中船集团第七〇八研究所2026届校园招聘备考考试试题及答案解析
- 中国石化油品销售企业实验室信息管理系统LIMSWeb操作手册
- NY/T 5161-2002无公害食品虹鳟养殖技术规范
- GB/T 27843-2011化学品聚合物低分子量组分含量测定凝胶渗透色谱法(GPC)
- GB/T 19362.2-2017龙门铣床检验条件精度检验第2部分:龙门移动式铣床
- GB/T 18371-2008连续玻璃纤维纱
- 石淋(尿石症)中医诊疗方案
- 《金融学》期末考试复习题库(带答案)
- 《心灵奇旅》观后感
- 2009-2022历年广东省汕尾市事业单位考试《通用能力测试》(综合类)真题含答案2022-2023上岸必备带详解版3
- 钢结构外观、几何尺寸试验检测报告
- 千喜鹤指导手册终版
评论
0/150
提交评论