




已阅读5页,还剩117页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章初次接触JAVA 主要内容 Java语言 网络时代的编程语言Java语言的特点Java程序的编译环境和执行环境第一个Java程序 HelloWorldJava程序的分类Java平台 Java语言 网络时代的编程语言 网络时代编程问题 网络带给我们精彩的同时 也为编程带来了困难 最为突出的表现为环境复杂 问题的解决方法 为了实现一个程序能被多个操作系统所认识 必须像不同语言国家的人交流那样 借助 翻译 的作用 C或C 只有将编译后的文件连接成为 exe 才能在Windows操作系统上运行 C 的解决策略 Java的解决策略 一次编译 处处执行 Java语言的特点 Asimple object oriented distributed interpreted robust secure architecture neutral portable high performance multi threaded anddynamiclanguage 即 Java是一种具有 简单 面向对象 分布式 解释型 健壮 安全 与体系结构无关 可移植 高性能 多线程和动态执行 等特性的语言 Sun公司对Java的定义 Java程序的编译环境和执行环境 编译环境 编译环境的建立需要到Sun的官方网站上下载JDK JavaDevelopmentKit 网址为 Java源代码从编译到解释执行涉及两种环境 运行环境 运行环境需要到Sun的官方网站上下载JRE JavaRuntimeEnvironment 适用不同操作系统的JDK版本 第一个Java程序 HelloWorld 五个步骤 进行JDK的安装配置环境变量编写程序编译执行程序 可能遇到的问题及解决方法 Java程序的分类 从大类上分为Application和Applet 前面的HelloWorld就是Application程序 它们之间的主要区别如下 JAVA程序的分类 将HelloWorld改写成Applet程序 importjava awt importjava applet publicclassHelloWorldAppletextendsApplet publicvoidinit publicvoidpaint Graphicsg g drawString HelloWorld 25 25 编辑html页面 和HelloWorldApplet class在同一目录 取名为HelloWorldApplet html 在其中编写代码 执行结果 程序说明 程序中的import 相当于C语言中的include 是使用已经编译好的类的语法 包括API中的类 在上面的程序当中 如果没有importjava awt 则Graphics类不可使用 没有importjava applet 则Applet类不可使用 Graphics类用于绘图 paint方法 名字不可更改 用于界面刷新 为什么Applet需要嵌入浏览器执行 Applet在浏览器中如何工作的 执行中可能遇到的问题 Java平台 Java不仅是编程语言 还是一个开发平台 目前Sun公司把java平台划分成J2EE J2SE J2ME三个平台 针对不同的市场目标和设备进行定位 J2EE是Java2EnterpriseEdition 主要是为企业计算提供一个应用服务器的运行和开发平台 J2EE将逐步发展成可与微软的 NET相对抗的网络计算平台 J2SE是Java2StandardEdition 主要目的是为台式机和工作站提供一个开发和运行的平台 我们在学习java的过程中 主要是采用J2SE来进行开发 J2ME是Java2MicroEdition 主要是面向电子产品提供一个java运行平台 使java程序能够在手机 机顶盒 PDA等产品上运行 第二章Java语言基础 主要内容 简单数据类型表达式控制语句数组 简单数据类型 标识符 定义 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符 identifier Java语言中 标识符是以字母 下划线 美元符 开始的一个字符序列 后面可以跟字母 下划线 美元符 数字 例如 identifier userName User Name sys val change为合法的标识符 而2mail 数字开头 room 非法字符 class 关键字 a class 含有运算符 都为非法的标识符 保留字 概念 具有专门的意义和用途 不能当作一般的标识符 这些标识符称为保留字 也称为关键字 java中的所有保留字 均用小写字母表示 abstract break byte boolean catch case class char continue default double do else extends false final float for finally if import implements int interface instanceof long native new null package private protected public return switch synchronized short static super try true this throw throws transient volatile void while 数据类型划分 java中的数据类型 简单类型和复合类型 简单数据类型包括 整数类型 byte short int long浮点类型 float double字符类型 char布尔类型 boolean复合数据类型包括 class 类 interface 接口 数组 常量和变量 常量 用保留字final来实现 final类型varName value varName value 如 finalintNUM 100 变量 java程序中的基本存储单元 它的定义包括变量名 变量类型和作用域几个部分 格式如下 类型varName value varName value 变量名称区分大小写 变量的作用域 变量的作用域指明可访问该变量的一段代码 声明一个变量的同时也就指明了变量的作用域 变量的作用域可分为 局部变量 类属性变量 方法参数和例外处理参数 在一个确定的域中 变量名应该是唯一的 变量作用域 举例 下面一段代码因为超过了定义的范围而编译出错 for inti 0 i 3 i System out println i System out println i 局部变量使用前必须进行初始化赋值操作 而类属性变量因为可以进行默认初始化 因此可以不用显式初始化 布尔类型 boolean 布尔型数据只有两个值true和false 且它们不对应于任何整数值 布尔型变量的定义如 booleanb true 有些语言 特别值得强调的是C和C 允许将数字值转换成逻辑值 这在Java编程语言中是不允许的 boolean类型只允许使用boolean值 字符类型 char 字符常量 字符常量是用单引号括起来的一个字符 如 a A 或是单引号所引的转义字符 或是形如 u 的Unicode形式的字符 其中 应严格按照四个16进制数字进行替换 Charch u10100 是错误的 而Charch ucafe 是正确的 还可用转义字符表示 如Charch 字符类型 Cont 转义字符 字符类型 Cont 转义字符表示 注意 必须用半角的单引号 而不能用全角的单引号 字符型变量 类型为char 它在机器中占16位 其范围为0 65535 a 实际上是一个数字 因此它可以赋值给一个数 例如floatf a inti a 它的取值范围为0 65535 Java使用Unicode字符集 这种字符集中每个字符用二个字节即16位表示 整型数据 整型常量 十进制整数 如123 456 0八进制整数 以0开头 如0123表示十进制数83 011表示十进制数 9 十六进制整数 以0 x或0 x开头 如0 x123表示十进制数291 0X12表示十进制数 18 整型变量的类型 两个整数相加 结果默认转化为int 赋值给byte或short时会发生类型转化问题 例如下面的代码b c的结果必须进行显式转化 publicstaticvoidmain String args byteb 27 bytec 26 byted byte b c 整型数据 Cont 注意 在选用整数类型上 一定要注意数的范围 否则可能由于数的类型选择不当而造成溢出 例如下面的代码add就存在着潜在的溢出问题 从而为程序带来Bugpublicintadd inta intb returna b 十六进制赋值注意事项inti 0 xFFFFFFF1 i的值为 15 因为最高为符号位 其它取反加1得到 15 浮点型 实型 实型常量 十进制数形式 由数字和小数点组成 且必须有小数点 如0 123 1 23 123 0科学计数法形式 如 123e3或123E3 其中e或E之前必须有数字 且e或E后面的指数必须为整数 在十进制和科学计数法常数后面可以跟 F 或 f 单精度 D 或 d 双精度 来表示float型或double的值 如1 23f 2 3e3D 如果后面没有跟任何修饰 它的类型为双精度 浮点型 Cont 实型变量的类型 定义一个float类型的浮点数方法给一个带小数的数后面加上f 包括科学计数法 将能隐式转化的数赋值给浮点变量 如char类型 整型 十进制 八进制 十六进制 字符串 字符串常量 用双引号来表示字符串常量 如 汉字 I mastudent 等 字符串变量 用String表示 String不是原始类型 而是一个类 class 它被用来表示字符序列 字符本身符合Unicode标准 且上述char类型的反斜线符号适用于String 与C和C 不同 String不能用 0 作为结束 简单数据类型举例 publicclassAssign publicstaticvoidmain Stringargs intx y 定义x y两个整型变量floatz 1 234f 指定变量z为float型 且赋初值为1 234doublew 1 234 指定变量w为double型 且赋初值为1 234booleanflag true 指定变量flag为boolean型 且赋初值为truecharc 定义字符型变量cStringstr 定义字符串变量strStringstr1 Hi 指定变量str1为String型 且赋初值为Hic A 给字符型变量c赋值 A str bye 给字符串变量str赋值 bye x 12 给整型变量x赋值为12y 300 给整型变量y赋值为300 数据类型转换 不同类型数据间的优先关系如下 低 高byte short char int long float double自动类型转换规则整型 实型 字符型数据可以混合运算 运算中 不同类型的数据先转化为同一类型 然后进行运算 转换从低级到高级 例如TypemethodA bytex doubley return short x y 2 Type的类型将为double 数据类型转换 强制类型转换 强制类型转换 高级数据要转换成低级数据 需用到强制类型转换 如 inti byteb byte i 把int型变量i强制转换为byte型 简单数据类型及其对应包装类 简单数据类型不是类 但Java提供了与简单类型对应的包装类 它们之间的相互转化方法为 以int和Integer为例 简单数据类型转化为类对象的方法是 通过相应类的构造方法来完成 如Integervari newInteger 5 类对象转化为简单数据类型 如上面的vari可以通过调用intValue 方法得到普通数据类型的int值 引入这些类的目的 简单数据类型不具有一些对象的特征 在一些场合不能使用 需要将简单数据类型转为特定的类 进行适当处理后 再转化回来 实现不同数据类型的转化 这些类的静态属性中含有相应的范围 表达式 表达式定义 表达式是用运算符把操作数连接起来的式子 可分为算术表达式 关系表达式 逻辑表达式 赋值表达式 条件表达式对各种类型的数据进行加工的过程称为运算 表示各种不同运算的符号称为运算符 参与运算的数据称为操作数按操作数的数目来分 可有 一元运算符 正数 取负 二元运算符 instanceof 对象运算符 等三元运算符 算术表达式 是由算术运算符和位运算符将操作数连接组成的表达式 算术运算符优先级 算术表达式 注意 两个整数类型的数据做除法时 结果只保留整数部分 整数和浮点数都能进行取余运算 运算符 当都为整数时 结果为整数 有一个为浮点 则为浮点数 自增 自减运算符只适用于变量 且位于运算符的哪一侧有不同效果 Java中的算术运算主要依赖于Math类的静态方法 例如 取绝对值 Math abs Typei Type可以为int long float double对数取三角和反三角函数 对数和指数 乘方 开方求两个数的最大最小值得到随机数 random 类型为double 对浮点数进行处理 四舍五入 round ceil 取大值 floor 取小值 classTestNumber publicstaticvoidmain String args System out print Math ceil 5 2 System out print Math ceil 5 6 System out print Math ceil 5 2 System out print Math ceil 5 6 System out print Math floor 5 2 System out print Math floor 5 6 System out print Math floor 5 2 System out print Math floor 5 6 System out print Math round 5 2 System out print Math round 5 6 System out print Math round 5 2 System out print Math round 5 6 输出结果是 例 韩信点兵不足百人 三人一行多一个 七人一行少两个 五人一行正好 问有多少人 publicclassTestSoldiery publicstaticvoidmain Stringargs for inti 1 i 100 i if i 3 1 关系表达式 定义 利用关系运算符连接的式子称为关系表达式运算结果 是一个逻辑值 真 或 假 在Java中用true表示 真 用false表示 假 判断某年是否为闰年 如果是闰年 它应能被4整除 但不能被100整除 或被100整除 也能被400整除 publicclassTestLeapYear publicstaticvoidisLeapYear intyear booleann1 year 4 0 booleann2 year 100 0 booleann3 year 400 0 if n1 true 逻辑表达式 利用逻辑运算符将操作数连接的式子称为逻辑表达式逻辑表达式参与运算的都是布尔值 结果也是布尔值 逻辑表达式 注意 和 在执行操作时 运算符左右两边的表达式首先被运算执行 再对两表达式的结果进行与 或运算 而利用 和 执行操作时 如果从左边的表达式中得到操作数能确定运算结果 则不再对右边的表达式进行运算 采用 和 的目的是为了加快运算速度 但也要防止用法上出现的问题 如 classTest publicstaticvoidmain String args intout 10 booleanb1 false if b1 true out结果为10 如将语句改为if b1 true out 10 20 则out结果为20 赋值表达式 赋值运算符组成的表达式称为赋值表达式 Java语言中 赋值运算符是 赋值运算符的作用是将赋值运算符右边的一个数据或一个表达式的值赋给赋值运算符左边的一个变量 注意赋值号左边必须是变量 即没有final修饰的变量 赋值运算的另一种形式是复合赋值运算符连接起来的表达式 赋值表达式 各种复合赋值运算符 各种位运算符 无符号的左移相当于乘2n 右移相当于除2ninti 0 xFFFFFFF1 intj i 最高位取反后为正 j值为146 3的结果为5 条件表达式 形式 布尔表达式1 表达式2 表达式表达式2和表达式3的类型必须相同 条件运算符的执行顺序是 先求解表达式1 若值为true则执行表达式2 此时表达式2的值作为整个条件表达式的值 否则求解表达式3 将表达式3的值作为整个条件表达式的值 在实际应用中 常常将条件运算符与赋值运算符结合起来 构成赋值表达式 以替代比较简单的if else语句 条件运算符的优先级高于赋值运算符 结合方式为 自右自左 classTest publicstaticvoidmain String args floatsum 1 5f intnum 2 System out println sum 2 1 num sum 程序返回结果是1 0 而不是1 因为sum是浮点数 所以表达式2发生了数据的隐式转化 但是下面的程序则返回1 因为num sum仍然是整数 所以表达式2的类型保持不变 条件表达式 举例 classTest publicstaticvoidmain String args intnum 3 sum 2 System out println sum 3 1 num sum 运算符的优先级 运算符的优先级决定了表达式中不同运算执行的先后次序 优先级高的先进行运算 优先级低的后进行运算 在优先级相同的情况下 由结合性决定运算顺序 最基本的规律是 域和分组运算优先级最高 接下来依次是单目运算 双目运算 三目运算 赋值运算的优先级最低 控制语句 控制语句 Java程序通过控制语句来执行程序流 完成一定的任务 Java中的控制语句有以下几类 分支语句 if else switch循环语句 while do while for与程序转移有关的跳转语句 break continue return例外处理语句 try catch finally throw注释语句 分支语句 条件语句if else if boolean expression statement1 elsestatement2 if括号中的结果应该为布尔值 否则编译不会通过 例如如果x与y是int类型 x y是赋值语句 其结果不是布尔值 不能充当布尔表达式 如果它们的类型本身为boolean 则x y可以充当if中的条件 养成if后面无论是一句还是多句代码 都写 的习惯 分支语句 举例 publicclassTest publicstaticvoidmain String args intx y x 7 y 1 if x 6 if y 6 System out println 设备正常 elseSystem out println 设备出错 if x 6 if y 6 System out println 设备正常 elseSystem out println 设备出错 等价 分支语句 多分支语句switch switch expression casevalue1 statement1 break casevalue2 statement2 break casevalueN statemendN break default defaultStatement 多分支语句 注意 表达式expression的返回值类型必须是这几种类型之一 byte short int char 请注意是普通数据类型 而不是包装类 如Short Byte等 也不能是long float或double case子句中的值valueN必须是常量 而且所有case子句中的值应是不同的 default子句是可选的 break语句用来在执行完一个case分支后 使程序跳出switch语句 即终止switch语句的执行 在一些特殊情况下 多个不同的case值要执行一组相同的操作 这时可以不用break 循环语句 Java语言中提供的循环语句有 while语句 do while语句 for语句 while语句 初始化 while 条件表达式 循环体循环变量控制 do while语句 初始化 do 循环体循环变量控制 while 条件表达式 注意 条件表达式中的结果应为布尔值 而不能为算术值 例如while y x for语句for 表达式1 初始条件 表达式2 结束条件 表达式3 循环变量控制 循环体 其流程逻辑关系如图所示 循环语句 注意 for语句执行时 首先执行初始化操作 然后判断终止条件是否满足 如果满足 则执行循环体中的语句 最后执行迭代部分 完成一次循环后 重新判断终止条件 初始化 终止以及迭代部分都可以为空语句 但分号不能省 三者均为空的时候 相当于一个无限循环 在初始化部分和迭代部分可以使用逗号语句 来进行多个操作 逗号语句是用逗号分隔的语句序列 如果循环变量在for中定义 变量的作用范围仅限于循环体内 publicclassDelta staticbooleanfoo charc System out print c returntrue publicstaticvoidmain String argv inti 0 for foo A foo B 结果输出为 ABDCBDCB 循环语句举例1 例百鸡问题 公鸡5元 只 母鸡3元 只 小鸡3只 元 问100圆买100只鸡 公鸡 母鸡 小鸡各多少 采用穷举法公鸡最多20只 母鸡33只 publicclassHandreadChicken publicstaticvoidmain Stringargs intz 0 booleanisAnswer false for inti 1 i 20 i for intj 1 j 33 j z 100 i j if z 3 0 循环语句举例2 跳转语句 Java语言提供了4种转移语句 break continue return和throw 转移语句的功能是改变程序的执行流程 break语句可以独立使用 而continue语句只能用在循环结构的循环体中 break语句 break语句通常有下述不带标号和带标号的两种形式 break breakLab 其中 break是关键字 Lab是用户定义的标号 break语句用在switch语句中 其作用是强制退出switch结构 执行switch结构后的语句 break语句用在单层循环结构的循环体中 其作用是强制退出循环结构 若程序中有内外两重循环 而break语句写在内循环中 则执行break语句只能退出内循环 breaklab语句用在循环语句中 必须在外循环入口语句的前方写上lab标号 可以使程序流程退出标号所指明的外循环 编程打印1到100中的所有素数 publicclassTest publicstaticvoidmain String args intn 0 m j i for i 3 i m 1 if n 6 0 System out println System out print i n endfor endmain endclass break语句举例 continue语句 continue语句只能用于循环结构中 其作用是使循环短路 它有下述两种形式 continue 或continuelab 其中 continue是关键字 Lab为标号 continue语句也称为循环的短路语句 用在循环结构中 使程序执行到continue语句时回到循环的入口处 执行下一次循环 而使循环体内写在continue语句后的语句不执行 当程序中有嵌套的多层循环时 为从内循环跳到外循环 可使用带标号的continuelab语句 此时应在外循环的入口语句前方加上标号 返回语句return return语句从当前方法中退出 返回到调用该方法的语句处 并从紧跟该语句的下一条语句继续程序的执行 返回语句有两种格式 returnexpression return return语句通常用在一个方法体的最后 否则会产生编译错误 除非用在if else语句中 classTestReturn publicstaticvoidmain String args inti 10 if i 5 return i 6 else return i 5 注意 上例中的去掉任意一句注释 都将产生编译错误 return语句 举例 数组 数组的概念 数组名是符合Java标识符定义规则的用户自定义标识符 数组的维数用方括号 的个数来确定 对于一维数组来说 只需要一对方括号 二维就是 数组元素的数据类型可以是Java的任何数据类型 例如 基本类型 int float double char等 类 class 或接口 interface 等 声明数组就是要确定数组名 维数和元素的数据类型 类型标识符数组名 类型标识符 数组名 例如 intabc String example myClass mc 注 Java中的数组可以看作是一个对象 例如上面的声明如果进行了初始化 则看作两个对象 分别为abc和example 它们有自己的属性 如length属性 一维数组的声明格式 使用关键字new 可将数组看成一个特殊对象格式如下 类型标识符数组名 new类型标识符 数组长度 类型标识符 数组名 new类型标识符 数组长度 一维数组 三种初始化方法之一 产生一个有10个单元 类型为int的数组对象 所有单元的初值为0 abc newint 10 产生一个具有10个单元 类型为String的数组对象 所有单元的初值为null 不要写成newString 10 example newString 10 产生一个类型为myClass容纳10个myClass对象引用的数组对象 每个单元值是null mc newmyClass 10 一维数组 初始化例子 注 1 不是产生10个myClass对象 2 对象数组化的目的在于可以进行对象的遍历控制 3 数组产生后的默认值同对象属性初始化默认值规定 直接在声明的时候进行定义及初始化 例如 String s ab bc cd int a 3 4 5 6 对于对象数组 Integerresults newInteger 3 newInteger 5 newInteger 8 String dogs newString Fido newString Spike newString Aiko 一维数组 三种初始化方法之二 注 这种初始化方法只能写在声明代码中 内用 号分隔 下面的写法是错误的 int a a 3 4 5 6 采用1和2相结合方式进行初始化 例如 floatf4 newfloat 1 0f 2 0f 3 0f floatf4 f4 newfloat 1 0f 2 0f 3 0f 注 此时float中的 不应该给出具体数字 一维数组 三种初始化方法之三 将数组整体看成一个对象 通过数组引用进行相应的操作 floatfl f2 f1和f2就是数组声明fl newfloat 10 f1变为引用f2 f1 引用赋值 f2和f1拥有相同的数组成员 Objecto f1 这样赋值也成立Java中数组的下标从0开始 如果数组越界 产生的异常为 IndexOutOfBoundsException 它继承RuntimeException 若定义数组大小为负数会产生NgativeArraySizeException 它继承RuntimeException 但是数组长度可以为0 不是null 数组引用 publicclasstest publicstaticvoidmain String args for inti 0 i args length i System out println args i 一个特殊的一维数组 上图中的102030405060分别存入args数组当中 系统自动为args申请了6个单元 如果运行时仅有javatest 此时args相当于args newString 0 某些类的方法返回数组对象引用 例如 linkedList Vector对象可以调用方法toArray 返回Object 数组 此时数组中为对象的引用 不是对象 Arrays sort方法 对char byte short int float double long按升序排列 也可指定排序方法对对象进行排序 见JDK文档 System arraycopy 复制数组publicstaticvoidarraycopy Objectsrc intsrcPos 源数组 起始下标位置Objectdest intdestPos 目的数组 起始下标位intlength 拷贝长度 一维数组的相关方法 源数组和目的数组类型必须一致 如果是基本数据类型数组 则是值拷贝 如果是对象数组 则是引用拷贝 若src或dest其中一个为null 则会发生发生空指针异常NullPointerException 如果src和dest的类型不一致 则会发生ArrayStoreException 若srcPos length大于src length destPos length大于dest length 则会发生IndexOutOfBoundsException 异常发生时 dest中的内容不会变化 System arraycopy 方法使用注意 两个字符数组进行比较 大小写忽略 1 若相等 返回0 2 若不等 按第一个不等的字符大小进行比较 返回1或 1 3 两个字符数组不等直接返回 2 importjava io publicclassContrastChar publicstaticintconstrast char a char b charc1 u0000 c2 u0000 intk1 0 k2 0 i 0 k1 a length k2 b length if k1 k2 return 2 一维数组 举例 for i 0 i A 二维数组的声明格式 类型说明符数组名 类型说明符 数组名 例如 intarr int arr 使用关键字new格式如下 数组名 new类型说明符 数组长度 数组名 new类型说明符 数组长度 数组长度 其中 对数组名 类型说明符和数组长度的要求与一维数组一致 对于没有初始化的维度 其值为null 二维数组 二种初始化方法之一 intarra arra newint 3 4 等价于 arra newint 3 创建有3个元素的数组 各元素也是一个数组arra 0 newint 4 创建arra 0 元素的数组 它有4个元素arra 1 newint 4 创建arra 1 元素的数组 它有4个元素arra 2 newint 4 创建arra 2 元素的数组 它有4个元素也等价于 arra newint 3 for inti 0 i 3 i arra i newint 4 二维数组 初始化例子 二维数组 是用指定的初值对数组初始化 例如 int arr1 3 9 6 8 0 1 11 9 8 它等价于 int arr1 newint 3 arr1 0 newint 3 9 arr1 1 newint 8 0 1 arr1 2 newint 10 11 9 8 二维数组 二种初始化方法之二 也等价于 int arr1 newint 3 intarb1 3 9 intarb2 8 0 1 intarb3 10 11 9 8 arr1 0 arb1 arr1 1 arb2 arr1 2 arb3 注 对于二维数组 当只定义第一维维数时 另一维的维数可以不一样 也就是说不一定是规则的矩阵形式 例如 int arra arra newint 3 arra 0 newint 3 arra 1 newint 2 arra 2 newint 1 arra 编程打印如下图形 打印到8 3333333 3222223 3211123 3210123 3211123 3222223 3333333 分析 将数放置到数组当中 将数组中的数打印出来 程序见下页 二维数组 应用举例1 publicclassTest publicstaticvoidmain Stringargs finalintnum 8 int t newint 2 num 1 2 num 1 for inti 0 i num i for intj 0 j num j if i j t i j num i elset i j num j t i 2 num j t i j t 2 num i j t i j t 2 num i 2 num j t i j for inti 0 i 2 num 1 i for intj 0 j 2 num 1 j System out print t i j System out println 二维数组 应用举例2 举例 编程打印数字斜塔 136101525914481371211 publicclassTest publicstaticvoidmain Stringargs finalintnum 5 int t newint num num for inti 0 i num i for intj 0 j num j if i 0 for inti 0 i num i for intj 0 j num j if j num i System out print t i j System out println endmain endclass 数组对象特点及常用方法 具有对象引用的特点 例如 publicclassTest publicstaticvoidprintArray String arg for inti 0 i arg length i System out println arg i publicstaticvoidmain String args printArray args 数组长度 length属性对于一维数组 数组名 length可以得到数组单元的个数对于二维数组 数组名 length得到的是 行数 而要测出列数 则需要数组名 i length 如果所有行的列数都相等 则为总体的列数 根据上面可以推而广之 数组名 length可以得到第一维数 数组名 i length 得到某维特定点的另一个维度 依次类推 矩阵转置 publicclassTest publicstaticvoidtranspose int m if m null return inttemp for inti 0 ij temp m i j m i j m j i m j i temp endinnerfor endou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物资储备仓库消防安全知识测试题目
- 2025年美容美发技术实操模拟题及参考答案
- 七颗钻教学课件
- 中国功夫音乐教学课件
- 2025年物资储备仓库管理信息化应用技能测试题库及解析
- 2025年中级操作工考试必-备知识点炼油工艺原理及设备结构
- 2025年特岗教师招聘考试初中地理重点知识点解析与练习
- 2025年初级电工电路基础知识和实操模拟题及答案
- 2025年焊接工艺面试通关秘籍模拟题及答案解析
- 企业级SOA实施方法论的研究与探讨
- 风系统平衡调试要点
- JG/T 272-2010预制高强混凝土薄壁钢管桩
- 仙居两山生物科技有限公司生物酶及辅酶环评报告
- 货运平台代扣代缴协议书
- 日本所有番号分类
- T/CATCM 026-2023中药液体废弃物循环利用指导原则
- 过程稽核培训
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 2025景观园林设计合同
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 人教九年级英语上册Unit 7《单元写作》课件
评论
0/150
提交评论