Java课程讲义(No.3)lk.ppt
Java面向对象程序设计,主讲教师:刘开南中华女子学院计算机系,第二讲 Java语言基础,2,中华女子学院计算机系,与C不同之处:Java是强类型语言,类型限制比C严格,运算 符的操作对象的类型会受到更多限制。Java不提供指针运算符,增加了对象操作符instanceof,字符串运算符“+”和零填充的右移等。,知识点:Java运算符与表达式 程序控制与数组,标识符与数据类型,基本语法语句与语句块:;作用。可跨行(特列字符串与变量名)空格例子 String a=“dddd cccccc”错误,3,中华女子学院计算机系,标识符,1.只能以字母,下划线(_)或美元符($)开头,数字不能作为开头2.不能包含美元符($)以外的特殊符号3.不能包含空格4.可以是中文字符或日文字符,4,中华女子学院计算机系,Java关键字,P38表3-1,5,中华女子学院计算机系,访问控制:private 私有的protected 受保护的public 公共的类、方法和变量修饰符abstract 声明抽象class 类extends 扩允,继承final 终极,不可改变的implements 实现interface 接口native 本地new 新,创建static 静态strictfp 严格,精准synchronized 线程,同步transient 短暂volatile 易失,6,中华女子学院计算机系,程序控制语句break 跳出循环continue 继续return 返回do 运行while 循环if 如果else 反之for 循环instanceof 实例switch 开关case 返回开关里的结果default 默认错误处理catch 处理异常finally 有没有异常都执行throw 抛出一个异常对象throws 一个异常可能被抛出try 捕获异常,包相关import 引入package 包基本类型boolean 布尔型byte 字节型char 字符型double 双精度,float 浮点int 整型long 长整型short 短整型null 空true 真false 假变量引用super 父类,超类this 本类void 无返回值,数据类型,数据类型:一类相关的数值类型的名称,比如:int 在Java 中表示整数基本类型:int、double、char、boolean,7,中华女子学院计算机系,例题,Boolean型:TestBooleanChar型:TestCharFloat型:TestFloat,8,中华女子学院计算机系,自动提升与自动转换,两个类型是兼容的或者目标类型比原型范围大 char-intlong-float-doubleByteshort-例如:BasicTypeChange 提高开发效率自动转换:BasicAutoChange、AutoConversion,9,中华女子学院计算机系,强制转换,会出现信息丢失NarrowConversionBasicForceChange,10,中华女子学院计算机系,书中例题,基本数据类型赋值与声明Assign基本数据类型的一些常量SomeConstTest,11,中华女子学院计算机系,复合数据类型,自定义:定义类来封装变量,满足多种需求 class MyDate int day;int month;int year;应用时进行引用 new创建引用空间MyDate a,b;a=new MyDate();b=a;,12,中华女子学院计算机系,变量范围,范围大小与覆盖问题:成员 局部 例 Val赋值问题:成员变量自动初始化,局部变量必须先赋值初始化 TestInit,13,中华女子学院计算机系,14,中华女子学院计算机系,Java运算符,15,算术运算符,二元算术(双目)运算符+,/,%(取余,可为浮点数);+号:可连接字符串“He”+“llo”为“Hello”整型、浮点进行混合运算时,不同类型的数据首先转换为同一类型,然后进行运算。,16,中华女子学院计算机系,算术运算符,一元算术运算符(自运算符)j+j-+j-j运算符的位置决定了自运算的顺序(在表达式运算之前或在表达式运算之后)。a=3;b=5;c=(a+)*b;a=3;b=5;c=(+a)*b;例题:OperatorSign TestUnary,a=4 c=15,a=4 c=20,17,上海财经大学 信息管理与工程学院,关系运算符和逻辑运算符,关系运算符:例:RelationTest对两个操作数大小关系的比较,结果是布尔量,=,=,!=,=(与=不同)逻辑运算符 例:LSign表示两个布尔量的逻辑关系,结果仍为布尔量双目:(与、或)不短路(非简洁)运算符:&,|短路(简洁)运算符:&,|单目:!(否),18,位运算符 例如:,一般运算是把运算对象作为一个整体处理,而位运算是把整型数运算对象拆开,以位(bit)作为运算对象位运算符的操作数只能是整型或字符型。不同长度的数据进行位运算,首先要转换为同一长度当两个长度不同的数据进行位运算时(例如long型数据与int型数据),将两个运算分量的右端对齐进行位运算。如果短的数为正数,高位用0补满;如果短的数为负数,高位用1补满。如果短的为无符号整数,则高位总是用0补满。,19,中华女子学院计算机系,位运算符,位逻辑运算符:,&,|,(与逻辑运算符的区分取决于操作数的类型,体现了多态性)移位运算符 带符号右移:左侧空出位全用符号位填充 不带符号右移:左侧空出位用0填充,其具体实现要取决于不同的系统对符号表达的规定)x 二进制表示 x 2 x 230000111100111100000000111 00000111-17111011111011110011111011 00111011,20,中华女子学院计算机系,位运算符移位,1281 128/21=64(相当于除2取商)2564 256/24=16-2564-256/24=-16128 1 128*21=256(相当于乘2)16 2 16*22=64(比乘、除法实现速度快),21,三目条件运算符 例题:ComputeMin,三目条件运算符(?:)D=表达式A?表达式B:表达式CA为真,返回表达式BA为假,返回表达式C总是返回B,C中的长类型例:int x=5,y=8;long z=2L;long k=x3?y:z;/k=8L,22,运算符,扩展赋值运算符二元运算符=,a=b即a=ab(为+,-,*,/,%)a+=b a=a+b;运算符的优先级一般原则:算术运算符关系运算符逻辑运算符括号最优先,23,中华女子学院计算机系,运算符的优先级表,24,中华女子学院计算机系,表达式语句,表达式是变量、常量及运算符的组合。表达式既可单独组成语句,也可出现在条件测试、变量说明、方法调用的参数等场合,25,中华女子学院计算机系,public class RelationAndConditionTest3 public static void main(String args)int x=3;int y=6;boolean w=true;boolean z=x0;boolean u=!w|x0;System.out.println(z=+z);System.out.println(u=+u);System.out.println(v=+v);,表达式例:运算符的优先级,z=trueu=falsev=false,26,中华女子学院计算机系,表达式例:运算符的优先级,boolean z=x0;/boolean u=!w|x0;/,boolean z=x0;/!优先级高于&。!w计算结果为false,&运算短路。/false,27,中华女子学院计算机系,QUESTIONS&ANSWER,Thanks!,