已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 语言基础,程序结构 语句规则 语言基本元素,教材第3章,package import - class 类名1 属性定义 方法名1() - 方法名2() - class 类名2 - ,程序结构,一个程序可包括若干个类 各类之间存在并列、继承和包含关系。 这些类通常是在一起协同工作的。例如一个类的方法中需要创建其他类的对象,并操作这个对象。 编程只能在方法中。 编译后每个类产生一个 .class 文件,程序结构示例,import java.util.* ; public class Test /类“Test”(主类) public static void main(String args) Cal cal = new Cal(9,3) ; System.out.println(“ 9+3 = “ + cal.add(); System.out.println(“ 9-3 = “ + cal.sub(); System.out.println(“ 9*3 = “ + cal.mul(); System.out.println(“ 9/3 = “ + cal.div(); ,3-1,程序结构示例,class Cal /类定义 int x,y ; Cal(int a, int b) /构造函数 x=a ; y=b ; int add() /方法1 return x+y; ,int sub() /方法2 return x-y; int mul() /方法3 return x*y; int div() /方法4 return x/y; ,运行示例程序,java的名字空间和包,作为一种在整个Internet上动态装载模块的语言,Java特别注意避免名字空间的冲突。 所有的方法和属性都在类中定义,是类的组成部分。 每个类又是包的组成部分。 全限定名 : 包名 . 类名 . 方法名 inport 打开一个包后 ,可直接指定该包中的类名。 在本类中,可以直接使用方法名及属性名。,包的概述,一个包是一组相关类的集合。 类库由若干包组成。 java.lang 语言核心类(String Integer Math) java.awt 图形用户界面 java.applet applet小程序 java.io 文件与输入输出 网络编程 java.util 实用程序类(随机数、日期、系统属性) Java API 文档 class library - package,语句规则,语句种类 说明语句 如属性说明、变量说明等 表达式语句 控制语句 (条件、循环、转移) 异常处理语句 块语句(代码块,一组语句用花括号括起来) 注释 / - - 只限于行内 /* - - - */ 一段注释文本 基本语句用分号结束 代码元素间可以插入任意空格、tab和换行符。,Java 标识符,类名(接口名) 名词 第一字母大写,每一单词首字母大写。 例:AccountBook 方法名 动词 第一字母小写,每一单词首字母大写。 例:balanceAccount() 变量名 名词 第一字母小写,每一单词首字母大写。 常量名 全部大写,单词间用下划线分开 . 例:HEAD_COUNT Java标识符要区分大小写 标识符中的合法字符:字母、数字、_ 、$ (非数字开头),数据类型与说明语句,Java程序中所处理的数据是将各种数据类型实例化后的数据。 数据类型实例化的方法:说明语句 实例化数据的两种形式:变量与常量,数据类型与说明语句,基本数据类型说明语句例: (同时给变量赋初值) boolean b = true; short si = 128; int I,j,k = -99; long l = 123456789; char ch = J; char chc = 中 ; float f = 3.1415926; double d = -1.04E-5; Java几乎是将字符串视为基本数据类型 String s = “你好!“ ;,常数表示法(字面值),布尔常数 true false 整型常数 一般常量:32bit 长整型常量:64bit (88L) 十进制数:非0开头的正负整数 105,-23 八进制数: 0开头的正负整数 017(15), -023(-19) 十六进制:0x开头的正负整数 0x2F(47),-0xa8(-168) 浮点常数 一般浮点常量(32bit) 3.14F 6.18E3F 双精度浮点数(64bit ) 7.56D 6.02E23 (D可省),数据类型转换,同种数据类型转换: 短类型 长类型:默认(系统自动转换) 长类型 短类型:强制 不同数据类型转换字符/数值:强制 例:int a ; long b ; char c; b = a ; /自动转换 a = ( int ) b ; /强制类型转换 c= (char) a ; a=(int) c /强制类型转换 布尔型与其他数据类型之间不能强制类型转换,byte short int long float double,数据类型转换,import java.io.*; public class Test public static void main(String args) int i=65; char c=a, cc=王; System.out.println(i); 65 System.out.println(char)i); A System.out.println(c); a System.out.println(int)c); 97 System.out.println(cc); 王 System.out.println(int)cc); 29579 System.out.println(char)35328); 言 ,3-2,Wrapper类面向对象语言特点,基本数据类型,Wrapper 类,boolean,Character,char,Boolean,Byte,byte,Short,short,Integer,int,Long,long,Float,float,Double,double,Wrapper类例Integer,属性 static int MAX_VALUE 返回int型数据的最大值 static int MIN_VALUE 返回int型数据的最小值 构造方法 Integer(int value) Integer(String s) 方法 int intValue() double doubleValue() String toString() static String toString(int i) static Int parseInt(String s) static Integer valueOf(String s),静态方法,类型转换利用类/对象方法,利用类方法(静态方法) Integer.parseInt(“23“) /返回整数23 Integer.toString(23) /返回字符串“23“ Double.parseDouble(“12.3“) Double.toString(12.3) 利用对象方法 Double d ; String s; d=new Double(12.3) ; /构造方法 s= d.toString(); Double.valueOf(“12.3“).doubleValue() ; /返回.,Integer 例面向对象的方法,public class Test public static void main(String args) Integer i=new Integer(256); Integer j=new Integer(“256“); System.out.println(Value()*2); System.out.println(i.doubleValue(); System.out.println(“i= “+ i.toString(); System.out.println(i=j); System.out.println(pareTo(j);,3-3,Integer 例(续),System.out.println(Integer.parseInt(“100“) * 2); System.out.println(“100*2= “ + Integer.toString(100*2); int k ; k=Integer.valueOf(“1010“,2).intValue(); System.out.println(k); System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); ,引用类型类,定义类(新的数据类型) class MyDate int day ; int month ; int year ; 基本数据类型直接分配内存空间 int I,j,k ; 引用类型 ? MyDate d1 ; d1 = new MyDate() ;,引用类型类,MyDate d1 = new MyDate() ;,d1.day = 8 ; d1.month = 8; d1.year = 2008 ;,在Java中,数组是独立的类,有自身的方法,不是变量的集合。 一个数组是数组类的一个对象。 数组定义 (一维) int intArray1 类型 数组名 分配空间 intArray1 = new int 5 ; 分配空间兼赋初值 int intArray1 = 11, 47, 93, 26, 38 ,引用类型数组,引用类型数组,二维数组定义 int intArray = new int 34 ; 定义对象数组(数组中可存储对象) Integer b = new Integer5; for(int i = 0; i b.length; i+) bi = new Integer(i *10); 对象数组定义兼初始化 例:String names=“wang“,“zhang“,“Li zhi“;,数组例,public class Test public static void main(String args) int m1 , m2 ; int a = new int34; /定义二维数组 for(int i=0 ; i3 ; i+) /数组下标从0开始 for(int j=0 ; j4 ; j+) aij = i*j ; for(int i=0 ; ia.length ; i+) for(int j=0 ; jai.length ; j+) System.out.print(aij + “ “); System.out.println(“); ,3-4,数组类,数组使用之前要确定大小,可以在程序中根据需要指定其大小(如用表达式计算出大小)。 一旦生成数组,大小不可改变。java不支持变长数组。 数组的属性length 表示数组的上限 java数组作为一种对象类型,可以作为方法的参数,传的是指向数组的引用。 ArrayIndexOutOfBoundsException 例外 例外的概念见后面介绍,引用类型字符串类,字符串类代表字符串。每个字符串变量存放字符串类的一个对象;每个字符串常量是该类的一个实例。 构造函数 String s = new(); String s = new(“abc“); 常用方式 String s = “abc“; 系统自动为该字符串常量创建一个String类的实例,引用类型与基本类型对照,int x=123; int y=x ; String s1=“abc“ ; String s2 = s1 ;,123,123,0x01234567,null,x y s1 s2,“abc“,引用类型字符串,String s1 = new String(“abc“) ; String s2 = new String(“abc“) ;,0x01234567,0x12345678,s1 s2,“abc“,“abc“,s1 = s2 false s1.equals(s2) true,引用类型字符串,String s1 = “abc“ ; s1=s1 + “def “ ;,XXXXX,“abc“,s1,3-5,字符串类-String的方法,int length() / 返回字符串长度 例:“Java与面向对象程序设计”.length() 的值为13 char charAt(int index) /返回指定位置的字符 例: “Java与面向对象程序设计“.charAt(2) 的值为v int compareTo(String s2) /字符串比较 int compareToIgnoreCase(String s2)/忽略大小写 boolean equals(Object obj) /判断字符串相等 String toLowerCase() /将字符串转换为小写 (返回新串,不改变原字符串) String toUpperCase() /将字符串转换为大写,字符串类-String的方法,String substring(int beginIndex) /取子串 String substring(int beginIndex, int endIndex) int indexOf(String s) /返回串s在当前串中位置 boolean startsWith(String prefix)判断该字符串是否以prefix为前缀。 boolean endsWith(String suffix) 判断该字符串是否以suffix为后缀。 char toCharArray() /将字符串转为字符数组,3-6,字符串类,Java的字符串连接运算符 + Object 的方法 toString() 实现其他对象向字符串的转换 main方法的参数 class Test public static void main(String args) int x = Integer.parseInt(args0); int y = Integer.parseInt(args1); System.out.println(“x+y=“ + (x+y) ); ,字符串类StringBuffer,String类对象是不可变的字符串 StringBuffer类对象是可变的字符串,有改变字符串的若干方法。 StringBuffer类构造函数 StringBuffer() StringBuffer(int length) /设置初始容量 StringBuffer(String s) /设置初始值 StringBuffer类方法 String toString() /转换为String类型的字符串 void setCharAt(int index , char c) /修改字符,表达式语句,表达式是变量、常量及运算符的组合。 表达式既可单独组成语句,也可出现在条件测试、变量说明、方法调用的参数等场合。 在表达式构件中,运算符起到关键作用。 运算符(实现操作)运算元(操作对象) 二元运算符、一元运算符、三元运算符 表达式的结果是一个右值,即不能出现在赋值运算的左边。结果类型由参与运算的数据类型确定。 赋值是一种运算符,为编程带来灵活性(如对循环变量进行初始化)。,Java运算符,一般运算是把运算对象作为一个整体处理,而位运算是把整型数运算对象拆开,以位(bit)作为运算对象,几个特殊的运算符,自运算符+ - j+ j- +j -j 运算符的位置决定了自运算的顺序(在表达式运算之前或在表达式运算之后。 例:a=3 b=5 c=(a+)*b 结果: a=4 c=15 例:a=3 b=5 c=(+a)*b 结果: a=4 c=20 三目条件运算符(?:) D=表达式A ?表达式B :表达式C A为真,返回表达式B A为假,返回表达式C 例: int x=5, y=8; z=2;k k=x3?y:z; 结果:k=8,条件语句基本形式,import java.io.*; class Test public static void main(String args) int ch; try System.out.print(“请输入一个字符:“); ch = (char)System.in.read( ); / 从键盘输入一个字符 if (ch=0 catch(IOException e) ,if ( 条件表达式 ) 语句块1; else 语句块2;,3-7,if (条件1) 语句块1; else if (条件2) 语句块2; else if (条件3) 语句块3; else 语句块n;,条件语句多分支,if (score=85 ,switch 语句,switch(表达式) case 值1:语句块 1 ; case 值2:语句块2 ; default:语句块n; switch 的常量和表达式可以是整型、字符型及byte型 任何两个case常量值不可以有相同的值。 只能对等式进行测试(即表达式的值是否等于值1、值2.,根据表达式取值的不同转向不同的分支。 每个case分支中的语句块无须用花括号括起来。 每个case分支都只是入口点 可在case语句块中加入break 语句,可立即转出switch语句(不再走后面case流程)。,switch 语句,switch 语句例,import java.io.*; class Test public static void main(String args) char ch ; try System.out.print(“请输入成绩(字符):“); ch = (char)System.in.read() ; / 从键盘输入一个字符 switch (ch) / switch分支 case A : System.out.println(“85100“); break ; case B : System.out.println(“6084“); break ; case C : System.out.println(“059“); break ; default : System.out.println(“输入有误“); catch(IOException e) ,3-8,Java的循环语句:while,while(表达式) 循环体 ,while循环例,求两个正整数的最小公倍数 public class Test public static void main(String args) int result ; int m = Integer.parseInt(args0); int n = Integer.parseInt(args1); if (m0 ,3-9,Java的循环语句:do-while,do 循环体 while(表达式),do-while 循环例,import java.io.*; public class Test public static void main(String args) char ch; try System.out.println(“请输入一个字符,以#结束“); do ch = (char)System.in.read( ); System.out.println(“字符“+ch+“的ASCII码为“+(int)ch); System.in.skip(2); /跳过回车换行键 while(ch!=#); catch(IOException e) System.err.println(e.toString( ); ,3-10,Java的循环语句3,f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿山买卖协议书范本
- 社交网络转让协议书
- 石英砂加工合同范本
- 奥地利的文化介绍
- 公共营养师培训
- 小学语文朗读训练
- 2025-2026学年高一上学期期中真题综合测试河北地理试卷A
- 2025-2026学年安徽省江淮名校高一上学期10月阶段联考地理试题(A卷)(解析版)
- 2025-2026学年广西壮族自治区部分学校高二上学期开学质量检测历史试题
- 骨科营养风险筛查
- 2.25 二元一次方程组应用题50题-中考真题专练 浙教版数学七年级下册基础知识讲与练巩固篇(含答案)
- 《国际中文教育概论》课件 第八章“中文+”背景下的专门用途汉语教学
- 中国科学技术大学2011年有机化学(含部分答案)考研真题
- 钨酸钠复合添加剂深镀粗化电解铜箔表面处理工艺研究
- 导管相关感染护理课件
- Yakka Dee S1-S5单词表第一季到第五季可直接打印
- 打叶复烤工艺流程简图课件
- 内镜中心减少患者内镜诊疗等候时间品管圈PDCA汇报
- 某电厂土建部分监理质量评估报告
- 全国行政区域身份证代码表(EXCEL版)
- (2023)《中华人民共和国公务员法》试题及答案
评论
0/150
提交评论