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

上传人:小飞机 文档编号:6509701 上传时间:2023-11-07 格式:PPT 页数:54 大小:591KB
返回 下载 相关 举报
Java基本语法入门(智原博晟).ppt_第1页
第1页 / 共54页
Java基本语法入门(智原博晟).ppt_第2页
第2页 / 共54页
Java基本语法入门(智原博晟).ppt_第3页
第3页 / 共54页
Java基本语法入门(智原博晟).ppt_第4页
第4页 / 共54页
Java基本语法入门(智原博晟).ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Java基本语法入门(智原博晟).ppt》由会员分享,可在线阅读,更多相关《Java基本语法入门(智原博晟).ppt(54页珍藏版)》请在三一办公上搜索。

1、Java 基础入门,本节掌握:1、Java语言语法规则和文件格式;2、程序的入口主函数(主方法);3、变量的声明和赋值;4、Java中数据类型的分类;5、基本数据类型之间的转换;6、关键字、标识符和常量用法;7、运算符、表达式;8、条件判断语句:if语句和switch语句;9、循环语句结构;10、字符串的定义和使用;11、数组的定义和使用;,Java语言语法规则和文件格式:第一个Java程序:/*第一个Java程序:控制台输出Hello world!*/public class Test/访问修饰符 class关键词用于声明类使用 后面跟类名 public static void main(S

2、tring args)/程序的入口,主函数main方法;System.out.println(“Hello world!”);/输出语句,Java语言区分大小写;public 为访问修饰符;class关键词,用于声明类;/*/多行注释;注释掉内容不被程序视为可执行内容;/单行注释;一条语句结束,需要通过“;”分号结束,表示这条语句已经结束;Java语言可以通过空格或者换行符、制表符等将其分隔开:例如:System.out.println(“Hello world!”);/输出语句,Java文件格式:一个Java程序,需要有类的声明,一般一个.java 文件中只有一个类;但是,也可以有多个cla

3、ss存在,此时主意:一个.java文件中,只能存在一个public 修饰的类;即:一个java文件名,应该与这个文件中public 修饰的类名相同;一个java文件中只能存在一个public 修饰的类;,主函数:在java中主函数main方法,语句格式如下:public static void main(String args)主函数只能存在于public 修饰的类中;否则语法执行该主方法;(如果放到其他没有被public修饰的类中,没语法错误,但是无法执行),变量的声明和赋值:变量主要用于数据的存储,需先声明再使用;1、全局变量:声明在类中,方法外,多个方法可同时使用,也被称作“属性”、类变

4、量、成员变量等;可以不赋初始值;2、局部变量:声明在方法中,(注意不能使用public等方位修饰符)供当前方法使用;声明是必须赋值或者使用时必须有赋值操作;例如:声明一个整型变量:字节型:byte b=99;短整型:int i=11;整型:short t=5;长整型:long l=1898989;字符串变量:String str=“HELLO”;浮点型:单精度:float f=1.78;浮点型:双精度:double d=1.7878787878;布尔类型:boolean b=true;字符型:char c=A;全局变量可以在类型前面加访问修饰符,来控制该变量被访问的范围:例如:private

5、int i=100;pulic String str=“”;protected short t;,内存,堆,栈,静态域,常量池(方法区),局部变量、对象声明的引用,静态变量,字符串常量,new出来的类或数组的实例(含成员变量),标识符命名规则:(1)由字母、数字、_下划线,或者$美元符号组成;(2)不能以数字开头;(3)区分大小写,长度无限制,但是要见名知意;(4)不能是Java关键字或者保留字;例如:合法:Person、user_name、_userName、$abc_123 userProject非法:2Username、#Test、class、void、pulic类、方法、属性(变量)、

6、常量命名规则:类名:开头字母必须大写,后面每个单词首字母也大写,其他小写字母;方法名:开头字母小写、后面每个单词首字母大写;常量:所有字母大写;,Java 中数据类型的分类:Java中可以分为两大类数据类型:1、基本数据类型:整型:字节型(8位):byte-128到127之间的任意整数 短整型(16位):short-3276832767之间的任意整数 整型(32位):int-231到231-1之间的任意整数 长整型(64位):long-263到263-1之间的任意整数 浮点型:单精度(32位):float 32位单精度浮点数 根据IEEE754-1985标准 双精度(64位):double 布

7、尔类型:boolean(true/false)字符型(16位):char 2、引用数据类型:引用类型的内存单元中只存放对象的地址,而对象本身存贮在内存堆中,只是简单的引用对象的地址。(非指针)非基本数据类型变量,都是引用数据类型;,基本数据类型之间的转换:在Java中有如下几种转换方式:1、隐式转换:系统默认将其转换为我们需要的数据类型;例如:short t=10;10默认为int类型;double f=10.123f;10.123f为float类型;注意:在java中,整数默认为int类型,小数默认为double类型;例如:long j=10;short t2=100;char c=A;in

8、t s=c;,2、强制转换:在变量前加小括号,写转换类型,将其强制转换为指定类型;例如:(1)bytefloat;(double赋值给float类型)float/double-(byte/short/int/long)例如:float f=(float)10.123;float f=10.123f;double d=10.123;int i3=(int)d;short t3=(short)d;long l2=(long)d;byte b=(byte)d;(3)(byte/short/int/long/float/double)-char char-赋值给byte类型char c=A;c=(ch

9、ar)i;特殊情况下:通过某些JavaAPI相关方法实现类型转换(不是基本数据类型之间的转换了)例如:double dRes=Double.valueOf(10.89);,关键字、标识符和常量用法:关键字(词):是java中特有的词语,是电脑语言(这里我们指Java)里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。标识符:上文已经讲解,我们只需要注意命名规则;常量:例如:圆周率PI,3.1415926 这个数字,在我们使用时,永远不会修改这个数据,此时我们可以认为它就是常量;定义常量后,不会被修改;(注意:之声明在类中作为全局变量使用)例如:public final do

10、uble PI=3.14;Java中关键词或者未来将要使用的关键词如下:Java中有goto,但是只是保留字,不会使用的保留字;,例如:int i=6,j=6,k,m,n;j=+i;/取原值,即j=6 k=-i;/取负值,即k=-6 m=i+;/先m=i,再i=i+1,即m=6,i=7 m=+i;/先i=i+1,再m=i,即i=7,m=7 n=j-;/先n=j,再j=j-1,即n=6,j=5 n=-j;/先j=j-1,再n=j,即j=5,n=5;,例如:public class OperatorDemo01public static void main(String args)int i=10

11、;int j=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);,例如:public static void main(String args)int a=1;int b=2;int c=3;int d=4;/*boolean e=(a b),例如:public static

12、 void main(String args)int a=1;int b=2;int c=3;int d=4;int f=5;boolean e=(a b),“+”除了作为算术加法运算外,可用于对字符串的连接使用:String s1=“Hello”;String s2=s1+”world!”+100+1;该运算符两侧的操作数据中,只要有一个为字符串类型,此时系统会隐式转换位字符串然后在进行连接;,条件判断语句:if语句结构:三元运算符:.?.:.,if(条件true或者false)单个语句;else 单个语句;,if(条件true或者false)多条语句else 多条语句,If.else if

13、.else 语句结构:如果需要多条件判断时,需要If.else if.else 格式如下:,switch流程控制语句结构:主意:switch只能实现等值条件判断;而且表达式类型只能是int、char、byte/short类型变量;其中break表示退出当前判断的执行体;如果再循环中表示退出整个循环;,switch(表达式)case 常量数值1语句(组)break;case 常量数值2语句(组)break;.default:语句(组),循环控制语句结构:for循环流程控制while循环流程控制dowhile循环流程forin循环(JDK5.0新增)。,/进入for循环流程控制 for(初始表达式

14、;判断表达式;递增表达式)for循环主体;/结束for循环流程控制,do.while循环与while循环 的区别是dowhile的循环主体至少运行一次。,/进入while循环流程控制while(条件表达式)while循环主体;/结束while循环流程控制,dodo-while主体;while(条件表达式);,练习题:1、求1-100之间素数和,并统计个数;(只能被1和自身整除的数)2、用while、for循环写出1-10阶乘和;1*1 1*2 1*2*3 1*2*3*43、在控制台输出等腰、直角、倒等腰三角形;4、6=123.求1-1000之间的数,要求自身因子和为本身。5、求2+22+222

15、+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中String类型不是基本数据类型,字符串是一个对象;字符串必须通过双引号“”引起来;字符串字节使用U

16、nicode编码,一个字符占两个字节;String 是一个final类,表示不可变的字符序列;字符串是不可变的,一个字符串对象一旦被配置,它的内容就是固定不变的。如上所述,为何某个字符串变量还可以再次赋值,改变他的值呢?例如:String str1=“TEST”;str1=“RESULT”;第一次赋值时,在字符串池中已经存储了“TEST”,第二次只是改变了str1变量的指向,指向了字符串池中的“RESULT”,“TEST”本身内容不发生变化,并未被改变,改变的只是str1的指向,它在第二次赋值时相当于指向了一个另外一个字符串对象;,运行下面程序,思考为何出现此结果?String str1=“w

17、eight”;String str2=“weight”;String str3=new String(“weight”);/笔试题:创建了2了对象;System.out.println(str1=str2);/trueSystem.out.println(str2=str3);/false,String常用方法,字符串常用方法:1、获取字符串的长度:length()例如:String s1=“欢迎来的首都北京!”;int leg=s1.length();System.out.println(s1.length();2、判断字符串的前缀或后缀与已知字符串是否相同 前缀 startsWith(St

18、ring s)、后缀 endsWith(String s)String s1=“abcdefg”;System.out.println(s1.startsWith(“abc”);3、比较两个字符串:equals(String s)String s1=“admin”;String s2=new String(“admin”);System.out.println(s1.equals(s2);4、把字符串转化为相应的数值(下面方法不是Stirng类中的函数)int 型 Integer.parseInt(字符串)、例如:String res=“100”;int i=Integer.parseInt(

19、res);long 型 Long.parseLong(字符串)例如:String res=“100”;long i=Long.parseLong(res);float 型 Folat.valueOf(字符串)例如:String res=“10.102”;float i=Float.valueOf(res);double 型 Double.valueOf(字符串)例如:String res=“10.102”;double i=Double.valueOf(res);,5、将数值转化为字符串:valueOf(数值)6、字符串检索 indexOf(Srting s)从左往右查找,查找子字符串第一次出

20、现的位置,返回下标,如果不存在,返回-1;int i=admindm.indexOf(d,2);indexOf(String s,int startpoint)从 startpoint 下标开始检索,检索这个子字符串第一次出现的位置;如果没有检索到,将返回-1;7、substring(int startpoint)从 startpoint(包含找个位置字符)下标开始截取,到这个字符串末尾,返回新字符串对象;substring(int start,int end)从 start 到 end(不包含这个位置字符)结束,截取字符串;8、替换字符串中的字符,replace(String old,Str

21、ing new)用 new 替换 old;替换所有的;replaceAll(char old,char new)/替换所有的9、String split(String regex)将字符串按照某个字符串进行拆分,返回字符串数组;10、toLowerCase()toUpperCase()转换大小写,返回新字符串;11、String trim()去掉指定字符串左右空格,返回类型为String类型;,=和equals()方法比较的区别:=即比较地址也比较内容;equals()之比较对象内容是否相等;例如:int a=1;Integer b=1;Integer c=1;Integer d=new In

22、teger(1);Integer e=new Integer(1);a=b;b=c;b.equals(c)b.equals(d)int a=1;Integer b=1;Integer c=1;Integer d=new Integer(1);Integer e=new Integer(1);int f=new Integer(1);System.out.println(a=b);/trueSystem.out.println(b=c);/trueSystem.out.println(b.equals(c);/trueSystem.out.println(b.equals(d);/trueSys

23、tem.out.println(d.equals(e);/trueSystem.out.println(b=d);/falseSystem.out.println(e=f);/true/特别;、,例如:String a=“abc”;String b=“abc”;String c=new String(“abc”);a=ba=ca.equals(c)a.equals(b),练习题:1、“2014-07-11”将这个字符串格式化为:(1)2014年-07月-11日(2)20140711 2、写一个函数,实现查找指定子字符串出现的次数;例如:“abcddfdsfdf”控制台输入f,然后输出f在这个字

24、符串出现的次数;3、去掉指定字符串中重复的字符,如果重复只保留一个;例如:“abcddfdsfdf”:abcdfs,包装类,基本数据类型所对应的类,即包装类;里面封装了操作该基本数据类型的相关方法;例如:JavaAPI中提到了:Double 类在对象中包装一个基本类型 double 的值。每个 Double 类型的对象都包含一个 double 类型的字段;byte-Byteshort-Shortint-Integerlong-Longchar-Character;float-Float;double-Double;boolean-Boolean常用方法:例如:Integer.parseInt(

25、String str);将字符串转换为int类型 Integer.valueOf(String str);,数组的定义和使用:数组:它是一个变量,用于存储相同数据类型的一组数据;建立java数组需要以下三个步骤:声明数组创建数组空间初始化数组元素 数组的声明方式:(1)数据类型 变量名;(2)数据类型 变量名;,例如:char s;或:char s;Object p;Object p;注意:为数组开辟内存空间,在创建数组空间时必须为它指明数组的长度。因为数组在java中长度不可变一个数组是一个对象,所以用new来创建数组 语法格式为:数组名=new 数组元素类型数组元素的个数;例如:int M

26、yIntArray;MyIntArray=new int10;,也可以在创建数组空间的时候,同时将初值给出来,例如: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=new int9;myIntArray0=1;.*/存储空间的分配等价于使用new有上面描述得知:java中数组长度不可变;基本数据类型的数组元素会自动初始化成“空”值(对于数值,空值就

27、是零;对于char,它是null;而对于boolean,它却是false)。,例如:创建一个存储A到Z的字符数组:public char createArray()char s;s=new char 26;for(int i=0;i 26;i+)s i=(char)(A+i);return s;,数组下标(边界):所有数组的下标从0开始int list=new int 10;for(int i=0;i list.length;i+)System.out.println(list i);,初始化数组有两种方式:1 先定义数组,分配空间,然后直接对每个元素进行赋值。2 在定义数组的同时进行初始化。

28、例如:对基本数据类型(1)int nums;=new int 3;nums 0=1;nums 1=2;nums 2=3;(2)int nums=1,2,3;,对非基本数据类型初始化,可以带来更大的灵活性。例如:public class VarArgs static void f(Object x)for(int i=0;i x.length;i+)System.out.println(xi);public static void main(String args)Objct obj=new Object new Integer(47),new Float(3.14),new Double(11

29、.11);f(obj);f(new Object one,two,three);,多维数组的定义和使用:1.定义方式:type 维数arrayName;例如:int intArray;int a2;2.分配内存空间:有两种方法:直接为每一维分配空间,如int a=new int23;int twoDim=new int 4;/error分别为每一维分配空间 如:int a=new int2;a0=new int4;a1=new int3;可以为每行设置为空间大小不同的数组。如:a0=new int3;a1=new int5;,Java中多维数组被看作数组的数组。例如二维数组为一个特殊的一维数组

30、,其每个元素又是一个一维数组。int a=new int23;a00 a01 a02a10a11 a123.多维数组(这里我们针对二维数组举例)初始化有两种方式:例如:(1)int a=new int23;先定义后再赋值;(2)int a=2,3,6,1,5,3,4;定义时直接赋值;,拷贝数组 System.arraycopy()方法:public static void arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src-源数组。srcPos-源数组中的起始位置。dest-目标数组。destPos-目标数据中的起

31、始位置。length-要复制的数组元素的数量。,System.out.println(*);String strArrays=new String20;for(int i=0;i20;i+)strArraysi=String.valueOf(char)(A+i);System.out.println(strArraysi);String targetArrays=new String20;for(int j=0;j20;j+)targetArraysj=String.valueOf(j);System.arraycopy(strArrays,5,targetArrays,2,6);System

32、.out.println(*);for(int j=0;j20;j+)System.out.println(targetArraysj);,在JDK 6+中,Arrays 类包新增了copyOf()方法,可以直接传回一个新的数组,而其中包括复制的內容,例如:import java.util.Arrays;public class ArrayDemo public static void main(String args)int arr1=1,2,3,4,5;int arr2=Arrays.copyOf(arr1,arr1.length);for(int i=0;i arr2.length;i+

33、)System.out.print(arr2i+);System.out.println();,练习题:1、写三个函数,实现对数组的增加修改和删除;SDF,dd,ff2、String citys_str=“黑龙江省!哈尔滨市|齐齐哈尔市|黑河市|安达市|肇东市|绥化地区”;将上面字符串,拆分省和该省下面的城市列表,城市以数组形式存储;3、实现数组a,b,c,d 任意两个位置数据的交换;String a=a;4、String data1=a,b,c,d,.;Stringdata2=a,x,d,b,.假如data1 和data2 数组的长度均为10000,此时如何高效的找出两个数组data1和data2中都出现过的字符?5、写一个函数,实现如下功能:一个数组byte a,需要将里面的每个元素循环移位n,生成一个新的数组,请实现函数byte shiftPlace(byte a,int n);例如:byte items=new byte0,1,2,3,4循环移位2后变为3,4,0,1,2,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号