版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java基础李慧芬lihf@B1-308第2章Java基础李慧芬教学目标了解面向对象的基本概念。掌握Java类的定义方法。熟练掌握Java语言中的数据类型。掌握Java中各类运算符的使用方法。掌握Java中表达式的基本原理及使用方法教学目标了解面向对象的基本概念。本章目录2.1面向对象的基本概念2.2Java语言中类的定义2.3常量和变量2.4数据类型2.5运算符和表达式2.6本章小结本章目录2.1面向对象的基本概念2.1面向对象的基本概念面向对象:一种程序设计方法和设计规范。使用对象、类、继承、封装、消息等基本概念来进行程序设计。Java是完全面向对象编程语言。2.1面向对象的基本概念面向对象:一种程序设计方法和设计规1、对象现实世界中,对象是状态(属性)和行为的结合体。程序设计中,对象定义为相关数据和方法的集合。是现实世界对象的抽象模型。数据(变量):描述对象的属性。方法(函数):实现对象的行为。例如:“银行账户”对象:属性:账号、户名、密码、账户余额等方法:存款、取款、查询余额、更改密码等1、对象现实世界中,对象是状态(属性)和行为的结合体。2、类类:对象的软件图纸、模板或原型。定义了同类对象共有的变量和方法。Java编程就是设计类,采用自定义或继承等方法设计一个类,然后使用它的实例对象完成具体的功能。2、类类:3、继承和重用继承(inheritance):由一个类定义另外一个类。子类继承了父类的状态和行为,可添加新的变量和方法。例如:三角形----等腰三角形---等边三角形继承使父类的代码得到重用,在继承父类提供的共同特性基础上添加新的代码,提高了编程效率。Java不支持多继承,子类只能有一个父类。3、继承和重用继承(inheritance):由一个类定义另4、封装封装(encapsulation):将相关数据和方法放在一个包里。把类设计成一个黑箱,使用者只能看见类中定义的公共方法,而看不到方法实现的细节,也不能直接对类的数据进行操作,迫使用户通过接口去访问数据。好处:模块化、数据隐藏。4、封装封装(encapsulation):将相关数据和方法5、多态性多态性:一般类中定义的属性或方法被特殊类继承后,可以具有不同数据类型或表现出不同的行为。同一属性、方法在一般类及其各个特殊类中具有不同的语义。5、多态性多态性:一般类中定义的属性或方法被特殊类继承后,可2.2Java语言中类的定义类(Class):对一个特定类型对象的描述,定义了一种新类型,是对象的定义。属性:存储数据项的变量方法:对类进行的操作2.2Java语言中类的定义类(Class):对一个特定类银行账户:属性:户名
账户号
密码
账户余额方法:登记信息
输出信息抽象classCust{String
name;
int
ID;
String
PWD;
int
money;
void
initCust(StringnewName,intnewID,StringnewPWD,intnewMoney){name=newName;ID=newID;PWD=newPWD;money=newMoney;}void
printCust(){System.out.println("户名:"+name);System.out.println("账号:"+ID);System.out.println("账户余额:"+money);}}
建立具体的银行账户(对象)账户(Tom):户名——Tom账户号—100
密码——111111
余额——10000实例化——建立对象public
classCustDemo{public
static
void
main(String[]args) {
CustmyCust=newCust();
myCust.initCust("Tom",100,"11111",10000);myCust.printCust();}}银行账户:抽象classCust{建立具体的银行账户(对2.3常量和变量
2.3.1常量
常量:数据在程序运行过程中值不发生改变。常量用final声明,不占用内存。Java约定常量名称用大写字母。声明常量的格式:
final类型常量名=值;例如:finaldoublePI=3.1415;注意:常量只能在定义时赋值2.3常量和变量
2.3.1常量常量:数据在程序运行过2.3.1常量类常量:可以在一个类中的多个方法中使用使用关键字staticfinalpublic
classConstantsExample2{
publicstaticfinaldoubleM=2.54;
publicstaticvoidmain(stringargs[]){
doublewidth=8.5;
doubleheight=11; System.out.println(“papersizeincentimeters:”+width*M+”by”+height*M);
}}
2.3.1常量类常量:可以在一个类中的多个方法中使用p2.3.2变量变量:一个命名的内存块,用于存储Java程序中的信息。每个内存块只能存储一种类型的数据。声明变量的格式:类型
变量名[,变量名][=初值];
如:
inta,b=3;变量在使用前必须先定义,定义时可赋初始值。变量的值可以改变。变量名的命名遵循标识符命名规则,通常用小写字母或单词,不能与Java语言的关键字相同。在同一个作用范围内,不能有相同名字的两个变量。2.3.2变量变量:一个命名的内存块,用于存储Java程序变量的作用域变量都有特定的作用域。在类中声明的变量称为成员变量,通常在类开始处声明,可在整个类中使用。在方法中声明的变量称为局部变量。在该方法中起作用。变量的作用域变量都有特定的作用域。例:变量的作用范围publicclassTest{
static
inti=10;
//成员变量,在整个类范围内起作用publicstaticvoidmain(Stringargs[]){
intk=10;
//局部变量,只在方法内起作用System.out.println("i="+i);
System.out.println("k="+k);}
voidprintk(){
System.out.println("k="+k);
//编译时将出错,已超出k的使用范围
}}例:变量的作用范围publicclassTest{2.3.3标识符和关键字
1、标识符标识符命名的基本规则:由字母、数字、下划线、美元符号组成只能以字母、下划线或美元符号($)开头注意:标识符长度没有限制,区分大小写关键字不能作为用户标识符Java采用Unicode字符集,16位编码,可使用其他语言的字母作为标识符。如希腊字母、中文等以下哪些是合法的用户标识符命名:2teacher、studentName、Student_Nameroom#、abstract、_my_value、$address3a、int、mydate、@email2.3.3标识符和关键字
1、标识符标识符命名的基本规则:2.Java关键字Java定义了48个保留关键字:abstractdoimplementspackagesynchronizedbooleandoubleimportprivatethisbreakelseinstanceofprotectedthrow/throwsbyteextendsintpublictransientcasefalseinterfacereturntruecatchfinallongshorttrycharfinallynativestaticvoidclassfloatnewstrictfpvolatilecontinueformainsuperwhiledefaultifnullswitch2.Java关键字Java定义了48个保留关键字:abstr数据类型基本数据类型引用数据类型数值型字符型:char布尔型:boolean整型:byte,short,int,long实型:float,double类:class数组和字符串接口:interface2.4数据类型数据类型基本数据类型引用数据类型数值型字符型:char布尔型Java的基本数据类型数据类型名称位长缺省值取值范围布尔型boolean1falsetrue,false
(不能用0、1表示)字节型byte80–128~127字符型char16‘\u0000’‘\u0000’~’\uffff’短整型short160–32768~32767整型int320–2,147,483,648~2,147,483,647长整型long640–9,223,372,036,854,775,808~9,223,372,036,854,775,807浮点型float320.0-2-149~(2-2-23)·2127双精度型double640.0-2-1074~(2-2-52)·21023字符串类型:使用String关键字定义,用一对双引号括起来的字符序列。如:Stringname=“Jack”;Java的基本数据类型数据类型名称位长缺省值取值范围布尔型b练习:定义一常量PI并赋值为3.14定义一整型变量,并赋值为100定义一字符型变量,并赋值为a定义一个单精度型变量,并赋值为2.5定义一个字符串类型变量,并赋值为Java练习:定义一常量PI并赋值为各类型数据间的相互转换
1、自动类型转换整型、浮点型、字符型数据可以混合运算。在进行运算时,低级数据要先转换成同高级数据,进行自动类型转换。2.4.2各类型数据间的相互转换
1、自动类型转换整型、浮publicclassAutotypePromot{publicstaticvoidmain(Stringargs[]){
char
c='h';
byte
b=5;
inti=65;
long
a=465L;
float
f=5.65f;
double
d=3.234;
int
ii=c+i;//char类型变量c自动转换为int类型参加运算
long
aa=a-ii;//int类型变量ii自动转换为long类型参加运算
float
ff=b*f;//byte类型变量b自动转换为float类型参加运算
double
dd=ff/ii+d;
//int类型的变量ii自动转换为float类型
//ff/ii计算结果为float类型,然后再转换为double类型
System.out.println("ii="+ii);System.out.println("aa="+aa);System.out.println("ff="+ff);System.out.println("dd="+dd);}}publicclassAutotypePromot{2.不兼容强制类型转换强制类型转换:
(目标类型)值例:doubled=257.675;
inti=(int)d; byteb=(byte)i;注意:强制类型转换低→高:一般不会发生问题。高→低:很可能引起数据丢失或错误,但系统不会报告任何出错信息。//强制转换,舍去小数部分,i的值为257//强制转换,只保留低8位,b的值为12.不兼容强制类型转换强制类型转换://强制转换,舍去小数2.5运算符和表达式运算符,也称为操作符,用于对数据进行计算和处理,或改变特定对象的值。运算符按其操作数的个数来分,可分为一元运算符、二元运算符和三元运算符。表达式是运算符、常量和变量的组合。Java的表达式既可以单独组成语句,又可以出现于循环条件测试、变量说明、方法的调用参数等场合。2.5运算符和表达式运算符,也称为操作符,用于对数据进名称符号算术运算符+,-,*,/,%,++,--赋值运算符=扩展赋值运算符+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=、>>>=关系运算符<,>,>=,<=,==,!=布尔逻辑运算符!,&&,||位运算符>>,<<,>>>,&,|,^,~条件运算符(?:)其他运算符分量运算符“·”,下标运算符“[]”,实例运算符“instanceof”,内存分配运算符“new”,强制类型转换运算符(类型),以及方法调用运算符“()”等2.5运算符和表达式名称符号算术运算符+,-,*,/,%,++,--赋值运算符=2.5.1算术运算和算术表达式算术运算符:一元运算:-(取负值)、+(取正值)、++、--二元运算:*、/、%、+、-Java中取模运算符”%”的操作数可以为浮点数。例子: inti,j,k; i=5;j=i++;k=++i; inta=9/4;
doubleb=9/4.0; intc=9%4; doubled=b%a;//执行后,i的值为7、j的值为5、k的值为7//执行后,a的值为2、b的值为2.25、c的值为1,d的值为算术运算和算术表达式算术运算符:例子://执行后2.5.4关系运算符和关系表达式关系运算符:>、<、>=、<=、==、!=关系运算的结果为布尔值,返回true或false。关系运算符常与逻辑运算符一起使用,作为流程控制语句的判断条件。例子:
inta=3,b=6; booleanx=a==b;
booleany=a<b;//执行后,x的值为false、y的值为true2.5.4关系运算符和关系表达式关系运算符:>、<、>=、2.5.5逻辑运算符和逻辑表达式逻辑运算符:!、&&、||、^、&、|逻辑运算的操作数只能是布尔类型。逻辑运算中,运算符^、&、|
分别表示异或、求与、求或逻辑运算。逻辑运算的结果为布尔值:true或false。例子:
3&&5
3<5&&5<6
3<5&5<6 3<5|5<6
3<5^5<6 //编译错误,逻辑运算的操作数只能是布尔类型//结果是true//与3<5&&5<6等价,结果是true//异或运算,结果是false//与3<5||5<6等价,结果是true2.5.5逻辑运算符和逻辑表达式逻辑运算符:!、&&、||2.5.5逻辑运算符和逻辑表达式关系运算符、逻辑运算符的优先级:!>、>=、<、<===、!=&^|&&||例子:
intx=3,y=6;booleanw=true; booleanz=x<0||x<y&&x>0;
booleanu=!w||x<0;
booleanv=!w&&y>0;
booleant=!w||y>x^y>0&x<0//z=true//u=false//w=false//t=true2.5.5逻辑运算符和逻辑表达式关系运算符、逻辑运算符的优2.5.6条件运算符和条件表达式条件运算符:?:,三元运算符。条件表达式的格式为:
表达式1
?
表达式2:表达式3表达式1应是关系表达式或逻辑表达式。先计算表达式1的值,若值为true,计算并返回表达式2的值,若值为false,计算并返回表达式3的值。例子:
inta=-3
,b;
b=a>0?-a:a;2.5.6条件运算符和条件表达式条件运算符:?:,三元运2.5.7位运算符和移位运算符位运算表示按每个二进制位(bit)进行计算。位运算、移位运算的操作数仅限于整数(char、short、int、long、byte),以二进制形式进行,运算结果为一个整数。位运算符:按位取反:~按位与:&按位或:|按位异或:^例:a=20,b=14
a:b:…00010100…00001110~a//结果为-21(1……11101011)a&b//结果为4(…00000100)a|b//结果为30(…00011110),a^b//结果为26(…00011010),2.5.7位运算符和移位运算符位运算表示按每个二进制位(b2.5.7位运算符和移位运算符移位运算符:左移运算符:<<每左移1位,
使原操作数乘2右移运算符:
>>
正数:高位补0
负数:高位补1
每右移1位,若操作数原有位没被移出,则使该数除2无符号右移运算符:>>>高位补0…00000100a=a<<1例:a=4//结果为8(…00001000)a=a<<2//结果为16(…00010000)…00000100例:a=4, b=-4a=a>>1//结果为2(…0000010)1…11111100b=b>>1//结果为-2(1…1111110)b=-4,b=b>>>1//结果为2147483646(01…1111110)2.5.7位运算符和移位运算符移位运算符:…00000102.5.3赋值运算符和赋值表达式赋值运算符:=复合赋值运算符:+=、-=、*=、/=、%=、
&=、|=、^=
>>=、<<=、>>>=例子:inta=6,b=2;
(1)a&=b
(2)a*=b-=a/b//a=2//a=-62.5.3赋值运算符和赋值表达式赋值运算符:=例子:int其他运算符在Java中还有一些特殊的运算符:():优先运算(参数表):方法的参数传递(类型):强制类型转换.:分量运算符[]:下标运算符instanceof:对象运算符,判断对象是否类的实例new:对象实例化运算符,为对象分配内存+:字符串合并运算符其他运算符在Java中还有一些特殊的运算符:2.5.8运算符优先级
运算符描述优先级结合性.[]()域,数组,括号1从左至右++---!~instanceof
一元运算符2从右至左new(type)
内存分配运算符3从左至右*/%乘,除,取余4从左至右+-加,减5从左至右<<>>>>>位运算6从左至右<<=>>=逻辑运算7从左至右==!=逻辑运算8从左至右2.5.8运算符优先级运算符描述优先级结合性.[]运算符描述优先级结合性&按位与9从左至右^按位异或10从左至右|按位或11从左至右&&逻辑与12从右至左||逻辑或13从左至右?:条件运算14从左至右=*=/=%=+=-=^=位运算15从左至右&=|=<<=>>=>>>=位运算16从左至右2.5.8运算符优先级
运算符描述优先级结合性&按位与9从左至右^按位异或10从左至publicclassOperatorSample3{publicstaticvoidmain(Stringargs[]){
inta,b;
booleand;
floatc,z,f;a=5;b=8;
c=a+++1;
d=a>b&&b>c;
z=a+c*b;
f=(a+c)*b;
System.out.println("a="+a);System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("z="+z);
System.out.println("f="+f);}}publicclassOperatorSample3{本章小结Java中的数据类型有简单数据类型和引用数据类型两种。简单数据类型包括整数类型、浮点类型、字符类型和布尔逻辑类型;引用数据类型包括类、接口和数组。Java中的运算符分为算术运算符、逻辑运算符、位运算符、关系运算符、赋值运算符和条件运算符。表达式是由运算符和操作数组成的符号序列,对一个表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行。本章小结Java中的数据类型有简单数据类型和引用数据类型两种谢谢!谢谢!第2章Java基础李慧芬lihf@B1-308第2章Java基础李慧芬教学目标了解面向对象的基本概念。掌握Java类的定义方法。熟练掌握Java语言中的数据类型。掌握Java中各类运算符的使用方法。掌握Java中表达式的基本原理及使用方法教学目标了解面向对象的基本概念。本章目录2.1面向对象的基本概念2.2Java语言中类的定义2.3常量和变量2.4数据类型2.5运算符和表达式2.6本章小结本章目录2.1面向对象的基本概念2.1面向对象的基本概念面向对象:一种程序设计方法和设计规范。使用对象、类、继承、封装、消息等基本概念来进行程序设计。Java是完全面向对象编程语言。2.1面向对象的基本概念面向对象:一种程序设计方法和设计规1、对象现实世界中,对象是状态(属性)和行为的结合体。程序设计中,对象定义为相关数据和方法的集合。是现实世界对象的抽象模型。数据(变量):描述对象的属性。方法(函数):实现对象的行为。例如:“银行账户”对象:属性:账号、户名、密码、账户余额等方法:存款、取款、查询余额、更改密码等1、对象现实世界中,对象是状态(属性)和行为的结合体。2、类类:对象的软件图纸、模板或原型。定义了同类对象共有的变量和方法。Java编程就是设计类,采用自定义或继承等方法设计一个类,然后使用它的实例对象完成具体的功能。2、类类:3、继承和重用继承(inheritance):由一个类定义另外一个类。子类继承了父类的状态和行为,可添加新的变量和方法。例如:三角形----等腰三角形---等边三角形继承使父类的代码得到重用,在继承父类提供的共同特性基础上添加新的代码,提高了编程效率。Java不支持多继承,子类只能有一个父类。3、继承和重用继承(inheritance):由一个类定义另4、封装封装(encapsulation):将相关数据和方法放在一个包里。把类设计成一个黑箱,使用者只能看见类中定义的公共方法,而看不到方法实现的细节,也不能直接对类的数据进行操作,迫使用户通过接口去访问数据。好处:模块化、数据隐藏。4、封装封装(encapsulation):将相关数据和方法5、多态性多态性:一般类中定义的属性或方法被特殊类继承后,可以具有不同数据类型或表现出不同的行为。同一属性、方法在一般类及其各个特殊类中具有不同的语义。5、多态性多态性:一般类中定义的属性或方法被特殊类继承后,可2.2Java语言中类的定义类(Class):对一个特定类型对象的描述,定义了一种新类型,是对象的定义。属性:存储数据项的变量方法:对类进行的操作2.2Java语言中类的定义类(Class):对一个特定类银行账户:属性:户名
账户号
密码
账户余额方法:登记信息
输出信息抽象classCust{String
name;
int
ID;
String
PWD;
int
money;
void
initCust(StringnewName,intnewID,StringnewPWD,intnewMoney){name=newName;ID=newID;PWD=newPWD;money=newMoney;}void
printCust(){System.out.println("户名:"+name);System.out.println("账号:"+ID);System.out.println("账户余额:"+money);}}
建立具体的银行账户(对象)账户(Tom):户名——Tom账户号—100
密码——111111
余额——10000实例化——建立对象public
classCustDemo{public
static
void
main(String[]args) {
CustmyCust=newCust();
myCust.initCust("Tom",100,"11111",10000);myCust.printCust();}}银行账户:抽象classCust{建立具体的银行账户(对2.3常量和变量
2.3.1常量
常量:数据在程序运行过程中值不发生改变。常量用final声明,不占用内存。Java约定常量名称用大写字母。声明常量的格式:
final类型常量名=值;例如:finaldoublePI=3.1415;注意:常量只能在定义时赋值2.3常量和变量
2.3.1常量常量:数据在程序运行过2.3.1常量类常量:可以在一个类中的多个方法中使用使用关键字staticfinalpublic
classConstantsExample2{
publicstaticfinaldoubleM=2.54;
publicstaticvoidmain(stringargs[]){
doublewidth=8.5;
doubleheight=11; System.out.println(“papersizeincentimeters:”+width*M+”by”+height*M);
}}
2.3.1常量类常量:可以在一个类中的多个方法中使用p2.3.2变量变量:一个命名的内存块,用于存储Java程序中的信息。每个内存块只能存储一种类型的数据。声明变量的格式:类型
变量名[,变量名][=初值];
如:
inta,b=3;变量在使用前必须先定义,定义时可赋初始值。变量的值可以改变。变量名的命名遵循标识符命名规则,通常用小写字母或单词,不能与Java语言的关键字相同。在同一个作用范围内,不能有相同名字的两个变量。2.3.2变量变量:一个命名的内存块,用于存储Java程序变量的作用域变量都有特定的作用域。在类中声明的变量称为成员变量,通常在类开始处声明,可在整个类中使用。在方法中声明的变量称为局部变量。在该方法中起作用。变量的作用域变量都有特定的作用域。例:变量的作用范围publicclassTest{
static
inti=10;
//成员变量,在整个类范围内起作用publicstaticvoidmain(Stringargs[]){
intk=10;
//局部变量,只在方法内起作用System.out.println("i="+i);
System.out.println("k="+k);}
voidprintk(){
System.out.println("k="+k);
//编译时将出错,已超出k的使用范围
}}例:变量的作用范围publicclassTest{2.3.3标识符和关键字
1、标识符标识符命名的基本规则:由字母、数字、下划线、美元符号组成只能以字母、下划线或美元符号($)开头注意:标识符长度没有限制,区分大小写关键字不能作为用户标识符Java采用Unicode字符集,16位编码,可使用其他语言的字母作为标识符。如希腊字母、中文等以下哪些是合法的用户标识符命名:2teacher、studentName、Student_Nameroom#、abstract、_my_value、$address3a、int、mydate、@email2.3.3标识符和关键字
1、标识符标识符命名的基本规则:2.Java关键字Java定义了48个保留关键字:abstractdoimplementspackagesynchronizedbooleandoubleimportprivatethisbreakelseinstanceofprotectedthrow/throwsbyteextendsintpublictransientcasefalseinterfacereturntruecatchfinallongshorttrycharfinallynativestaticvoidclassfloatnewstrictfpvolatilecontinueformainsuperwhiledefaultifnullswitch2.Java关键字Java定义了48个保留关键字:abstr数据类型基本数据类型引用数据类型数值型字符型:char布尔型:boolean整型:byte,short,int,long实型:float,double类:class数组和字符串接口:interface2.4数据类型数据类型基本数据类型引用数据类型数值型字符型:char布尔型Java的基本数据类型数据类型名称位长缺省值取值范围布尔型boolean1falsetrue,false
(不能用0、1表示)字节型byte80–128~127字符型char16‘\u0000’‘\u0000’~’\uffff’短整型short160–32768~32767整型int320–2,147,483,648~2,147,483,647长整型long640–9,223,372,036,854,775,808~9,223,372,036,854,775,807浮点型float320.0-2-149~(2-2-23)·2127双精度型double640.0-2-1074~(2-2-52)·21023字符串类型:使用String关键字定义,用一对双引号括起来的字符序列。如:Stringname=“Jack”;Java的基本数据类型数据类型名称位长缺省值取值范围布尔型b练习:定义一常量PI并赋值为3.14定义一整型变量,并赋值为100定义一字符型变量,并赋值为a定义一个单精度型变量,并赋值为2.5定义一个字符串类型变量,并赋值为Java练习:定义一常量PI并赋值为各类型数据间的相互转换
1、自动类型转换整型、浮点型、字符型数据可以混合运算。在进行运算时,低级数据要先转换成同高级数据,进行自动类型转换。2.4.2各类型数据间的相互转换
1、自动类型转换整型、浮publicclassAutotypePromot{publicstaticvoidmain(Stringargs[]){
char
c='h';
byte
b=5;
inti=65;
long
a=465L;
float
f=5.65f;
double
d=3.234;
int
ii=c+i;//char类型变量c自动转换为int类型参加运算
long
aa=a-ii;//int类型变量ii自动转换为long类型参加运算
float
ff=b*f;//byte类型变量b自动转换为float类型参加运算
double
dd=ff/ii+d;
//int类型的变量ii自动转换为float类型
//ff/ii计算结果为float类型,然后再转换为double类型
System.out.println("ii="+ii);System.out.println("aa="+aa);System.out.println("ff="+ff);System.out.println("dd="+dd);}}publicclassAutotypePromot{2.不兼容强制类型转换强制类型转换:
(目标类型)值例:doubled=257.675;
inti=(int)d; byteb=(byte)i;注意:强制类型转换低→高:一般不会发生问题。高→低:很可能引起数据丢失或错误,但系统不会报告任何出错信息。//强制转换,舍去小数部分,i的值为257//强制转换,只保留低8位,b的值为12.不兼容强制类型转换强制类型转换://强制转换,舍去小数2.5运算符和表达式运算符,也称为操作符,用于对数据进行计算和处理,或改变特定对象的值。运算符按其操作数的个数来分,可分为一元运算符、二元运算符和三元运算符。表达式是运算符、常量和变量的组合。Java的表达式既可以单独组成语句,又可以出现于循环条件测试、变量说明、方法的调用参数等场合。2.5运算符和表达式运算符,也称为操作符,用于对数据进名称符号算术运算符+,-,*,/,%,++,--赋值运算符=扩展赋值运算符+=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=、>>>=关系运算符<,>,>=,<=,==,!=布尔逻辑运算符!,&&,||位运算符>>,<<,>>>,&,|,^,~条件运算符(?:)其他运算符分量运算符“·”,下标运算符“[]”,实例运算符“instanceof”,内存分配运算符“new”,强制类型转换运算符(类型),以及方法调用运算符“()”等2.5运算符和表达式名称符号算术运算符+,-,*,/,%,++,--赋值运算符=2.5.1算术运算和算术表达式算术运算符:一元运算:-(取负值)、+(取正值)、++、--二元运算:*、/、%、+、-Java中取模运算符”%”的操作数可以为浮点数。例子: inti,j,k; i=5;j=i++;k=++i; inta=9/4;
doubleb=9/4.0; intc=9%4; doubled=b%a;//执行后,i的值为7、j的值为5、k的值为7//执行后,a的值为2、b的值为2.25、c的值为1,d的值为算术运算和算术表达式算术运算符:例子://执行后2.5.4关系运算符和关系表达式关系运算符:>、<、>=、<=、==、!=关系运算的结果为布尔值,返回true或false。关系运算符常与逻辑运算符一起使用,作为流程控制语句的判断条件。例子:
inta=3,b=6; booleanx=a==b;
booleany=a<b;//执行后,x的值为false、y的值为true2.5.4关系运算符和关系表达式关系运算符:>、<、>=、2.5.5逻辑运算符和逻辑表达式逻辑运算符:!、&&、||、^、&、|逻辑运算的操作数只能是布尔类型。逻辑运算中,运算符^、&、|
分别表示异或、求与、求或逻辑运算。逻辑运算的结果为布尔值:true或false。例子:
3&&5
3<5&&5<6
3<5&5<6 3<5|5<6
3<5^5<6 //编译错误,逻辑运算的操作数只能是布尔类型//结果是true//与3<5&&5<6等价,结果是true//异或运算,结果是false//与3<5||5<6等价,结果是true2.5.5逻辑运算符和逻辑表达式逻辑运算符:!、&&、||2.5.5逻辑运算符和逻辑表达式关系运算符、逻辑运算符的优先级:!>、>=、<、<===、!=&^|&&||例子:
intx=3,y=6;booleanw=true; booleanz=x<0||x<y&&x>0;
booleanu=!w||x<0;
booleanv=!w&&y>0;
booleant=!w||y>x^y>0&x<0//z=true//u=false//w=false//t=true2.5.5逻辑运算符和逻辑表达式关系运算符、逻辑运算符的优2.5.6条件运算符和条件表达式条件运算符:?:,三元运算符。条件表达式的格式为:
表达式1
?
表达式2:表达式3表达式1应是关系表达式或逻辑表达式。先计算表达式1的值,若值为true,计算并返回表达式2的值,若值为false,计算并返回表达式3的值。例子:
inta=-3
,b;
b=a>0?-a:a;2.5.6条件运算符和条件表达式条件运算符:?:,三元运2.5.7位运算符和移位运算符位运算表示按每个二进制位(bit)进行计算。位运算、移位运算的操作数仅限于整数(char、short、int、long、byte),以二进制形式进行,运算结果为一个整数。位运算符:按位取反:~按位与:&按位或:|按位异或:^例:a=20,b=14
a:b:…00010100…00001110~a//结果为-21(1……11101011)a&b//结果为4(…00000100)a|b//结果为30(…00011110),a^b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度授权合同:品牌形象使用权授权协议
- 饼干食品原料创新研究报告
- 餐馆灭四害服务方案
- 石嘴山伸缩门安装合同范本
- 电子商务行业数字化转型
- 2024版安全防护系统设计与实施合同
- 2024年度标准二手房交易定金支付合同
- 二零二四年度光学仪器玻璃制造合同
- 仓储空间布局优化
- 石灰石膏污染防治
- 2024年云南省公务员录用考试《行测》真题及答案解析
- 2024-2030年中国粉末冶金制造行业“十四五”发展动态与发展方向建议报告
- 17 难忘的泼水节(第一课时)公开课一等奖创新教学设计
- 幼儿园办园行为督导评估指标体系表
- (高清版)DB43∕T 2628-2023 埋地排水用UHMW一P∕TE方型增强排水管技术规范
- 2024-2030年中国吡蚜酮行业现状发展分析及投资潜力研究报告
- 商业建筑光伏发电系统施工方案
- 广东省深圳市2023-2024学年高一上学期语文期末考试试卷(含答案)
- 一年级数学20以内加减法口算混合练习题
- 河北省保定市定州市2024-2025学年九年级上学期期中考试化学试卷
- 【工程法规】王欣 冲刺串讲班课件 11-第5章-知识点1-合同的订立-知识点2-合同的效力
评论
0/150
提交评论