1 / 66

第 2 章 Java 语言基础

第 2 章 Java 语言基础. 数据类型 变量 运算符 表达式和语句 控制结构  字符串 数组. 2.1 数据类型. Java 定义了 4 类共 8 种基本类型,它们的分类及关键字如下: 整型 byte , short , int , long 浮点型 float , double 逻辑型 boolean 字符型 char. 字节型 (byte). 短整型 (short). 字符型 (char). 整数类型. 整型 (int). 长整型 (long). 数值类型. 基本数据类型. 单精度浮点型 (float).

kineks
Download Presentation

第 2 章 Java 语言基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章 Java 语言基础 数据类型 变量 运算符 表达式和语句 控制结构  字符串 数组

  2. 2.1 数据类型 • Java定义了4类共8种基本类型,它们的分类及关键字如下: • 整型 byte,short,int,long • 浮点型 float,double • 逻辑型 boolean • 字符型 char

  3. 字节型(byte) 短整型(short) 字符型(char) 整数类型 整型(int) 长整型(long) 数值类型 基本数据类型 单精度浮点型(float) 实数类型 双精度浮点型(double) 布尔类型(boolean) Java数据类型 空类型(null) 类(class) 复合数据类型 接口(interface) 数组 数据类型 Java 用类String , StringBuffer 表示字符串(C++用之符串数组)

  4. 2.1.1 整型 表3.1 Java语言的四种整型 • 29  int , byte,short • 201020L

  5. 2.1.2 浮点型 表3.2 Java的两种浮点型 • 2364.769 或 456.3D • 34564.01f float f=12345.08745f; System.out.println(f); 结果:12345.088

  6. 2.1.3.字符型 • Unicode编码 • 单引号 char c1;c1 = ‘b’;c1 = ‘中’;c1 = ‘\u0041’;

  7. int a=5 , b; b = a >4; if (b ) { a ++ ; }else { a -- ; } int a=5 boolean b; b = a >4; if (b ) { a ++ ; }else { a -- ; } • 2.1.4 逻辑型 • true / false • 注意:C: 0 /1

  8. 表3.3 Java的基本数据类型

  9. 表3.4 数值型常量的特殊值代码

  10. 简单数据类型的包装类 • 简单数据类型 包装类 • boolean Boolean • char Character • byte Byte • short Short • int Integer • long Long • float Float • double Double

  11. Integer.MIN_VALUE • Integer.MAX_VALUE • Float.MIN_VALUE … • Integer.parseInt( 参数 ) • Float.parseFloat( 参数) • .. int iData; iData = Integer.MAX_VALUE;

  12. 2.1.6 常量 • 1.整型常量 • 2.浮点型常量 • 单精度浮点常量(后跟一个字母f或F) • 双精度浮点常量(后跟一个字母d或D,可省略) • 逻辑型常量 • true——真 • false——假 • 字符型常量 • Unicode 16位 • A : 0x0041 (C: 0x41)

  13. 表3.6 常用的转义字符

  14. 5.字符串常量 • “JAVA你好” 共12个字节 • 单引号,双引号区别: “A” ‘A’ • 注意:字符串常量是使用双引号括起来的字符序列, • 最后字符不是‘\0’。 • 如: “abcdef“ • java or C 各占多少字节

  15. 练习: double d1; d1 = 3434.125f; f ? int d2; d2 = 0x1f; d2 = 012; ?? int a1=20; a1 占用多少字节? char c1; c1 = ‘\u0041’; int 3data ,_cnt; 3data = 3; ? _cnt = 4; char c2; c1 = ‘B’; c1 占用多少内存? int b1; b1 = 5>4 ; b1?

  16. 2.2 变量 使用变量的原则:先声明后使用。 变量的三个基本要素:名字、类型和值。

  17. 1.变量声明 格式: <类型><变量名>[=<初值>][,<变量名>[=<初值>]……] 例如: int i,j,k; 在声明变量的同时可以对变量进行初始化,即赋初值。例如, int i=0;

  18. 2.变量的赋值 • 格式: • 变量名=值 ; • 举例: • boolean b=true; //声明boolean型变量并赋值 • int x,y=8; //声明int型变量 • float f=2.718f; //声明float型变量并赋值 • double d=3.1415; //声明double型变量并赋值 • char c; //声明char型变量 • c=’\u0031’ ; //为char型变量赋值 • x=12; //为int型变量赋值

  19. 2.2.4 常量的声明 • 用关键字final标识,通常final写在最前面。 • <final><数据类型><常量标识符>=<常量值>; • 例如: • final int MAX=10; • final float PI=3.141593f; 注意 C: const int count = 1000;

  20. final int m=2; int d2=3; d2 = d2 + m; m=m+1; 1 float f=2.718 ; 2

  21. 2.1.5 数据类型转换 1. 数值型不同类型数据的转换 • (1)自动类型转换 • ①转换前的数据类型与转换后的类型兼容。 • ②转换后的数据类型的表示范围比转换前的类型大。 • 优先关系 • 低 高 byte、short、char int long float double

  22. public class autoTypePromot{ public static void main(String args[]){ int a = 10; float b = 3 ; b = a + 3.2 ; } } 23.65 默认为Double public class autoTypePromot{ public static void main(String args[]){ int a ; float b = 23.65 ; a = b ; } }

  23. 【例1】数据类型的自动转换。 //app3_1.java 类型自动转换 public class app3_1 { public static void main(String args[]) { int a=155; float b=21.0f; System.out.println(”a=”+a+”,b=”+b); //输出a,b的值 System.out.println(”a/b=”+(a/b)); //输出a/b的值 } } 输出结果为: a=155,b=21.0 a/b=7.3809524

  24. (2) 强制类型转换 格式: (欲转换的数据类型)变量名 一般不建议,因为可能丢失信息。 例如 double d=3.14159; int a; a = (int) d ;

  25. 改错: class lx24_1 { public static void main(String args[]) { float f1 = 10.51 ; } } 改错: class lx24_2 { public static void main(String args[]) { int i1 = 10 , i2; float f1 = 10.51f , f2; f2 = i1 ; i2 = f1; } }

  26. 【例2】整型与浮点数据类型的自动转换。 //app3_2.java 整数与浮点数的类型转换 public class app3_2 { public static void main(String args[]) { int a=155; int b=9; float g,h; System.out.println(”a=”+a+”,b=”+b); //输出a,b的值 g=a/b; //将a除以b的结果放在g中 System.out.println(”a/b=”+g+”\n”); //输出g的值 System.out.println(”a=”+a+”,b=”+b); //输出a,b的值 h=(float)a/b; //先将a强制转换成float类型后再参加运算 System.out.println(”a/b=”+h); //输出h的值 } }

  27. 程序执行结果如下: a=155,b=9 a/b=17.0 a=155,b=9 a/b=17.222221

  28. 3 隐含强制转换 • byte ,short • byte a =28 ; • short b = 120;

  29. 4. 字符串型数据与数值型数据相互转换 (1)字符串转换成数值型数据 表3.7 字符串转换成数值型数据的方法

  30. 例如: String MyNumber=“1234.567”; //定义字符串型变量 float MyFloat=Float.parseFloat( MyNumber ); (2)数值型数据转换成字符串 例如: int MyInt=1234; //定义整形变量MyInt String MyString="“ + MyInt; //将整型数据转换成了字符串 或:int data = 2011; string s1; s1 = Integer.toString( data ) ; s1 = String.valueOf( data);

  31. 补充: 输入、输出 • 一 输出:使用System.out 对象进行输出。 • System.out.Println( [参数]):输出文本并换行。 • System.out.Print(参数):输出文本不换行。 • 例: • int a =6; • System.out.pringln( “a=” + a ); • System.out.pringln( );

  32. 二 输入: • 1 使用System.in对象输入。 • int System.in.read() : 从键盘读入一个字符, • 返回ASCII码 • 需要异常处理: • try----catch 异常:IOException

  33. class ReadDemo { //读入一个字符 public static void main(String args[]) { char c1; c1 = (char) System.in.read(); System.out.println( c1); } } class ReadDemo { public static void main(String args[]) { char c1; try { c1 = (char) System.in.read(); } catch( IOException e){ System.out.println( “read error”); } System.out.println( c1); } }

  34. 2 读入其他类型的数据 • 1 读入字符串 • String s1; • InputStreamReader sr = • new InputStreamReader( System.in) ; • BufferedReader br = new BufferedReader (sr); • s1 = br.readLine(); • 异常处理 • 2 转换成其他类型 • int Integer.parseInt( String s ) ; //转换成整形 • float Float.parseFloat( String s) ; • double Double.parseDouble( String s) ; • String String.valueOf( 数值类型); //转换成字符串

  35. 读入字符串 import java.io.*; class hello1 { public static void main(String args[]) { String s1; try{ InputStreamReader sr = new InputStreamReader( System.in) ; BufferedReader br = new BufferedReader (sr); s1 = br.readLine(); System.out.println( s1); } catch(IOException e){ System.out.println( e.toString() ); } } }

  36. 例3.3】从键盘输入数据。 //app3_3.java 由键盘输入字符串 import java.io.*; //加载java.io类库里的所有类 public class app3_3 { public static void main(String args[]) throws IOException { BufferedReader buf; String str; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print(”请输入字符串;”); str=buf.readLine(); System.out.println(”您输入的字符串是:”+str); } }

  37. 练习: • 编写一个程序,输入两个整数,输出两数的和。 • 编写程序,输入园的半径,输出园的面积及周长。

  38. 2.3 运算符 • 算术运算符 +、-、*、/、%、++、-- • 关系运算符 >、<、>=、<=、==、!= • 逻辑运算符 !、&&、||、&、| • 位运算符 >>、<<、>>>、&、|、^、~ • 赋值运算符 =、及其扩展赋值运算符,如+=、/=等。 • 条件运算符 ? : • 其他运算符号 包括分量运算符.、下标运算符[ ]、实例运 • 算符instanceof、内存分配运算符new、强制类型转换运算 • 符(类型)、方法调用运算符()等。

  39. 2.3.1算术运算符 1.二元算术运算符 二元算术运算符

  40. 2.一元算术运算符 一元算术运算符

  41. 2.3.2关系运算符 关系运算符 注意:关系表达式返回 True / false

  42. 2.3.3 逻辑运算符 逻辑运算符 简洁运算,也称短路运算。

  43. int d=5 ; boolean b1 = true , b2,b3; b2 = d >7 & (b1=d>9) ; System.out.println( b1 ); System.out.println( b2 ); b3 = d >7 && (b1=d>9) ; System.out.println( b1 ); System.out.println( b3 ); int d=5 ; //短路运算 boolean b1 = true , b2,b3; b2 = d <8 | (b1=d>9) ; System.out.println( b1 ); System.out.println( b2 ); b3 = d <8 || (b1=d>9) ; System.out.println( b1 ); System.out.println( b3 );

  44. 【例3.6】 关系运算符和逻辑运算符的使用。 //app3_6.java 关系运算符和逻辑运算符的使用 public class app3_6 { public static void main(String args[]) { int a=25,b=7; boolean x=a<b; //x=false System.out.println(”a<b=”+x); int e=3; boolean y= a/e>5; //y=true System.out.println(”x^y=”+(x^y)); if(e!=0 & b<0) System.out.println(”b/0=”+b/0); else System.out.println(”a%e=”+a%e); int f=0; if(f!=0 && a/f>5) System.out.println(”a/f=”+a/f); else System.out.println(”f=”+f); } }

  45. 其运行结果为: a<b=false x^y=true a%e=1 f=0

  46. 2.3.3 位运算符 表3.12 位运算符

  47. 2.3.4 赋值运算符 • 1. 赋值运算符 • 格式: • 变量或对象=表达式 赋值运算符右端的表达式可以还是赋值表达式,形成连续赋值的情况。例如: a=b=c=8;

  48. 2.扩展赋值运算符 在赋值符“=”前加上其他运算符,即构成扩展赋值运算符,例如:a+=3等价于a=a+3。

  49. 扩展赋值运算符

  50. 2.3.5条件运算符 格式: <表达式1> ? <表达式2> : <表达式3> 1 “表达式1”是一个结果为逻辑值的布尔表达式2 功能:先计算<表达式1>的值, 当<表达式1>的值为true时,则将<表达式2>的值作为整个表达式的值; 当<表达式1>的值为false时,则将<表达式3>的值作为整个表达式的值。 例如: int a=1,b=2,max; max=a > b ? a : b; //max获得a,b之中的较大值 System.out.println("max="+max); //输出结果为max=2

More Related