




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 程序设计,课时:2学时主讲:王 刚联系方式:wgang_,第章标识符、关键字和数据类型,Java语言的基本数据类型标识符、关键字、分隔符、变量、常量Java的基本输入输出运算符与表达式流程控制语句Java的数组,Java程序的基本类型,数据类型决定了参与操作的变量、常量和表达式的取值类别、取值范围以及能够实施的操作行为。Java语言属于强类型语言,即对于程序中出现的所有变量和表达式,在编译的时候就要求有明确的数据类型,这样才可以由编译程序在编译期间对所有的操作进行数据类型相容性的检查。,Java的基本数据类型,布尔类型:boolean字符类型:char整数类型:byte、short、int、long浮点类型:float、double,boolean,只有“true”和“false”两个取值,分别代表“真”和“假”。特点:不能够与任何其他类型进行相互的类型转换操作。,char,Java语言规定,字符采用Unicode编码,每个字符占用两个字节。ASCII字符集是Unicode字符集的一个子集,并且在这两个字符集中,前128个编码所对应的字符完全相同,只是每个字符占用的二进制位数不同。,byte、short、int、long,上面4种数据类型都属于整型数值类型。byte 1个字节short 2个字节int 4个字节long 8个字节,float、double,float 单精度 32位double 双精度 64位Java语言中的浮点数值表示遵循IEEE754标准。它不仅包括正零、负零、正无穷大、负无穷大和一个特别的值NaN。,标识符、关键字、分隔符、常量、变量,【标识符】 Java 的标识符由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为 0 到 9。标识符的第一个字符必须为字母、(_)或($)符号。标识符区分大小写。,myVariable 9pinsMYVARIABLE i a+ctesting1-2-3,_myvariablejava¨My Variable$myvariable _9pins Its猫,标识符用来命名变量、符号常量、数组、方法、类、对象、接口、包等。为了提高程序的可读性,标识符最好“见名知义”,而且规范大小写的使用方式。,【关键字】,又称保留字,是 Java 语言规定了特定含义的标识符。用户只能按照系统规定的方式使用,不能自行定义。关键字一律用小写字母表示。Java 中的关键字有 50 个,按用途划分为:数据类型、语句、修饰、方法、类、接口、包,并保留了const和 goto。,【分隔符】,分隔符被用来区分 Java 源程序中的基本成分(标识符、关键字、运算符和常量),分隔符分为注释、空白符和普通分隔符三种类别。,注释是为源程序增加必要的解释说明的内容,其目的是提高程序的可读性,书写注释是编写程序的良好习惯。Java中有三种形式的注释: /* 注释部分 */ /* 注释部分 */ / 注释部分,第二种分隔符是空白符,包括空格、回车符、换行符和制表符(Tab键)等。各种 Java 基本成分之间的多个空白符与一个空白符的作用相同。,第三种是普通分隔符,具有确定的语法含义,必须按照特定的语法规定使用。它包括四种分隔符: 大括号,用来定义类体、方法体、复合语句或对数组进行初始化。 ;分号,是语句结束的标志。 ,逗号,分隔方法的参数或声明的变量序列。 :冒号,用于分隔语句标号。,【常量】,整型常量:十、八、十六进制实型常量:double、float字符常量:单引号括起来布尔常量:true 和 false字符串常量:双引号括起来,【变量】,在 Java 语言中,所有的变量必须先定义后使用。其格式为:数据类型 标识符1=初值,标识符2.;如果是基本数据类型,变量在声明时就为其分配内存空间;否则,还需要用 new 为声明的变量分配空间。,变量的作用域,在某个方法体中或参数表中声明的变量只能在该方法体中使用;在某个语句块中声明的变量,只能在该语句块中使用。在类中声明的成员变量需要根据访问修饰符确定可访问者。,Java程序的基本输入输出,Applet 应用程序的输入输出输入:利用图形用户界面的组件接收用户信息输出:以图形或图像的形式输出结果Application应用程序的输入输出字符界面:利用 System.in.read 输入, System.out.print 和 System.out.println 输出图形用户界面:通过可视化组件来进行输入输出,import java.io.*;public class SimpleCharInOut public static void main(String args) char ch= ; System.out.print(“Enter a character please: ”); try ch=(char)System.in.read( ); catch(IOException e) ; System.out.println(“Youve entered character ”+ch); ,字符界面的输入输出,import java.io.*;public class ApplicationLineInOutpublic static void main(String args) String string=; System.out.print(please enter a string:); try BufferedReader in= new BufferedReader(new InputStreamReader(System.in); string=in.readLine( ); catch(IOException e) System.out.println(Youve entered string: +string); ,import java.io.*;public class GetNumberpublic static void main(String args) int integer=0; String digit; try System.out.print(请输入一个整型数值:); BufferedReader br= new BufferedReader(new InputStreamReader(System.in); digit=br.readLine( ); integer=Integer.parseInt(digit); catch(IOException e) System.out.println(“你输入的整型数值为: +integer );,import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class GUIDemo extends Applet implements ActionListenerButton redButton; /按钮“红色”Button greenButton; /按钮“绿色”Label label; /标签public void init() label=new Label(程序开始运行,目前还没有点击任何按钮);redButton=new Button(红色); /创建“红色”按钮 greenButton=new Button(绿色); /创建“绿色”按钮 redButton.addActionListener(this); /注册监听器 greenButton.addActionListener(this); /注册监听器 add(label); /将标签label添加到容器中 add(RedButton); /将按钮redButton添加到容器中 add(GreenButton); /将按钮greenButton添加到容器中 ,图形用户界面的输入输出,/点击按钮时自动调用public void actionPerformed(ActionEvent e) if (e.getSource()=RedButton) label.setText(你点击了红色按钮); else if (e.getSource()=GreenButton) label.setText(你点击了绿色按钮); ,运算符与表达式,算术运算:+、-、*、/、%、+、-逻辑运算:&、|、!、&、|关系运算:=、!=、=、其他运算:?:、赋值运算符、( )、 、new检测某个对象是否属于某个类 instanceof(对象),赋值操作中的类型转换,Java是强类型语言,因此,在进行赋值操作时要检查类型;当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换;当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显式地强制进行类型转换。,基本数据类型的转换,当我们把一种基本数据类型变量的值赋给另一种基本类型变量时,就涉及到数据转换。基本类型数据的下列类型会涉及到数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“底”到“高”排列了顺序。 byte short int long float double 当把在级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如,float x=100; 如果输出x的值,结果将是100.0 例如, int x=50; float y; y=x; 如果输出y的值,结果将是50.0。 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。显示转换的格式: (类型名)要转换的值; 例如: int x=(int)23.89; long y=(long)34.98F; 如果输出x,y的值将是23和34,强制转换运算可能导致精度的损失。,例子,public class Example2_2 public static void main (String args ) int c=2200; long d=8000; float f; double g=123456789.123456789; c=(int)d; f=(float)g; /导致精度的损失. System.out.print(c= +c); System.out.println( d= +d); System.out.println(f= +f); System.out.println(g= +g); , final 变量,在 Java 中,可以利用关键字final 将一个变量定义为常量标识符。 final double PI=3.1415926;变量 PI 的值在作用域范围内只能被引用,不能被修改。,package java.lang;import java.util.Random;public final class Math private Math( ) public static final double E = 2.7182818284590452354; public static final double PI = 3.14159265358979323846; public static native double sin(double a); public static native double cos(double a); public static native double tan(double a); public static native double asin(double a); public static native double acos(double a); public static native double atan(double a); public static native double exp(double a); public static native double log(double a); public static native double sqrt(double a); public static native double IEEEremainder(double f1, double f2); public static native double ceil(double a); public static native double floor(double a); public static native double rint(double a);,Math类( import java.lang),public static native double atan2(double a, double b); public static native double pow(double a, double b); public static int round(float a) public static long round(double a) private static Random randomNumberGenerator; public static double random( ) public static int abs(int a) public static long abs(long a) public static float abs(float a) public static double abs(double a) public static int max(int a, int b) public static long max(long a, long b) public static float max(float a, float b) public static double max(double a, double b) public static int min(int a, int b) public static long min(long a, long b) public static float min(float a, float b) public static double min(double a, double b) ,流程控制语句,表达式语句:表达式后加一个分号a+=a*6; a+; a+3;复合语句:包含在括号中的语句序列流程控制语句:顺序结构、分支结构和循环结构,分支语句:if.else、switch循环语句:while、do.while、for转移语句:break、continue、label返回语句:return,分支结构,if (布尔表达式) 语句1; else 语句2; switch (表达式) case 常量1:语句块1; . case 常量n:语句块n; default:语句块n+1; ,循环结构while ,格式: while (循环条件) 循环体含义:循环条件为一个布尔表达式,其值为true时,重复执行循环体。,循环结构 do ,格式:do 循环体 while (循环条件);含义:重复执行循环体,直到循环条件为false。,循环结构for,格式:for (表达式1;表达式2;表达式3) 循环体;表达式1:循环初值表达式2:布尔型表达式,循环条件表达式3:循环增量表达式,控制转移语句,break语句:使程序的流程从一个语句块内部转移出去。通常在switch和循环语句中使用。continue语句:只能在循环语句中使用。其作用是终止当前这一轮的循环,直接进入下一轮的循环。,Java的数组,数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从0开始排序。声明数组仅仅是给出了数组名字和元素的数据类型,要想真正的使用数组还必须为它分配内存空间,即创建数组。在为数组分配内存空间时必须指明数组的长度。为一维数组分配内存空间的格式如下:数组名字 = new 数组元素的类型数组元素的个数;,数组,按照元素的组成分类,数组属于复合数据类型,它是由类型相同的元素组成的有顺序的数据集合。特点: 元素类型相同; 元素有顺序; 所有元素共用一个名称。,栈内存和堆内存,插入一节知识:栈内存和堆内存Java语言将内存类型分为两种:栈内存和堆内存。,在方法中定义的一些基本类型的变量和对象的引用变量都在方法的栈内存中分配,当在一段代码块中定义一个变量时,Java就在栈内存中为这个变量分配内存空间,当超出变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。,堆内存用来存放由new运算符创建的对象和数组,在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中创建了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象的在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,引用变量实际上保存的是数组或对象在内存中的地址(也称为对象的句柄),以后就可以在程序中使用栈的引用变量来访问堆中的数组或对象。引用变量就相当于是为数组或对象起的一个名称。,Java语言中的数组声明,格式:数组元素类型 数组名 ; 数组元素类型 数组名;举例: int array_int ; double array_double ; String str; Point P;注意:按照变量的存储方式上分类,Java语言中的数组属于引用类型,因此在声明数组引用时不能给出长度。,例子,public class Example2_5 public static void main(String args) int a=100,200,300; int b=10,11,12,13,14,15,16; b=a; b0=123456; System.out.println(数组a:+a0+,+a1+,+a2); System.out.println(数组b:+b0+,+b1+,+b2); System.out.println(数组b的长度:+b.length); ,数组的创建,声明数组引用后,需要利用new运算来为数组型变量定义长度且分配内存空间,我们将其称之为创建数组。 array_int=new int10;array_double=new double1000;int String str=new String10;Java规定,数组创建后系统自动地为数组中的每个元素赋予初值。,数组初值,数组元素的默认初值:整型:0实型:0.0f 或 0.0d字符:0类对象:nullint array_int =1,2,3,4,5,6,7;String str=“C+”, “QBasic”, “Pascal”;,在Java语言中,long类型的最大值为9223372036854775807,要想编写一个程序能够将任意给定的一个long值转换成二进制,可以借助于一维数组将转换后的每一位二进制数值保存起来。,public class DecimaltoBinary public static void main(String args)byte binary; /声明数组long data;for (int d=1;d); binary=toBinary(data); printBinary(binary); ,public static byte toBinary(long data) byte b=new byte64;for (int i=63;data!=0;i-) bi=(byte)(data%2); data=data/2;return b;,public static void printBinary(byte b) int i=0;while (ia1) Max=a0; / Max存放最大值 Sec=a1; / Sec存放次最大值 else Max=a1; Sec=a0; ,58,System.out.print(“数组的各元素为:”+a0+” “+a1); for(i=2;iMax) /判断最大值 Sec=Max; /原最大值降为次最大值 Max=ai; /ai为新的最大值 else /即ai不是新的最大值,但若ai大于次最大值 if (aiSec) Sec=ai; /ai为新的次最大值 System.out.print(“n其中的最大值是:”+Max); System.out.println(“ 次最大值是:”+Sec); ,59,该程序运行结果为:数组的各元素为:8 50 20 7 81 55 76 93其中的最大值是:93 次最大值是:81,二维数组,二维数组是由一维数组的每个元素又是一维数组的引用构成的在 Java中,每个一维数组元素引用的一维数组所含的元素数目可以不同,即:Java的多维数组不一定是规则的矩阵形式,如图所示。,62,如:int x; x=new int3;这两句代码表示数组x有三个元素,每个元素都是int类型的一维数组。相当于定义了三个数组引用变量,分别是int x0,int x1和int x2,完全可以把x0当作一个普通的变量名。另外int x0,int x1这两个数组引用变量只是书写方式不同而已,其作用是一样的,目的就是帮助读者把x1当成一个普通变量名来理解。,63,由于x0、x1和x2都是数组引用变量,必须对它们赋值,指向真正的数组对象,才可以引用这些数组中的元素。x0=new int 3;x1=new int2;由此可以看出,x0和x1的长度可以是不一样的,数组对象中也可以只有一个元素。程序运行到这之后的内存分配情况如图所示。,64,65,如果想直接在声明二维数组时就给数组赋初值,可以利用花括号实现,只要在数组的声明格式后面再加上初值的赋值即可。其格式如下:数据类型 数组名=第1行初值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【语文】湖南省长沙县金鹰小学小学二年级上册期末试题(含答案)
- 数学六年级下册期末重点中学真题经典
- 高考物理带电粒子在复合场中的运动易错题二轮复习及答案
- 2025年地基与基础考试题及答案
- 2025年安全员之江苏省C2证土建安全员综合检测试卷含答案
- 2025年消防安全知识培训考试题库消防应急救援指挥应急处理试题及答案
- 2025年“世界知识产权日”线上知识竞赛题库(附答案)
- 水上钻探船钻探施工方案
- 2025年储冷、蓄热装置项目立项申请报告
- 热点营销-方案
- 《气候中和园区:工业园区的零碳转型指南》
- 2025年驾驶员安全培训考试试题库卷(答案+解析)
- 临床技术操作规范
- 无人机培训课件
- 2025辽宁沈阳副食集团所属企业招聘3人考试参考题库及答案解析
- 抗炎药物作用机制研究-洞察及研究
- 200米充电桩施工方案(3篇)
- 劳务人员入厂安全培训课件
- 2025版全新论坛讲座活动承接合同模板下载
- 药店冷链药品知识培训内容课件
- 2025年法考真题及答案
评论
0/150
提交评论