第三章_Java基础语法[下]
- 格式:ppt
- 大小:544.00 KB
- 文档页数:28
Java语法基础知识Java语法基础知识Java自面世后就非常流行,发展迅速,在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
下面整理了一些Java语法基础知识,希望对大家有所帮助!标示符其实就是在程序中自定义的名词。
比如类名,变量名,函数名。
包含0-9、a-z、$、_ ;注意:1.数字不可以开头2.不可以使用关键字常量在运行中不会变化的'量编译后会被替换成魔法数字变量其实就是内存中的一个存储空间,用于存储常量数据。
作用:方便于运算。
因为有些数据不确定。
所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
变量的作用域和生存期变量的作用域 :作用域从变量定义的位置开始,到该变量所在的那对大括号结束;生命周期:变量从定义的位置开始就在内存中活了;变量到达它所在的作用域的时候就在内存中消失了;数据类型基本数据类型byte、short、int、long、float、double、char、boolean引用数据类型数组、类、接口级别从低到高为byte,char,short(平级)-->int-->float-->long-->double自动类型转换从低级别到高级别,系统自动转的;运算符号算术运算符+ - * / % 任何整数模2不是0就是1,可以实现开关操作赋值运算符= ,+= , -= , *= ,/= , %=比较运算符特点:该运算符的特点是:运算完的结果,要么是true,要么false 下载全文。
第三章Java程序设计基础3.1 Java编程概况现在你可以复习一下Java语言的背景材料,它的基本结构象C/C++,但任何用面向过程语言编写过程序的人都可以了解Java语言的大部分结构.3.1.1程序结构Java语言的源程序代码由一个或多个编译单元(compilation unit)组成,每个编译单元只能包含下列内容(空格和注释除外):*一个程序包语句(package statement )*入口语句(import statements) *类的声明(class declarations)*界面声明(interface declarations) 每个Java的编译单元可包含多个类或界面,但是每个编译单元最多只能有一个类或者界面是公共的。
Java的源程序代码被编译?reg;后,便产生了Java字节代码。
Java的字节代码由一?copy;不依赖于机器的指令组成,这?copy;指令能被Java的运行系统(runtimesystem)有效地解释。
Java的运行系统工作起来如同一台虚拟机。
在当前的Java实现中,每个编译单元就是一个以.java为后缀的文件。
每个编译单元有若干个类,编译后,每个类生成一个.class文件。
.class文件是Java虚拟机能够识别的代码。
3.1.2 注释三种类型如下://注释一行/*一行或多行注释*//**文档注释**/文档注释一般放在一个变量或函数定义?reg;前,指示在任何自动生成文档系统中调入。
这?copy;注释都是声明条目的描述.。
3.1.3 标识符变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。
在Java语言里,标识符以字符或_,$开头,后面可以包含数字,标识符是大小写有区别的,没有长度限制。
有效的标识符 myname ict_network Hello _sys_path $bill例子:int a_number; char _onechar; float $bill;关键词 abstract continue for new switch boolean default goto null synchronized break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public transient catch false int return true char final interface shorttry class finally long static void const float native super while 其它保留词以下单词被保留使用:cast future generic inner operator outer rest var3.1.4 数据类型Java使用五种基本类型:integer(整数),floating(浮点数),point(指针),Boolean(布尔变量),Character or String(字符或字符串)。
第二、三章 Java根底知识与流程构造1、Java语言是〔〕A、区分大小写的B、不完全区分大小写C、完全不区分大小写D、以上说法都不对2、Java语言中,以下标识符错误的选项是A、nameB、?questionC、$numberD、_tree3、在Java语言中,int类型在内存中所占的位数为A、8B、16C、32D、644、以下不属于根本类型的是A、intB、interfaceC、floatD、char5、Java变量中,以下不属于复合类型的数据类型是A、数组型B、类C、整数型D、接口6、专门定义常量的保存字是A、varB、interfaceC、finalD、const7、以下定义变量错误的选项是A、int al;B、char ch1;C、int d1=10;D、bool bl1;8、以下定义变量错误的选项是()A、char s="23";B、short I=100;C、double d;D、String srt="weare me!";9、在给数值类型赋值时,如数字后没有字母,计算机默认为〔〕类型A、integer类型B、float类型C、double类型D、字符类型10、将较长的数据类型转换为较短的整数类型,要进展〔〕A、类型的自动转换B、类型的强迫转换C、无需转换D、无法实现11、以下表示回车的是A、\fB、\nC、\tD、\r12、以下赋值语句错误的选项是A、i=i;B、I = = 0;C、I = I +1;D、I += 1;13、在Java中,〞%〞符号的作用是A、求百分比B、求余C、除D、取整14、下面不属于Java条件分支语句构造的是A、if-else if构造B、if-else构造C、if-else if-else构造D、if-end if构造15、Java中最简单的条件语句是( )构造A、if构造B、while构造C、if-else构造D、以上都不对16、当x=1、y=3,时,表达式 x%=y 的运算结果为( )A、x=2,y=3B、x=0,y=3C、x=1,y=3D、x=1,y=217、if语句中“条件〞表达式可以是A、关系表达式B、布尔逻辑表达式C、选项A、B都是D、以上都错18、if语句中“条件〞为“真〞时,可以执行A、一条语句B、两条语句C、多条语句D、一条语句,或者由“{}〞括起的代码块19、If-else语句中的else子句A、可以单独使用B、不能单独使用C、可以在一定条件下单独使用D、可以配合while使用20、三元条件运算符ex1 ? ex2: ex3,相当于下面的( )语句A、if(ex1) ex2;else ex3;B、if(ex2) ex1;else ex3;C、if(ex1) ex3;else ex2;D、if(ex3) ex2;else ex1;21、Java程序中的语句不可以是A、单一的一条语句B、{}括起来的语句块C、复合语句D、汉字语句22、switch语句表达式的值与某case子句的值匹配后A、执行该子句后的所有语句,遇到break终止执行B、只执行该case子句C、执行该子句后的所有语句,除了default子句D、只执行default子句23、switch语句中A、必须有default子句B、不必有default子句C、必须有default子句和至少一个case子句D、必须有default子句,不必有case子句24、switch语句中A、case子句中的值不一定必须是常量B、case子句中的值可以是变量C、case子句的值必须是常量D、case 子句的值必须是变量25、在switch语句中,每个case子句后A、都必须有一个break语句B、不应存在break语句C、假如不想执行以后的case分支和default分支,应有break语句D、假如想执行以后的case分支和default分支,应有break语句26、下面对do-while构造描绘错误的选项是A、先执行循环体,再判断终止条件,假设结果为true,循环执行循环体,直到布尔表达式为falseB、循环体至少执行一次C、循环中可以使用break跳出循环D、与while语句完全一样27、对for循环初始化描绘正确的选项是A、必须执行初始化操作B、首先执行初始化操作C、先执行循环体内容再执行初始化操作D、以上都不对28、可以在for循环初始化部分声明一个变量,其作用域是A、for循环所在的代码块B、整个for循环C、for循环后的所有部分D、全部代码29、for循环的循环次数A、是确定的B、不是确定的C、通常是确定的,但也可以不确定D、通常不确定,但也可以确定30、对for循环中初始化、终止和迭代部分的描绘错误的选项是A、都可以为空语句B、之间的分号不能省略C、可以部分为空语句D、可以用逗号彼此分隔31、break语句可以用在switch语句中,执行后A、跳出所在的case子句,执行下一条case子句B、跳出所在的case子句,执行最后的default子句C、跳出整个switch子句D、以上说法都不对32、break语句可以在循环语句中执行,执行后A、跳出本次循环,继续进展下次循环B、跳出循环,从紧跟循环的第一条语句执行C、跳出循环,从循环条件处执行D、跳出本次循环,到指定处运行33、执行continue语句后A、跳出整个循环B、跳过循环体中下面的语句,继续下次循环C、下次循环前不需要判断终止条件D、以上说法不对34、以下说法错误的选项是A、Java是面向对象的语言B、Java以类为程序的根本单位C、类就是对象D、在Java语言中,类是具有某种功能的根本模块的描绘35、Java程序构造中,源文件的主文件名与程序公共类名〔〕A、开头字母必须大写B、可以不同C、必须一样D、以上说法都不对36、Java语言中,byte类型在内存中所占的位数为A、8B、16C、32D、6437、long类型存储时占()位bit。
映射驱动器Y: 192.168.18.2\o user user注意Java命名规范,写程序时一定要注释!改变MyEclips编辑器字体window→preferences→Appearance→Colors and Fonts→Java Editor Text Font在MyEclipse里查看类源码:D:\Program Files\Java\jdk1.5.0里src.zip解压到D:\Program Files\Java\jdk1.5.0\lib\src里,然后在MyEclipse里点击需要查看的类库中的类源码,按F3,如System后(第一次时需复制路径D:\Program Files\Java\jdk1.5.0\lib\src),会产生System.class的选项卡。
将文件拖到运行里或命令窗口中,可查看文件全路径(此方法可查看扩展名)。
反编译工具,将.class文件反统成.java文件,见张孝祥JA V A基础1.WMV末。
第一章划时代的Java语言安装jdk_1.5后Java环境变量配置:从【开始】→【设置】→【控制面板】→【系统】→【高级】→【环境变量】→【系统变量】,或者我的电脑→属性→高级→环境变量→系统变量然后到【新建】。
1.JA V A_HOME = D:\Program Files\Java\jdk1.5.02.PA TH = %JA V A_HOME%\bin;3.CLASSPA TH= .;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tool s.jar;看好是在:“系统变量”中!!控制台里输入java –version 查看java版本一个Java程序源文件只能有一个类是public的(主类),main函数在主类里(才能运行),并且该类的类名和文件命名要完全一致,包括大小写。
每个源文件中的class类都将被编译成一个.class字节码文件,(有多少类就有多少.class字节码文件)这就是类文件。
专接本辅导java第三章《面向对象编程基础》补充0.类变量与实例变量区别(类方法与实例方法的区别见习题解答第12题改错)java类的成员变量有两种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。
总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
例如,对于下面的程序,无论创建多少个实例对象,只在类被第一次装置时初始化一次staticVar变量和sum变量,并且每创建一个实例对象,就会执行一次构造函数;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
public class类变量与实例变量{public static int staticVar = 0;//类变量初始化,只会在类装载时进行一次!!public int instanceVar = 0;//实例变量初始化public static int sum=1;public类变量与实例变量()//构造方法{staticVar++;instanceVar++;sum=sum+5;System.out.println("staticVar = "+staticVar+",instanceVar="+instanceVar);System.out.println("sum = "+sum);}public static void main(String []args){类变量与实例变量对象1=new类变量与实例变量();类变量与实例变量对象2=new类变量与实例变量();类变量与实例变量对象3=new类变量与实例变量();}}运行结果:staticVar = 1,instanceVar=1sum = 6staticVar = 2,instanceVar=1sum = 11staticVar = 3,instanceVar=1sum = 16再如下面的程序,涉及static块:class Value{static int c=0;static int d;Value(){c=15;d=65;}Value(int i){c=i;d=c-1;}static void inc(){c++;}}public class Count {Value v0=new Value();//调用无参构造函数建立Value类非静态对象v0,类Count和类Value是has-a关系Value v=new Value(10);//调用有参构造函数建立Value类非静态对象vstatic Value v1,v2;//声明Value类的static对象v1,v2//static Value v1=new Value(),v2=new Value();//声明v1、v2并引用新建立的Value类对象static{//★声明static块,其初始化工作会先于任何其它非static块及非static变量而不管其在源程序书写中出现的先后次序!System.out.println("static块中println语句执行结果:"+"\n"+"v0和v是非静态内部类对象,v1和v2是静态内部类对象(请与教材P58例3.18对比),只有声明没有具体指向某对象时:v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);v1=new Value(30);//对象v1引用新建立的Value类对象System.out.println("static块中执行完“v1=new Value(30)之后:”v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);v2=new Value(15);//对象v2引用新建立的Value类对象System.out.println("static块中执行完“v2=new Value(15)之后:”v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);System.out.println("特别说明:因此时还没有建立Count类对象(Count 类和Value类是has-a关系,前者是外部类,后者是内部类)故非静态对象v0和v无法引用!"+"\n");}public static void main(String[] args) {Count ct1=new Count();//建立Count类(外部类)对象Count ct2=new Count();System.out.print("在main方法中,现在建立Count类(外部类)对象,");System.out.println("ct1的在ct2之前创建!分别指向两个Count类对象,Count类和Value类是has-a关系!"+"\n"+"以下是main方法体中println语句执行结果:");System.out.println("v0是无参构造内部类非静态对象,ct1.v0.c="+ct1.v0.c+" ct1.v0.d="+ct1.v0.d+" ct2.v0.c="+ct2.v0.c+"ct2.v0.d="+ct2.v0.d);// 非静态内部类对象只能通过外部类对象名访问System.out.println("v是有参构造内部类非静态对象,ct1.v.c="+ct1.v.c+" ct1.v.d="+ct1.v.d+" ct2.v.c="+ct2.v.c+" ct2.v.d="+ct2.v.d);// 非静态内部类对象只能通过外部类对象名访问System.out.println("v1是有参构造内部类静态对象,Count.v1.c="+Count.v1.c+" count.v1.d="+Count.v1.d);//静态内部类对象可以通过外部类名访问System.out.println("v2是有参构造内部类静态对象,Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);Value.inc();//通过类名调用类方法System.out.println("调用类方法inc()之后Count.v1.c="+Count.v1.c+" Count.v1.d="+Count.v1.d);//引用类变量既可以通过类名也可以通过对象名System.out.println("调用类方法inc()之后Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);Count.v2.inc();//通过类名调用类方法,这种写法不妥!System.out.println("调用类方法v1.inc()之后Count.v1.c="+Count.v1.c+" Count.v1.d="+Count.v1.d);//引用类变量既可以通过类名也可以通过对象名System.out.println("调用类方法v1.inc()之后Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);ct1.v0.c++;//this.v0.c++;//错误,★不能在静态上下文中使用this关键字:!因为Value是Count的内部类,只能使用其外部类的对象ct2.v0.c++;System.out.println("顺序执行语句:ct1.v0.c++;ct2.v0.c++;后,ct1.v0.c="+ct1.v0.c+" ct2.v0.c="+ct2.v0.c);// 非静态内部类对象只能通过外部类对象名访问}}上面这个程序的行动结果如下:static块中println语句执行结果:v0和v是非静态内部类对象,v1和v2是静态内部类对象(请与教材P58例3.18对比),只有声明没有具体指向某对象时:v1.c=0 v2.c=0 v1.d=0 v2.d=0static块中执行完“v1=new Value(30)之后:”v1.c=30 v2.c=30 v1.d=29 v2.d=29static块中执行完“v2=new Value(15)之后:”v1.c=15 v2.c=15 v1.d=14 v2.d=14特别说明:因此时还没有建立Count类对象(Count类和Value类是has-a关系,前者是外部类,后者是内部类)故非静态对象v0和v无法引用!在main方法中,现在建立Count类(外部类)对象,ct1的在ct2之前创建!分别指向两个Count类对象,Count类和Value类是has-a关系!以下是main方法体中println语句执行结果:v0是无参构造内部类非静态对象,ct1.v0.c=10 ct1.v0.d=9 ct2.v0.c=10 ct2.v0.d=9v是有参构造内部类非静态对象,ct1.v.c=10 ct1.v.d=9 ct2.v.c=10 ct2.v.d=9 v1是有参构造内部类静态对象, Count.v1.c=10 count.v1.d=9v2是有参构造内部类静态对象, Count.v2.c=10 count.v2.d=9调用类方法inc()之后 Count.v1.c=11 Count.v1.d=9调用类方法inc()之后 Count.v2.c=11 count.v2.d=9调用类方法v1.inc()之后 Count.v1.c=12 Count.v1.d=9调用类方法v1.inc()之后 Count.v2.c=12 count.v2.d=9顺序执行语句:ct1.v0.c++;ct2.v0.c++;后,ct1.v0.c=14 ct2.v0.c=14以上运行结果中,有五点值得注意:一是static变量和static块是在类第一次装载时被初始化一次,并供类的所有对象共享,故static变量和static块中内容最先被初始化(早于main方法)。