Java基本语法入门(智原博晟).ppt

上传人:max****ui 文档编号:6359997 上传时间:2020-02-23 格式:PPT 页数:54 大小:1.05MB
返回 下载 相关 举报
Java基本语法入门(智原博晟).ppt_第1页
第1页 / 共54页
Java基本语法入门(智原博晟).ppt_第2页
第2页 / 共54页
Java基本语法入门(智原博晟).ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
Java基础入门 本节掌握 1 Java语言语法规则和文件格式 2 程序的入口主函数 主方法 3 变量的声明和赋值 4 Java中数据类型的分类 5 基本数据类型之间的转换 6 关键字 标识符和常量用法 7 运算符 表达式 8 条件判断语句 if语句和switch语句 9 循环语句结构 10 字符串的定义和使用 11 数组的定义和使用 Java语言语法规则和文件格式 第一个Java程序 第一个Java程序 控制台输出Helloworld publicclassTest 访问修饰符class关键词用于声明类使用后面跟类名publicstaticvoidmain Stringargs 程序的入口 主函数main方法 System out println Helloworld 输出语句 Java语言区分大小写 public为访问修饰符 class关键词 用于声明类 多行注释 注释掉内容不被程序视为可执行内容 单行注释 一条语句结束 需要通过 分号结束 表示这条语句已经结束 Java语言可以通过空格或者换行符 制表符等将其分隔开 例如 System out println Helloworld 输出语句 Java文件格式 一个Java程序 需要有类的声明 一般一个 java文件中只有一个类 但是 也可以有多个class存在 此时主意 一个 java文件中 只能存在一个public修饰的类 即 一个java文件名 应该与这个文件中public修饰的类名相同 一个java文件中只能存在一个public修饰的类 主函数 在java中主函数main方法 语句格式如下 publicstaticvoidmain Stringargs 主函数只能存在于public修饰的类中 否则语法执行该主方法 如果放到其他没有被public修饰的类中 没语法错误 但是无法执行 变量的声明和赋值 变量主要用于数据的存储 需先声明再使用 1 全局变量 声明在类中 方法外 多个方法可同时使用 也被称作 属性 类变量 成员变量等 可以不赋初始值 2 局部变量 声明在方法中 注意不能使用public等方位修饰符 供当前方法使用 声明是必须赋值或者使用时必须有赋值操作 例如 声明一个整型变量 字节型 byteb 99 短整型 inti 11 整型 shortt 5 长整型 longl 1898989 字符串变量 Stringstr HELLO 浮点型 单精度 floatf 1 78 浮点型 双精度 doubled 1 7878787878 布尔类型 booleanb true 字符型 charc A 全局变量可以在类型前面加访问修饰符 来控制该变量被访问的范围 例如 privateinti 100 pulicStringstr protectedshortt 内存 堆 栈 静态域 常量池 方法区 局部变量 对象声明的引用 静态变量 字符串常量 new出来的类或数组的实例 含成员变量 标识符命名规则 1 由字母 数字 下划线 或者 美元符号组成 2 不能以数字开头 3 区分大小写 长度无限制 但是要见名知意 4 不能是Java关键字或者保留字 例如 合法 Person user name userName abc 123userProject非法 2Username Test class void pulic类 方法 属性 变量 常量命名规则 类名 开头字母必须大写 后面每个单词首字母也大写 其他小写字母 方法名 开头字母小写 后面每个单词首字母大写 常量 所有字母大写 Java中数据类型的分类 Java中可以分为两大类数据类型 1 基本数据类型 整型 字节型 8位 byte 128到127之间的任意整数短整型 16位 short 32768 32767之间的任意整数整型 32位 int 2 31到2 31 1之间的任意整数长整型 64位 long 2 63到2 63 1之间的任意整数浮点型 单精度 32位 float32位单精度浮点数根据IEEE754 1985标准双精度 64位 double布尔类型 boolean true false 字符型 16位 char2 引用数据类型 引用类型的内存单元中只存放对象的地址 而对象本身存贮在内存堆中 只是简单的引用对象的地址 非指针 非基本数据类型变量 都是引用数据类型 基本数据类型之间的转换 在Java中有如下几种转换方式 1 隐式转换 系统默认将其转换为我们需要的数据类型 例如 shortt 10 10默认为int类型 doublef 10 123f 10 123f为float类型 注意 在java中 整数默认为int类型 小数默认为double类型 例如 longj 10 shortt2 100 charc A ints c 2 强制转换 在变量前加小括号 写转换类型 将其强制转换为指定类型 例如 1 bytefloat double赋值给float类型 float double byte short int long 例如 floatf float 10 123 floatf 10 123f doubled 10 123 inti3 int d shortt3 short d longl2 long d byteb byte d 3 byte short int long float double charchar 赋值给byte类型charc A c char i 特殊情况下 通过某些JavaAPI相关方法实现类型转换 不是基本数据类型之间的转换了 例如 doubledRes Double valueOf 10 89 关键字 标识符和常量用法 关键字 词 是java中特有的词语 是电脑语言 这里我们指Java 里事先定义的 有特别意义的标识符 有时又叫保留字 还有特别意义的变量 标识符 上文已经讲解 我们只需要注意命名规则 常量 例如 圆周率PI 3 1415926这个数字 在我们使用时 永远不会修改这个数据 此时我们可以认为它就是常量 定义常量后 不会被修改 注意 之声明在类中作为全局变量使用 例如 publicfinaldoublePI 3 14 Java中关键词或者未来将要使用的关键词如下 Java中有goto 但是只是保留字 不会使用的保留字 例如 inti 6 j 6 k m n j i 取原值 即j 6k i 取负值 即k 6m i 先m i 再i i 1 即m 6 i 7m i 先i i 1 再m i 即i 7 m 7n j 先n j 再j j 1 即n 6 j 5n j 先j j 1 再n j 即j 5 n 5 例如 publicclassOperatorDemo01 publicstaticvoidmain String args inti 10 intj 3 System out println i j i j System out println i j i j System out println i j i j System out println i j i j System out println i j i j 例如 publicstaticvoidmain String args inta 1 intb 2 intc 3 intd 4 booleane a b 例如 publicstaticvoidmain String args inta 1 intb 2 intc 3 intd 4 intf 5 booleane a b 除了作为算术加法运算外 可用于对字符串的连接使用 Strings1 Hello Strings2 s1 world 100 1 该运算符两侧的操作数据中 只要有一个为字符串类型 此时系统会隐式转换位字符串然后在进行连接 条件判断语句 if语句结构 三元运算符 if 条件true或者false 单个语句 else单个语句 if 条件true或者false 多条语句 else 多条语句 If elseif else语句结构 如果需要多条件判断时 需要If elseif else格式如下 switch流程控制语句结构 主意 switch只能实现等值条件判断 而且表达式类型只能是int char byte short类型变量 其中break表示退出当前判断的执行体 如果再循环中表示退出整个循环 switch 表达式 case 常量数值1 语句 组 break case 常量数值2 语句 组 break default 语句 组 循环控制语句结构 for循环流程控制while循环流程控制do while循环流程for in循环 JDK5 0新增 进入for循环流程控制for 初始表达式 判断表达式 递增表达式 for循环主体 结束for循环流程控制 do while循环与while循环的区别是do while的循环主体至少运行一次 进入while循环流程控制while 条件表达式 while循环主体 结束while循环流程控制 do do while主体 while 条件表达式 练习题 1 求1 100之间素数和 并统计个数 只能被1和自身整除的数 2 用while for循环写出1 10阶乘和 1 11 21 2 31 2 3 43 在控制台输出等腰 直角 倒等腰三角形 4 6 1 2 3 求1 1000之间的数 要求自身因子和为本身 5 求2 22 222 2222 22222 2222 222 22 2的和 6 要求1 4任意3组合成不重复的三位数 7 2 1 3 2 5 3 8 5 13 8 21 13的和 了解java lang包 package java lang包是Java语言的核心类库 包括了运行Java程序必不可少的系统类 如基本数据类型 基本数学函数 字符串处理 线程 异常处理类等 每个Java程序运行时 系统都会自动地引入java lang包 java lang包的加载是缺省的 字符串 字符串的定义和使用 Java lang String类 在Java中String类型不是基本数据类型 字符串是一个对象 字符串必须通过双引号 引起来 字符串字节使用Unicode编码 一个字符占两个字节 String是一个final类 表示不可变的字符序列 字符串是不可变的 一个字符串对象一旦被配置 它的内容就是固定不变的 如上所述 为何某个字符串变量还可以再次赋值 改变他的值呢 例如 Stringstr1 TEST str1 RESULT 第一次赋值时 在字符串池中已经存储了 TEST 第二次只是改变了str1变量的指向 指向了字符串池中的 RESULT TEST 本身内容不发生变化 并未被改变 改变的只是str1的指向 它在第二次赋值时相当于指向了一个另外一个字符串对象 运行下面程序 思考为何出现此结果 Stringstr1 weight Stringstr2 weight Stringstr3 newString weight 笔试题 创建了2了对象 System out println str1 str2 trueSystem out println str2 str3 false String常用方法 字符串常用方法 1 获取字符串的长度 length 例如 Strings1 欢迎来的首都北京 intleg s1 length System out println s1 length 2 判断字符串的前缀或后缀与已知字符串是否相同前缀startsWith Strings 后缀endsWith Strings Strings1 abcdefg System out println s1 startsWith abc 3 比较两个字符串 equals Strings Strings1 admin Strings2 newString admin System out println s1 equals s2 4 把字符串转化为相应的数值 下面方法不是Stirng类中的函数 int型Integer parseInt 字符串 例如 Stringres 100 inti Integer parseInt res long型Long parseLong 字符串 例如 Stringres 100 longi Long parseLong res float型Folat valueOf 字符串 例如 Stringres 10 102 floati Float valueOf res double型Double valueOf 字符串 例如 Stringres 10 102 doublei Double valueOf res 5 将数值转化为字符串 valueOf 数值 6 字符串检索indexOf Srtings 从左往右查找 查找子字符串第一次出现的位置 返回下标 如果不存在 返回 1 inti admindm indexOf d 2 indexOf Strings intstartpoint 从startpoint下标开始检索 检索这个子字符串第一次出现的位置 如果没有检索到 将返回 1 7 substring intstartpoint 从startpoint 包含找个位置字符 下标开始截取 到这个字符串末尾 返回新字符串对象 substring intstart intend 从start到end 不包含这个位置字符 结束 截取字符串 8 替换字符串中的字符 replace Stringold Stringnew 用new替换old 替换所有的 replaceAll charold charnew 替换所有的9 String split Stringregex 将字符串按照某个字符串进行拆分 返回字符串数组 10 toLowerCase toUpperCase 转换大小写 返回新字符串 11 Stringtrim 去掉指定字符串左右空格 返回类型为String类型 和equals 方法比较的区别 即比较地址也比较内容 equals 之比较对象内容是否相等 例如 inta 1 Integerb 1 Integerc 1 Integerd newInteger 1 Integere newInteger 1 a b b c b equals c b equals d inta 1 Integerb 1 Integerc 1 Integerd newInteger 1 Integere newInteger 1 intf newInteger 1 System out println a b trueSystem out println b c trueSystem out println b equals c trueSystem out println b equals d trueSystem out println d equals e trueSystem out println b d falseSystem out println e f true 特别 例如 Stringa abc Stringb abc Stringc newString abc a ba ca equals c a equals b 练习题 1 2014 07 11 将这个字符串格式化为 1 2014年 07月 11日 2 201407112 写一个函数 实现查找指定子字符串出现的次数 例如 abcddfdsfdf 控制台输入f 然后输出f在这个字符串出现的次数 3 去掉指定字符串中重复的字符 如果重复只保留一个 例如 abcddfdsfdf abcdfs 包装类 基本数据类型所对应的类 即包装类 里面封装了操作该基本数据类型的相关方法 例如 JavaAPI中提到了 Double类在对象中包装一个基本类型double的值 每个Double类型的对象都包含一个double类型的字段 byte Byteshort Shortint Integerlong Longchar Character float Float double Double boolean Boolean常用方法 例如 Integer parseInt Stringstr 将字符串转换为int类型Integer valueOf Stringstr 数组的定义和使用 数组 它是一个变量 用于存储相同数据类型的一组数据 建立java数组需要以下三个步骤 声明数组创建数组空间初始化数组元素数组的声明方式 1 数据类型变量名 2 数据类型 变量名 例如 chars 或 char s Objectp Object p 注意 为数组开辟内存空间 在创建数组空间时必须为它指明数组的长度 因为数组在java中长度不可变一个数组是一个对象 所以用new来创建数组语法格式为 数组名 new数组元素类型 数组元素的个数 例如 int MyIntArray MyIntArray newint 10 也可以在创建数组空间的时候 同时将初值给出来 例如 int myIntArray 1 2 3 4 5 6 7 8 9 int myIntArray myIntArray 1 2 3 4 5 6 7 8 9 错误写法 等同于 int myIntArray 1 2 3 4 5 6 7 8 9 int myIntArray myIntArray newint 9 myIntArray 0 1 存储空间的分配等价于使用new有上面描述得知 java中数组长度不可变 基本数据类型的数组元素会自动初始化成 空 值 对于数值 空值就是零 对于char 它是null 而对于boolean 它却是false 例如 创建一个存储A到Z的字符数组 publicchar createArray char s s newchar 26 for inti 0 i 26 i s i char A i returns 数组下标 边界 所有数组的下标从0开始intlist newint 10 for inti 0 i list length i System out println list i 初始化数组有两种方式 1先定义数组 分配空间 然后直接对每个元素进行赋值 2在定义数组的同时进行初始化 例如 对基本数据类型 1 int nums newint 3 nums 0 1 nums 1 2 nums 2 3 2 int nums 1 2 3 对非基本数据类型初始化 可以带来更大的灵活性 例如 publicclassVarArgs staticvoidf Object x for inti 0 i x length i System out println x i publicstaticvoidmain String args Objct obj newObject newInteger 47 newFloat 3 14 newDouble 11 11 f obj f newObject one two three 多维数组的定义和使用 1 定义方式 type维数arrayName 例如 int intArray int a2 2 分配内存空间 有两种方法 直接为每一维分配空间 如int a newint 2 3 inttwoDim newint 4 error分别为每一维分配空间如 int a newint 2 a 0 newint 4 a 1 newint 3 可以为每行设置为空间大小不同的数组 如 a 0 newint 3 a 1 newint 5 Java中多维数组被看作数组的数组 例如二维数组为一个特殊的一维数组 其每个元素又是一个一维数组 int a newint 2 3 a 0 0 a 0 1 a 0 2 a 1 0 a 1 1 a 1 2 3 多维数组 这里我们针对二维数组举例 初始化有两种方式 例如 1 int a newint 2 3 先定义后再赋值 2 inta 2 3 6 1 5 3 4 定义时直接赋值 拷贝数组System arraycopy 方法 publicstaticvoidarraycopy Objectsrc intsrcPos Objectdest intdestPos intlength src 源数组 srcPos 源数组中的起始位置 dest 目标数组 destPos 目标数据中的起始位置 length 要复制的数组元素的数量 System out println String strArrays newString 20 for inti 0 i 20 i strArrays i String valueOf char A i System out println strArrays i String targetArrays newString 20 for intj 0 j 20 j targetArrays j String valueOf j System arraycopy strArrays 5 targetArrays 2 6 System out println for intj 0 j 20 j System out println targetArrays j 在JDK6 中 Arrays类包新增了copyOf 方法 可以直接传回一个新的数组 而其中包括复制的內容 例如 importjava util Arrays publicclassArrayDemo publicstaticvoidmain String args int arr1 1 2 3 4 5 int arr2 Arrays copyOf arr1 arr1 length for inti 0 i arr2 length i System out print arr2 i System out println 练习题 1 写三个函数 实现对数组的增加修改和删除 SDF dd ff 2 Stringcitys str 黑龙江省 哈尔滨市 齐齐哈尔市 黑河市 安达市 肇东市 绥化地区 将上面字符串 拆分省和该省下面的城市列表 城市以数组形式存储 3 实现数组 a b c d 任意两个位置数据的交换 Stringa a 4 String data1 a b c d String data2 a x d b 假如data1和data2数组的长度均为10000 此时如何高效的找出两个数组data1和data2中都出现过的字符 5 写一个函数 实现如下功能 一个数组byte a 需要将里面的每个元素循环移位n 生成一个新的数组 请实现函数byte shiftPlace byte a intn 例如 byte items newbyte 0 1 2 3 4 循环移位2后变为 3 4 0 1 2
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!