欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java基础就业培训教程第二章张孝祥Word格式文档下载.docx

    • 资源ID:5338235       资源大小:536.71KB        全文页数:62页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java基础就业培训教程第二章张孝祥Word格式文档下载.docx

    1、第二种是多行注释,就是在注释内容前面以单斜线加一个星形标记(/*)开头,并在注释内容末尾以一个星形标记加单斜线(*/)结束。当注释内容超过一行时一般使用这种方法,如:/* int c = 10;int x=5; */第三种注释方法是文档注释,是以单斜线加两个星形标记(/*)开头,并以一个星形标记加单斜线(*/)结束。用这种方法注释的内容会被解释成程序的正式文档,并能被包含在诸如javadoc之类的工具程序提取的文档里,用以说明该程序的层次结构及其方法。关于这种注释的详细用法,我们会在后面的章节中讲解。/*/中可以嵌套“/”注释,但不能嵌套“ /*/”,如:下面的注释是非法的:/*/*int c

    2、 = 10;*/不得不说:我们要从开始就养成良好的编程风格,软件编码规范中说:“可读性第一,效率第二”。在程序中必须包含适量的注释,以提高程序的可读性和易于维护性,程序注释一般占程序代码总量的20%-50%。2.1.5 Java中的标识符Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。下面是合法的标识符:indentifier,usernameuser_name_userName$username 下面是非法的标识符:class98.3Hello World正确的路有一条,错误的路千万条,何苦要

    3、去记住有哪些错误的路呢?永远用字母开头,尽量不要包含其他的符号就行了。2.1.6 Java的关键字和其他语言一样,Java中也有许多保留关键字,如public,break等,这些保留关键字不能被当作标识符使用。其实大家不用死记硬背到底有哪些关键字,知道有这回事就足够了,万一不小心把某个关键字用作标识符了,编译器就能告诉我们这个错误。下面是Java的关键字列表,大家就留个初步的印象吧!abstract boolean break byte case catch char class continue default do double else extendfalse final finally

    4、 float for if implementimport instanceof int interface long native newnull package private protected public return shortstatic strictfp super switch this throw throwstransient true try void volatile while synchronized注意:Java 没有sizeof、goto、const这些关键字,但不能用goto、const作为变量名。2.1.7 Java中的常量常量就是程序里持续不变的值(有的

    5、书中称其为字面量或实字),Java中的常量包含整型常量,浮点数常量,布尔常量等,下面我们来看一下它们是如何表示的:整型常量整型常量可以分为十进制,十六进制和八进制来表示:十进制:0 1 2 3 4 5 6 7 8 9 以十进制表示时,第一位不能是0(数字0除外)。十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F 以十六进制表示时,需以0x或0X开头,如:0x8a 0Xff 0X9A 0x12八进制:0 1 2 3 4 5 6 7 八进制必须以0开头。如:0123 045 098 046长整型:长整型必须以L做结尾,如:9L 156L浮点数常量:浮

    6、点数常量有float(32位)和double(64位)两种类型,分别叫做单精度浮点数和双精度浮点数,表示浮点数时,要在后面加上f(F)或者d(D),用指数表示也可以。由于小数常量的默认类型为double型,所以float类型的后面一定要加f(F),用以区分。2e3f 3.6d.4f 0f 3.84d 5.022e+23f都是合法的。布尔常量:布尔常量用于区分一个事物的正反两面,不是真就是假。其值只有两种:true和false。字符常量:字符常量是由英文字母、数字、转义序列、特殊字符等的字符所表示,它的值就是字符本身,如:a 8tu0027字符常量要用两个单引号括起来,Java中的字符占用两个字

    7、节,是用unicode码表示的,我们也可以使用unicode码值加上u来表示对应的字符。 字符串常量:字符串常量和字符型常量的区别就是:前者是用双引号括起来的常量,用于表示一连串的字符。而后者是用单引号括起来的,用于表示单个字符。下面是一些字符串常量:Hello World 123Welcome nXXX&多学两招:有些时候,我们在无法直接往程序里面写一些特殊的按键,比如你想打印出一句带引号的字符串,或者判断用户的输入是不是一个回车键,等等。其实它们都可以用一些转义字符来表示,以下一些特殊字符的意义,供参考:r表示接受键盘输入,相当于按下了回车键;n表示换行;t表示制表符,相当于table键;

    8、b表示退格键,相当于Back Space;表示单引号,是双引号;表示一个斜杠“”。比如上面的Welcome n XXX,它的运行结果是:WelcomeXXXnull常量:null常量只有一个值,用null表示,表示对象的引用为空。2.2 变量及变量的作用域2.2.1 变量的概念变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。用一个变量定义一块内存以后,程序就可以用变量名代表这块内存中的数据。我们来看一下:int x=0,y;y=x+3;第一句代码分配了两块内存用于存储整数,分别用x,y作为这两块内存的变量名,并将x标识的内存中的数

    9、据置为0,y标识的内存中的数据为其原始状态,可以认为是一个未知数。第二句代码的执行过程,程序首先取出x代表的那块内存单元的数,加上3,然后把结果放到y所在的那块内存单元,这样就完成了y=x+3的运算。2.2.2 Java的变量类型在Java中内建有八种基本变量类型来存储整数、浮点数、字符和布尔值。其中引用数据类型会在以后章节详细讲解,这里只讲基本数据类型。与其他编程语言不同的是,Java的基本数据类型在任何操作系统中都具有相同的大小和属性,不像C语言,在不同的系统中变量的取值范围不一样,在所有系统中,Java变量的取值都是一样的,如表2.1。这也是Java跨平台的一个特性。有四种数据类型用来存

    10、储整数,它们具有不同的取值范围,分别如表2.1所示:类型名 大小 取值范围byte 8位 -128127short 16位 -3276832767int 32位 -21474836482147483647long 64位 -92233720368547758089223372036854775807表2.1这些类型都是有符号的,所有整数变量都无法可靠地存储其取值范围以外的数据值,因此定义数据类型时一定要谨慎。有两种数据类型用来存储浮点数,它们是单精度浮点型(float)和双精度浮点型(double)。浮点数在计算机内存中的表示方式比较复杂,我们在后面的课程为大家进行分析,单精度浮点型和双精度浮

    11、点型的取值范围见表2.2: float 32位 1.4E-453.4E+38,-1.4E-45-3.4E+38 double 64位 4.9E-3241.7E+308, -4.9E-324-1.7E+308表2.2char类型用来存储诸如字母、数字、标点符号及其他符号之类的单一字符。与C语言不同,Java的字符占两个字节,是unicode编码的。$独家见解:计算机里只有数值,当你在内存中看到一个数值时,这个数值可能代表各种意义,比如你看到的文字、图像和听到的声音等都是使用数字形式来表示的。生活中的数值也可以代表其他意义,如1234可以代表密码,存款额,电报信息等。根据上下线索,我们能够知道这些

    12、数值代表的意义。其实,字符也是一个数字,当我们要给一个字符变量赋值时,就可以直接用整数,如:97对应字符,我们使用 char ch=97将字符赋值给变量ch。98对应的是字符b,当在内存里面躺着一个99时,请问,它对应键盘上的哪个字母呢?大家都能够猜出就是字符c。如果我们要将字符x赋给一个char变量,该填一个怎样的整数呢?显然,我们不太容易记住每个字符所对应的数字,所以,我们就用单引号加上这个字符本身来表示那个字符对应的数字,如char ch=boolean类型用来存储布尔值,在Java里布尔值只有两个,要么是true,要么就是false。Java里的这八种基本类型都是小写的,有一些与它们同

    13、名但大小写不同的类,例如Boolean等,它们在Java里具有不同的功能,切记不要互换使用。2.2.3 注意变量的有效取值范围系统为不同的变量类型分配不同的空间大小,如double型常量在内存中占八个字节, float的变量占四个字节,byte型占一个字节等,如图2.1所示:图2.1 byte b=129;/ 编译报错,因为129超出了byte类型的取值范围。 float f=3.5;/编译报错,因为小数常量的默认类型为double型。double型常量在内存中占八个字节,而Java只为float的变量分配四个字节的空间,要将八个字节的内容装入四个字节的容器,显然有问题。改为:float f=

    14、3.5f;编译就可以通过了,因为3.5f是一个float型常数,在内存中只占4个字节。2.2.4 基本数据类型之间的转换在编写程序过程中,我们经常会遇到的一种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量,由于数据类型有差异,在赋值时就需要进行数据类型的转换,这里就涉及到两个关于数据转换的概念:自动类型转换和强制类型转换。 自动类型转换(也叫隐式类型转换)要实现自动类型转换,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围要大于源类型。例如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有的数字类型,包括整型和浮点型彼

    15、此都可以进行这样的转换。请看下面的例子:byte b=3;int x=b; /没有问题,程序把b的结果自动转换成了int型了 强制类型转换(也叫显式类型转换)当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:目标类型 变量=(目标类型)值例如:byte a;int b;a = (byte) b;这段代码的含义就是先将int型的变量b的取值强制转换成byte型,再将该值赋给变量a,注意,变量b本身的数据类型并没有改变。由于这类转换中,源类型的值可能大于目标类型,因此强制类型转换可能会造成你的数值不准确,从下面的图中就可

    16、以看出强制类型转换时数据传递的过程。图2.2请看下面的程序:程序清单:Conversion.javapublic class Conversion public static void main(String args) byte b ; int i = 266 ; b = (byte)i ; System.out.println(byte to int is+b) ; 程序输出入下:byte to int is 10字符串可以使用加号(+)同其他的数据类型相连而形成一个新的字符串,读者只要明白二进制与十进制数之间的转换关系,就不难明白上面程序打印的结果了。要理解类型转换,大家可以这么想像,大

    17、脑前面是一片内存,源和目标分别是两个大小不同的内存块(由变量及数据的类型来决定),将源数据赋值给目标内存的过程,就是用目标内存块去套取源内存中的数据,能套多少算多少。2.2.5 表达式的数据类型自动提升 我们先看下面一个错误程序:Test.java class Test byte b = 5; b = (b-2); System.out.println(b);这段代码中,5-2的值并未超出byte型取值范围,然而当执行这段代码时,Java报出如下错误:Test.java:6: possible loss of precisionfound : intrequired: byte 1 error

    18、这是因为在表达式求值时,变量值被自动提升为int型,表达式的结果也就成了int型,这时要想把它赋给byte型变量就必须强制转换了。因此前面代码中粗体的部分就应该改成:b = (byte)(b-2);这种特殊情况在编程过程中如果遇到了,只要知道怎么解决就可以了。关于类型的自动提升,Java定义了若干适用于表达式的类型提升规则。第一,所有的byte型、short型和char的值将被提升到int型。第二,如果一个操作数是long型,计算结果就是long型;第三,如果一个操作数是float型,计算结果就是float型;第四,如果一个操作数是double型,计算结果就是double型。以下代码演示了Ja

    19、va的类型自动提升规则:Promote.javaclass Promote public static void main(String args) byte b = 50;char c = ;short s = 1024;int i = 50000;float f = 5.67f;double d = .1234;double result = (f * b) + (i / c) - (d * s);System.out.println(f * b) + + + (i / c) + - + (d * s);System.out.println(result = + result);我们看看在

    20、下列代码行的类型提升:在第一个子表达式f*b中,变量b被提升为float类型,该子表达式的结果也提升为float类型。接下来,在子表达式i/c中,变量c被提升为int类型,该子表达式的结果提升为int类型。然后,子表达式d*s中的变量s被提升为double类型,该子表达式的结果提升为double类型。最后,这三个结果值类型分别是float类型,int类型,和double类型。float类型加int类型的结果是float类型。然后float类型减去double类型,该表达式的最后结果就是double类型。 System.out.println()除了可以在屏幕上打印字符串外,还可以直接在屏幕上打

    21、印其他类型的数据,读者再想想System.out.println(+1)在屏幕上的打印结果与System.out.println(+ +1)在屏幕上的打印结果有什么不同呢?前者将字符与整数1相加后得到的结果是整数98,后者将一个空字符串与字符相连后再与整数1相连形成一个新的字符串“a1”。2.2.6 变量的作用域大多数程序设计语言都提供了“变量作用域”(Scope)的概念。在C、C+和Java里,一对花括号中间的部分就是一个代码块,代码块决定其中定义的变量的作用域。代码块由若干语句组成,必须用大括号包起来形成一个复合语句,多个复合语句可以嵌套在另外的一对大括号中形成更复杂的复合语句。 int

    22、x=0; int y=0; y=y+1; x=x+1;代码块决定了变量的作用域,作用域决定了变量的“可见性”以及“存在时间”。参考下面这个例子:TestScope.javapublic class TestScope public static void main(String args)int x = 12; int q = 96; / x和q都可用x is +x);q is +q); q = x; /* 错误的行,只有x可用, q 超出了作用域范围 */q作为在里层的代码块中定义的一个变量,只有在那个代码块中位于这个变量定义之后的语句,才可使用这个变量,q=x语句已经超过了q的作用域,所以

    23、编译无法通过。记住这样的一个道理,在定义变量的语句所属于的那层大括号之间,就是这个变量的有效作用范围,但不能违背变量先定义后使用的原则。下面这样书写的代码在C和C+里是合法的: int x = 12; int x = 96; x = x + 4;/ x运算后的结果为100 x = x - 5;/x运算后的结果为7,而不是95。 在C和C+里面,上面的两个x相当于定义了两个变量,第二层大括号里面的代码对x的操作,都是对第二个x的操作,不会影响到第一个x。第一层大括号里面的代码对x的操作,都是对第一个x的操作,跟第二个x没有任何关系。但这种做法在Java里是不允许的,因为Java的设计者认为这样做

    24、使程序产生了混淆,编译器会认为变量x已在第一层大括号中被定义,不能在第二层大括号被重复定义。2.2.7 局部变量的初始化在一个函数或函数里面的代码块中定义的变量称为局部变量,局部变量在函数或代码块被执行时被创建,在函数或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或进行过赋值操作,否则会出现编译错误,如下面的代码:TestVar.javapublic class TestVar public static void main(String args) int x;/应改为int x=0; /这个x由于没有初始化,编译会报错。2.3 函数与函数的重载2.3.1函数假设我们有一个游戏程

    25、序,在程序运行过程中,我们要不断地发射炮弹。发射炮弹的动作都需要使用一段百行左右的程序代码,我们在每次发射炮弹的地方都要重复加入这一段百行程序代码,程序会变得非常臃肿,程序的可读性也就非常差。假如我们要修改发射炮弹的程序代码,需要修改每个发射炮弹的地方,很可能就会发生遗漏。几乎所有的编程语言中都要碰到这个问题,各种编程语言都将发射炮弹的程序代码从原来的主程序中单独拿出来,做成一个子程序,并为这个子程序安排一个名称,在主程序中需要使用到子程序的功能的每个地方,只要写上子程序的名称就行了,计算机便会去执行子程序中的程序代码,当子程序中的代码执行完后,计算机又会回到主程序中接着往下执行。在Java中,我们将这种子程序叫函数。我们来写一个程序来说明函数的作用与编写方式,程序在窗口上打印出3个由*组成的矩形,如下图所示。图2.3我们可以用下面的程序来实现:Func1.javapublic class Func1/下面是打印出第一个矩形的程序代码 for(int i=0;i3;i+) for(int j=0;j5;j+) System.out.print(*); System.out.println(); /换行 System.out.println(); /下面是打印出第二个矩形的程序代码2;4;


    注意事项

    本文(Java基础就业培训教程第二章张孝祥Word格式文档下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开