第2章Java程序设计语言
Java程序设计-第2章_JAVA语法基础
2.2 数据类型、变量与常量 2.2.1 数据类型 表2.1列出了Java中定义的所有数据类型。特 点如下: Java的各种数据类型占用固定的内存长度,与 具体的软硬件平台环境无关; Java的每种数据类型都对应一个缺省的数值, 使得这种数据类型的变量的取值总是确定的。这两 点分别体现了Java的跨平台特性和安全稳定性。
声明变量又叫创建变量,执行变量声明 语句时系统根据变量的数据类型在内存中开 辟相应的空间并登记变量名称、初始值等。 Java的变量有其生存期和有效范围,Java用 大括号将若干语句组成语句块,变量的有效 范围就是声明它的语句所在的语句块。
例 2-1 UseVariable.java
public class UseVariable {
上例子中定义了若干个变量并用相应类型 的常量为它们赋初始值。
String不是基本数据类型,而是一个系统定 义的类名,每一个字符串变量实际上都是一个字 符串对象。但是由于字符串是十分常用的对象。
例 2-2 getNumber.java
import java.io.*; public class getNumber{
运行结果如下:
上例是图形界面下的Java Applet程序。用户在 文本框对象input中输入字符串并回车后,程序接受 用户的输入.利用Double.valueOf( ).doubleValue( )将 这个字符串转化为浮点数据并赋值给双精度变量d。
actionPerformed()方法中的方法repaint( )是系 统已定义好的一个方法,这个方法将强行调用paint( ), 把变量d中的数据显示出来。
表2.1 Java的基本数据类型
boolean:表示布尔型。其变量或常量的取值只 有true和false两个。true代表“真”, false代表“假”。
网络程序设计(java)第02章 结构化程序设计
示例
【例2-3】J_CaseExample.java,数据类型转换 】 数据类型转换
2012-5-20
17
变量
• 变量在计算机内部对应着一个存储单元, 变量在计算机内部对应着一个存储单元, 而且总是具有某种数据类型: 而且总是具有某种数据类型:基本数据类 型或引用数据类型 • 变量总是具有与其数据类型相对应的值 • 每个变量均具有 名字、类型、一定大小的 每个变量均具有: 名字、类型、 变量均具有 存储单元以及 以及值 存储单元以及值
浮点类型
数据类型 所占位数 数的范围 3.4e-038 ~3.4e+038 1.7e-308 ~ 1.7e+308
float(单精度浮点数) 32 double(双精度浮点数)64
一个浮点数默认为double型。在一个浮点 数后加字母F或f,表示float型。常量值 3.45的类型是double;3.45F的类型是float。
2012-5-20
20
Java直接量 直接量
• Java直接量是直接显式地表示基本数据类型、 直接量是直接显式地表示基本数据类型、 直接量是直接显式地表示基本数据类型 字符串值和空引用值的表达式, 字符串值和空引用值的表达式,而且在该表达 式中不含运算。 式中不含运算。
– 布尔 布尔(boolean)直接量只有两个:true 和 false 直接量只有两个: 直接量只有两个 – ‘c’, ‘\u0061’, ‘\u0051’ 和 ‘\u005a’ 是char直接量 直接量. 直接量 – 34是int直接量 是 直接量 – 1.5, 45.6, 76.4E8和-32.0是double直接量 和 是 直接量 – 34L是long直接量 直接量. 是 直接量 – 1.5F, 45.6f, 76.4E8F和-32.0F是float直接量 和 是 直接量 – “Hello World!”是String直接量 是 直接量 – null是引用数据类型的直接量 是引用数据类型的直接量
高等教育自学考试Java语言程序设计(一)第二章数据和表达式课件
第二章数据和表达式目录第一节基本语法元素第二节基本数据类型第三节表达式01 基本语法元素1.空白在java程序中,换行符及回车符都可以表示一行的结束,它们可被看作是空白,另外空格键,水平定位键(Tab)亦是空白,编译器会忽略多余的空白。
2.注释(1)单行注释://一行内的注释(2)多行注释:/*一行或多行注释*/(3)文档注释:/**文档注释*/3.语句、分号和块语句是Java程序的最小执行单位,程序的各语句间以分号“;”分隔。
一个语句可以写在连续的若干行内。
大括号“{”和“}”包含的一系列语句称为块语句,简称块。
语句块可以嵌套,即语句块中可以含有子语句块;关键字Java语言定义了许多关键字,关键字也称为保留字,他们都有各自的特殊意义和用途。
*标红的为预留关键字,尚未使用标识符1.标识符是由字母、数字、下划线(_)或美元符($)组成的字符串,其中数字不能作为标识符的开头。
2.标识符区分大小写,长度没有限制。
3.标识符中不能含有其他符号,例如+、=、*、及%等,当然也不允许插入空白。
4.标识符可用作变量名、方法名、接口名和类名。
5.Java源代码采用的是Unicode码,用16位无符号二进制数表示一个字符,Unicode字符集中的字符数可达65535个,汉字也是字符,所以也可以出现在标识符中,例如“这是一个标识符”也是一个正确的标识符。
Java编程风格编写程序时应该注重自己的编程风格,增加必要的注释和空格,采用缩进格式。
定义的各种标识符也要遵从惯例注意大小写。
程序中尽量不使用没有含义的标识符。
最好能望名知义,例如,变量用于计数,可将它命名为counter;用变量保存税率,可将它命名为taxRate。
·类名或接口名:多为名词,含有大小写,每个单词的首字母大写如HelloWorld、Customer、SortClass 等。
·方法名:多是动词,含有大小写,首字母小写,其余各单词的首字母大写。
Java语言程序设计(郑莉)一到八章课后习题答案
第二章习题答案1.什么是对象、类,它们之间的联系?答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。
对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。
现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。
2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!两者的关系:对象是类的具体实例.。
2.什么是面向对象的程序设计方法?它有那些基本特征?答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。
它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。
它的特征:抽象,封装,继承,多态。
3.在下面的应用中,找出可能用到的对象,对每一个对象,列出可能的状态和行为。
1)模拟航空预订系统交易的程序2)模拟银行交易的程序答:1)航空预订交易:状态:旅客姓名,身份证号,联系号码,出发地址,抵达地址,出发日期。
行为:订票,领票,买票,退票。
2)银行交易:状态:客户姓名,账号,身份证号。
行为:存款,取款,汇款。
4.请解释类属性、实例属性及其区别。
答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。
5.请解释类方法、实例属性及其区别。
答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。
类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。
区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;6.类的访问控制符有哪几种?具体含义及其区别。
答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。
区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。
JAVA语言程序设计清华大学出版社书上例题源代码第二章
【2_1】//计算二个数的和class Example2_1 {public static void main(String args[]) {int x,y,s;x = 3;y = 5;s =x+y; //求和System.out.println("二数之和为:" + s);}}【2_2】//计算圆的面积class Example2_2 {public static void main(String args[]) {double pi,r,s;r = 10.8; //圆的半径pi = 3.1416;s = pi * r * r; //计算面积System.out.println("圆的面积为:" + s);}}【2_3】/* char 变量的用法*/class Example2_3 {public static void main(String args[]) {char ch1,ch2;ch1 = 88; // code for Xch2 = 'Y';System.out.print("ch1 and ch2:");System.out.println(ch1 + " " + ch2);}}【2_4】/* 布尔类型的用法*/class Example2_4 {public static void main(String args[]) {boolean b;b = false;System.out.println("b is " + b);b = true;System.out.println("b is " + b);// outcome of a relational operator is a boolean valueSystem.out.println("10 > 9 is " + (10 > 9));}}【2_5】public class Example2_5{public static void main(String[] agrs){//定义几个变量并赋值int a=41;int b=21;double x=6.4;double y=3.22;System.out.println("变量数值:");System.out.println("a="+a);System.out.println("b="+b);System.out.println("x="+x);System.out.println("y="+y);//加法System.out.println("加:");System.out.println("a+b="+(a+b));System.out.println("x+y="+(x+y));//减法System.out.println("减:");System.out.println("a-b="+(a-b));System.out.println("x-y="+(x-y));//乘法System.out.println("乘:");System.out.println("a*b="+(a*b));System.out.println("x*y="+(x*y));//除法System.out.println("除:");System.out.println("a/b="+(a/b));System.out.println("x/y="+(x/y));//从除法中求得余数System.out.println("计算余数:");System.out.println("a%b="+(a%b));System.out.println("x%y="+(x%y));//混合类型System.out.println("混合类型:");System.out.println("b+y="+(b+y));System.out.println("a*x="+(a*x));}}public class Example2_6{public static void main(String[] args){//定义若干整型数int i=37;int j=42;int k=42;System.out.println("变量数值");System.out.println("i="+i);System.out.println("j="+j);System.out.println("k="+k);//大于System.out.println("大于:");System.out.println("i>j="+(i>j));//falseSystem.out.println("j>i="+(j>i));//trueSystem.out.println("k>j="+(k>j));//false//大于等于System.out.println("大于等于:");System.out.println("i>=j="+(i>=j));//falseSystem.out.println("j>=i="+(j>=i));//trueSystem.out.println("k>=j="+(k>=j));//true//小于System.out.println("小于:");System.out.println("i<j="+(i<j));//trueSystem.out.println("j<i="+(j<i));//falseSystem.out.println("k<j="+(k<j));//false//小于等于System.out.println("小于等于:");System.out.println("i<=j="+(i<=j));//trueSystem.out.println("j<=i="+(j<=i));//falseSystem.out.println("k<=j="+(k<=j));//false//等于System.out.println("等于:");System.out.println("i==j="+(i==j));//falseSystem.out.println("k==j="+(k==j));//true//不等于System.out.println("不等于:");System.out.println("i!=j="+(i!=j));//trueSystem.out.println("k!=j="+(k!=j));//false}}class Example2_7{public static void main(String args[]){//字符char a1='银',a2='行',a3='帐',a4='号';//密鈅char secret='x';//异或运算加密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("密文:"+a1+a2+a3+a4);//再一次异或运算解密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("原文:"+a1+a2+a3+a4);}}【2_8】/* if结构*/public class Example2_8{public static void main(String args[]){int a=9,b=5,c=7,t;if(a>b){t=a; a=b; b=t;}if(a>c){t=a; a=c; c=t;}if(b>c){t=b; b=c; c=t;}System.out.println("a="+a+",b="+b+",c="+c);}}/* if-else-if 结构. */class Example2_9 {public static void main(String args[]) {int month = 4; // 4月份String season;if(month == 12 || month == 1 || month == 2){season = "冬天";}else if(month == 3 || month == 4 || month == 5){season = "春天"; }else if(month == 6 || month == 7 || month == 8){season = "夏天"; }else if(month == 9 || month == 10 || month == 11){season = "秋天"; }else{ season = "不合法的月份"; }System.out.println("4月是" + season + ".");}}【2_10】/* switch开关语句*/import java.applet.*;import java.awt.*;public class Example2_10 extends Applet{public void paint(Graphics g){int x=1,y=1;switch(x+y){case 1 :g.setColor(Color.red);g.drawString("i am 1",5,10);break;case 2:g.setColor(Color.blue);g.drawString("i am 2",5,10);// break;case 3:g.setColor(Color.green);g.drawString("i am 3",5,10);break;default:g.drawString("没有般配的",5,10);}}/*<APPLET CODE="Example2_10.class" WIDTH="200" HEIGHT="300"></APPLET>*/【2_11】/* for循环*/import javax.swing.JOptionPane;public class Example2_11{public static void main(String[] args){ int sum=0;for(int i=1;i<=100;i++){sum=sum+i;}JOptionPane.showMessageDialog(null,"1+2+3+...+100= "+sum);System.exit(0); //退出程序}}【2_12】/* while循环*/import javax.swing.JOptionPane;public class Example2_12{public static void main(String[] args){int s=1, i=1;while(i<=10){s=s*i;i++;}JOptionPane.showMessageDialog(null,"1*2*3*...*10= "+s);System.exit(0); //退出程序}}/* do-while循环*/import java.applet.*;import java.awt.*;public class Example2_13 extends Applet{public void paint(Graphics g){int i=1;do{g.drawOval(110-i*10,110-i*10,i*20,i*20);i++;}while(i<=10);}}/*<APPLET CODE="Example2_13.class" WIDTH="300" HEIGHT="300"></APPLET>*/【2_14】/* 使用break语句跳出循环 */import javax.swing.JOptionPane;class Example2_14{public static void main(String args[]){for(int i=0; i<100; i++){if(i == 10) break; // i=10时跳出循环JOptionPane.showMessageDialog(null,"i="+i);}JOptionPane.showMessageDialog(null,"循环已经结束!");System.exit(0); //退出程序}}/* 使用break语句跳出内循环 */class Example2_15{public static void main(String args[]){for(int i=1; i<6; i++){for(int j=1;j<3; j++){if(i == 3) break; // i=5时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_16】/* 使用"标签化中断"的break语句跳出循环 */class Example2_16{public static void main(String args[]){out: for(int i=1; i<6; i++) //设置标号{for(int j=1;j<3; j++){if(i == 3) break out; // i=3时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_17】/*continue语句打印三角形*/import javax.swing.JOptionPane;class Example2_17 {public static void main(String args[]) {String output="";for(int i=0; i<5; i++) {for(int j=0; j<5; j++) {if(j > i) {continue ;}output= output +"*"+" ";}output=output+"\n";}JOptionPane.showMessageDialog(null,output);System.exit(0);}}【2_18】/* 求一组数字的平均值*/import javax.swing.JOptionPane;class Example2_18 {public static void main(String args[]) {double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};double result = 0;for(int i=0; i<5; i++){result = result + nums[i]; }JOptionPane.showMessageDialog(null,"平均值为:" + result / 5);System.exit(0);}}【2_19】// 二维数组赋值class Example2_19{public static void main(String args[]) {int twoD[][]= new int[4][5];int i, j, k = 0;for(i=0; i<4; i++)for(j=0; j<5; j++) {twoD[i][j] = k;k++;}for(i=0; i<4; i++) {for(j=0; j<5; j++)System.out.print(twoD[i][j] + " ");System.out.println();}}}【2_20】import java.util.*;class Example2_20{public static void main(String[] args){Vector v1 =new Vector();for (int i=1;i<10;i++){v1.addElement(" " + i);System.out.println(v1.toString());}v1.insertElementAt("abc",5);System.out.println("\n插入元素:"+v1.toString());}}【2_21】import java.util.*;public class Example2_21{ public static void main(String args[]){ String s="boy,java,Applet girl,Hat";StringTokenizer st=new StringTokenizer(s," ,"); //空格和逗号做分int number=st.countTokens();while(st.hasMoreTokens()){ String str=st.nextToken();System.out.println(str);}System.out.println("s共有单词:"+number+"个");}}。
第2章 Java基本语言
2.2.1 隐式数据类型转换
如果去银行进行货币的对话,只需要交上需要兑换的 货币,银行会自动根据基数来进行货币的兑换。隐式数据 类型转换也有些类似,它是自动由低优先级到高优先级的 数据进行转换赋值,不需要进行特别的说明。
2.2.2 显示类型转换
显示类型转换也就是在优先级高的类型向优先级低的 类型进行转换时,需要进行强制类型转换。强制数据类型 转换。
2.3.3 逻辑运算符及表达式
逻辑运算符的计算对象是布尔变量,,当需要同时对多个条 件进行判断时需要使用到逻辑与符号“&&”与逻辑或符号 “||”,在逻辑运算符中,共有六种逻辑运算符。 &:逻辑与,例如x&y,表示x和y都真则真。 |:逻辑或,例如x|y,表示x和y中有一个为真则真。 !:逻辑非,例如!x,表示x为真则假,x为假则真。 &&:逻辑与,例如x&&y,表示x和y都真则为真。 ||:逻辑或,例如x||y,表示x和y有其一为真则为真。 ^:异或,例如x^y,表示x和y都为真或者都为假时,为真。
算术运算符就是在小学中所学到的加减乘除运算。算 术运算符就是进行加、减、乘、除运算的符号,对应的运 算符是“+”、“-”、“*”、“/”。算术运算符是实现整型 数据类型和浮点数据类型之间的计算。
2.3.2 关系运算符及表达式
关系运算符适用于判断大小或者是判断真假,返回值 为布尔类型。例如判断相等的运算符是“==”,判断不等 的运算符是“!=”。关系运算符通常是和逻辑条件语句来 进行配合使用。关系运算的结果只有两种,即真(true) 和假(false),Java中的关系运算符有六种,分别如下 。 >:表示大于,例如X>Y则为真,否则为假。 <:表示小于,例如X<Y则为真,否则为假。 >=:大于等于,例如X>=Y则为真,否则为假。 <=:小于等于,例如X<=Y则为真,否则为假。 ==:等于,例如X==Y则为真,否则为假。 !=:不等于,例如X!=Y则为真,否则为假。
自考教材《java语言程序设计(一)》第二章习题解答
第二章习题解答2.1 Java的字符能参加算术运算吗?可以。
(1)字符与整型数据运算,结果为整型数据,只能附给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;(2)字符与字符运算,结果为字符型数据,可以直接附给字符型或整型变量。
2.2 占字节多的变量能直接赋值给占字节少的变量么?答:不能直接赋值,需要强制类型转换。
2.3 试用Java语言表达式描述以下数学计算式或逻辑条件:1)3)34(rV⋅=π解:V = (4.0/3)*Math.PI*Math.pow(r,3);2))11(121RRR+=解:R = 1.0 / (1.0/R1+1.0/R2);3)635++=xxy解:y = Math.pow(x,5) + Math.pow(x,3) + 6;4)221RMMF⋅=解:F = 1.0 * M1 * M2 / (R * R);5)()()|2/cos|/sin xaxx⋅+π解:Math.sin(x) / a * x + Math.abs( Math.cos(π * x / 2) );6)0 < a <10解:a > 0 && a < 107) 条件 x=1 与 y=2 有且只有一个成立.解:( x == 1 && y != 2) || (x != 1 && y == 2)2.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
1);++*=aab解:a=5 ; b=16;2);aac+++=;解:a=5 ; c=102.5编写一个程序,示意前缀++与后缀++的区别,前缀--与后缀--的区别。
分析:其实只是在程序中简单地使用这两类自增、自减运算符就可以了,打印出运算前后的值就可以了,同学们可以自行写出,这里只给出参考程序:public class Xt25 {public static void main(String[] args) {int i=7,j=5,k=10,n=8,x,y;System.out.print("变量i的值为"+i);x=i++;System.out.println(",执行赋值运算x=i++后,x的值为"+x+",i的值为"+i);//提示注意print和println的差别,并注意本题整体输入效果!!!System.out.print("变量j的值为"+j);y=++j;System.out.println(",执行赋值运算y=++j后,y的值为"+y+",j的值为"+j);System.out.print("变量k的值为"+k);x=k--;System.out.println(",执行赋值运算x=k--后,x的值为"+x+",k的值为"+k);System.out.print("变量n的值为"+n);y=--n;System.out.println(",执行赋值运算x=--n后,y的值为"+y+",n的值为"+n);}}程序运行结果:变量i的值为7,执行赋值运算x=i++后,x的值为7,i的值为8变量j的值为5,执行赋值运算y=++j后,y的值为6,j的值为6变量k的值为10,执行赋值运算x=k--后,x的值为10,k的值为9变量n的值为8,执行赋值运算x=--n后,y的值为7,n的值为72.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。
《Java语言程序的设计基础教程》习题解答
《Java语言程序设计基础教程》练习思考题参考答案第1章 Java程序设计概述1.9 练习思考题1、Java运行平台包括三个版本,请选择正确的三项:()A. J2EEB. J2MEC. J2SED. J2E解答:A,B,C2、Java JDK中反编译工具是:()A. javacB. javaC. jdbD. javap解答:D3、public static void main方法的参数描述是:()A. String args[]B. String[] argsC. Strings args[]D. String args解答:A,B4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B. 编译器用它来搜索各自的类文件。
C. CLASSPATH是一个目录列表。
D. 解释器用它来搜索各自的类文件。
解答:A5、编译Java Application源文件将产生相应的字节码文件,扩展名为()A. .javaB. .classC. .htmlD. .exe解答:B6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。
7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。
8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。
9、开发与运行Java程序需要经过哪些主要步骤和过程?10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的?11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
第2章Java语言基础
(1)变量的声明
一般格式为: 其中: modifier为变量的访问修饰符 type为变量的类型 varName为变量名 下面声明了几个不同类型的变量: int age ; double d1,d2 ; char ch1, ch2 ;
[modifier] type varName[=value][,varName[=value]„] ;
2.1.4 浮点数类型
浮点类型的数就是我们所说的实数。 在Java中有两种浮点类型的数据:float型和 double型。 这两种类型的数据在JVM中所占的位数不同, float型占32位,double型占64位。 通常float型称为单精度浮点数,double型称为 双精度浮点数。
1.
常值变量可以在声明的同时赋值,也可以稍后赋 值。不管哪种情况,一旦赋值便不允许修改。
3. 变量及赋值
变量是在程序运行中其值可以改变的量。 一个变量应该有一个名字,在内存中占据一定的 存储单元。 根据变量的数据类型分,Java有两种类型的变量: 基本类型的变量和引用类型的变量。 基本类型的变量包括数值型(整数型和浮点型)、 布尔型和字符型; 引用类型的变量包括类、接口、枚举和数组等。 变量在使用之前必须定义,变量的定义包括变量 的声明和赋值。
(2)变量的赋值
使用赋值运算符“=”来给变量赋值,一般称为变 量的初始化。 如下面是几个赋值语句: age = 21 ; ch1 = 'A' ; d1 = 0.618 ; 也可以在声明变量的同时给变量赋值,例如: boolean b = false ;
2.1.3 整数类型
Java语言程序设计基础篇前三章课后习题
第1章计算机、程序和Java概述1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。
程序:显示:1.2(显示五条消息)编写程序,显示Welcome to Java五次程序:显示:1.3(显示图案)编写一个程序,显示下面的图案:程序:显示:1.4(打印表格)编写程序,显示以下表格:程序:显示:1.5(计算表达式)编写程序,显示(9.5x4.5-2.5x3)/(45.5-3.5)的结果程序:显示:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果程序:显示:1.7(近似求π)可以使用以下公式计算π:Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...)编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。
在程序中用1.0代替1 程序:显示:第2章基本程序设计2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。
转换公式如下所示:Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32)程序:显示:2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积面积=半径x半径xπ体积=面积x高程序:显示:2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。
一英尺等于0.305米。
程序:显示:2.4(将磅转换为千克)编写程序,将磅数转换为千克数。
程序提示用户输入磅数,然后转换成千克并显示结果。
1磅等于0.454千克。
程序:显示:2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。
例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5.程序:显示:2.6(求一个整数各位数的和)编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。
精品课件-JAVA语言程序设计教程(张席)-第2章
第2章 数据类型、运算符、表达式和语句 程序运行结果如图2.3所示。
图2.3 一维数组应用举例
27
第2章 数据类型、运算符、表达式和语句 2.5 运算符与表达式
对各种类型的数据进行加工的过程称为运算,表示各 种不同运算的符号称为运算符,参与运算的数据称为操作数。 Java语言运算符如图2.4所示。
byte a=100;
//定义整型变量 a,且赋初值为 100
short b=1000; //定义整型变量 b,且赋初值为 1000
int c=10000;
//定义整型变量 c,且赋初值为 10000
long d=100000L; //定义整型变量 d,且赋初值为 100000
float e= 5.12f ; //指定变量 e 为 float 型,且赋初值为 5.12
char byte、short byte、short、int byte、short、int、long byte、short、int、long、float
int int long float double
17
第2章 数据类型、运算符、表达式和语句
2.3.2 强制类型转换
高优先级数据要转换成低优先级数据,需用到强制类型转换,
其转换格式为
(类型名)(数据或表达式)
例如:
int x;
short a=(short)x;
/*把int型变量x强制转换为short
型*/
18
第2章 数据类型、运算符、表达式和语句 2.4 数 组
2.4.1 数组的概念 数组是相同类型的数据按顺序组成的一种复合数据类型,通
过数组名加数组下标来使用数组中的数据,下标从0 开始。
21
java面向对象程序设计第二章
简单数据类型及其对应包装类
简单数据类型不是类,但Java提供了与简单类型对应的包装类
普通数据 类型
char byte short
对应的包 装类
Character Byte Short
它们之间的相互转化方法为(以int和 Integer为例): 简单数据类型转化为类对象的方法是:
通过相应类的构造方法来完成。如
Java 初级
第二章 Java语言基础
主要内容
简单数据类型 表达式Βιβλιοθήκη 控制语句简单数据类型
标识符
定义:程序员对程序中的各个元素加以命名时使用的命 名记号称为标识符(identifier)。 Java语言中,标识符是以字母,下划线“_‖,美元符“$‖ 开始的一个字符序列,后面可以跟字母,下划线,美元 符,数字。例如,identifier,userName,User_Name, _sys_val, $change为合法的标识符,而2mail(数字开 头)、 room#(非法字符)、class(关键字)、a-class(含 有运算符)都为非法的标识符。
浮点型(Cont)
实型变量的类型:
数据类型 float double 所占位数 32 64 数的范围 1.4E-45 ~3.4E+38 4.9E-324 ~1.7E308
定义一个float类型的浮点数方法
给一个带小数的数后面加上f(包括科学计数法)。 将能隐式转化的数赋值给浮点变量:如char类型、整型 (十进制、八进制、十六进制)。
在选用整数类型上,一定要注意数的范围,否则可能 由于数的类型选择不当而造成溢出,例如下面的代码 add就存在着潜在的溢出问题,从而为程序带来Bug
精品文档-面向对象程序设计—Java(第三版)(张白一)-第2章
第2章 Java语言基础
表2.4列出了Java语言所使用的数据类型。我们将在介绍 了常量、变量等基本概念之后,再结合实例对各种数据类型作 具体讲解。
第2章 J关键字
基 本 数类 据型 类 型
引 用 类 型
名称
整数类型
浮点类型 字符类型 布尔类型 字符串 数组 类 接口
break char double float implements long package short throw void
byte class else for import native private static throws volatile
byvalue * const* extends future inner new protected super transient while
第2章 Java语言基础
第2章 Java语言基础
2.1 Java符号集 2.2 数据类型、常量与变量 2.3 表达式和语句
第2章 Java语言基础
2.1 Java符号集 符号是构成语言和程序的基本单位。Java语言不采用通 常计算机语言系统所采用的ASCII代码集,而是采用更为国际 化的Unicode字符集。在这种字符集中,每个字符用两个字节 即16位表示。这样,整个字符集中共包含65 535个字符。其 中,前面256个字符表示ASCII码,使Java对ASCII码具有兼容 性;后面21 000个字符用来表示汉字等非拉丁字符。但是, Unicode只用在Java平台内部,当涉及打印、屏幕显示、键盘 输入等外部操作时,仍由计算机的具体操作系统决定其
在Java系统中,常量有两种形式:一种是以字面形式直接给 出值的常量;另一种则是以关键字final定义的标识符常量。 不论哪种形式的常量,它们一经建立,在程序的整个运行过程 中其值始终不会改变。按照由浅入深的学习规律,这里只讨论 以字面形式直接给出值的常量,至于以关键字final定义的标 识符常量,将在第4章讨论final修饰符时专门论述。
Java语言程序设计(第2版)第1-6章 课后习题答案
第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java程序与平台无关C. Java和程序可以直接访问Internet上的对象D. 支持单继承和多继承1-3 下列关于Java Application程序在结构上的特点的中,错误的是(C)A. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A)A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1JavaC++的语言之前问世的。
(错)1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)1-3Java语言中取消了联合的概念,保留了结构概念。
(错)1-4Java语言中数据类型占内在字节数与平台无关。
(对)1-5Java语言中可用下标和指针两种方式表示数组元素。
(错)1-6Java语言的源程序不是编译型的,而是编译解释型的。
(对)1-7操作系统中进程和线程两个概念是没有区别的。
(错)1-8Java语言既是面向对象的又是面向网络的高级语言。
(对)1-9Java程序分为两大类:一类是Application程序,另一类是Applet程序。
前者又称Java应用程序,后者又称为Java小应用程序。
(对)1-10Java Application程序是由多个文件组成的,其中可以有也可以没有主文件。
第二章 JAVA概述
javac(编译器);java(解释器)
• Java集成开发环境(IDE)
Visual J++、Visual Cafe、JBuilder
• Java教学集成开发环境
BlueJ(需要JDK1.3以上版本的支持)
Copyright © 2006 , Wang Hai feng, All rights reserved
15
Copyright © 2006 , Wang Hai feng, All rights reserved
2.3 Java语言的特点
• 两种工作模式的比较
Java编译器 Java解释器 二进制 编译器
二进制
Powerpc 源 程 序
Powerpc
Powerpc 源 程 序
Powerpc
pentium
2.2 Java Applet
html中有关的代码: <APPLET CODE=“showdate.class” width=600 height=80> </APPLET> • CODEBASE的作用 当class文件与网页文件不在同一个目录下时,使 用CODEBASE说明 <APPLET CODE=“showdate.class” width=600 height=80> CODEBASE=“\myjava\class”</APPLET>
Copyright © 2006 , Wang Hai feng, All rights reserved 21
2.4 小节 • 教学重点:
– 了解两种java程序的结构与原理 – 了解java语言的特点 – 掌握java程序上机调试运行方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Java语言中,基本数据类型的 16 \u0000~\uFFFF(0~65535) 数据所占用的二进制位数是固定 -128~127 的,与具体的软硬件环境无关。 8 (-27~(27-1)) 每一种数据类型都有一个默认的 -32768~32767 初值。所有基本类型的关键词都 16 (-215~(215-1)) 是小写的。在把容量大的类型转 -2147483648~2147483647 32 换为容量小的类型时必须使用强 (-231~(231-1)) 制类型转换。
byte、short、int、long 、 、 、
上面4种数据类型都属于整型数值类型。 上面 种数据类型都属于整型数值类型。 种数据类型都属于整型数值类型 byte 1个字节 个字节 short 2个字节 个字节 int 3个字节 个字节
long 4个字节 个字节
Java语言中所有整数类型均为符号数 语言中所有整数类型均为符号数
2.2 Java程序设计语言的基本特征 简捷性 面向对象 分布式 健壮性 结构中立 安全性 可移植性 解释执行 高性能 多线程
2.3 Java程序的运行环境 Java是解释型的高级编程语言 Java是解释型的高级编程语言
运行 操 作 系 解 统 编译 Java源程序 源程序 .java 字节码程序 .class Java怼 Java 解释 运行 释 器 裸 机
2.4 Java程序的基本结构
Application应用程序: Application应用程序: 应用程序 它是一个完整的应用程序,可以利用 它是一个完整的应用程序, Java虚拟机独立地运行 Java虚拟机独立地运行。 虚拟机独立地运行。 Applet(小应用程序): Applet(小应用程序): 它不是一个完整的应用程序,而是框 它不是一个完整的应用程序, 架程序中的一个模块, 架程序中的一个模块,因此只能在 WWW 浏览器环境下运行。 浏览器环境下运行。
2.1 Java程序设计语言的发展
1999年6月SUN公司重新定义了 年 月 公司重新定义了Java技术的框架, 技术的框架, 公司重新定义了 技术的框架 形成了现在的3个版本 个版本: 形成了现在的 个版本: 1、J2ME(Java2 Micro Edition)——以消费性电子产 、 以消费性电子产 品为目标的高度优化的Java运行环境。 运行环境。 品为目标的高度优化的 运行环境 2、J2SE(Java2 Standard Edition)——开发客户端应 、 开发客户端应 用程序的Java标准平台,是Java2的标准版,主要 标准平台, 的标准版, 用程序的 标准平台 的标准版 要学习j2ee就 用于桌面应用软件的编程。 用于桌面应用软件的编程。 要先学习j2se 3、J2EE(Java2 Enterprise Edition)——是Java2的企 、 是 的企 业版,主要用于分布式的网络程序的开发, 业版,主要用于分布式的网络程序的开发,如电 子商务网站和ERP系统。具有模块化、可重用的 系统。 子商务网站和 系统 具有模块化、 JavaBean组件 组件——一个 一个java类(参考教材 页)。 类 参考教材388页 。 组件 一个 参考教材 。
Java Applet 工作原理
www服务器 下载 HTML 文件 HTML 文件 嵌入 Applet www服务器
请求 HTML 文件
请求 Applet 字节码
www浏览器 下载Applet字节码
解释执行Applet字节码
编写Java程序需要注意的几点
Java 区分大小写 一个程序中可以有一个或多个类,但 一个程序中可以有一个或多个类, 其中只能有一个主类 源程序编写完毕, 源程序编写完毕,应该用主类名作为 文件名, 文件名,再加后缀 .java 存储成磁盘 文件
Java支持的数据类型分为两个类别:基本数据 基本数据 类型和引用数据类型 类型 引用数据类型
Java的基本数据类型
布尔类型: 布尔类型:boolean 字符类型:char 字符类型: 整数类型: 整数类型:byte、short、int、long 、 、 、 浮点类型: 浮点类型:float、double 、
Java语言的基本数据类型
数据类型 boolean (布尔类型) 布尔类型) 布尔类型 char (字符类型 字符类型) 字符类型 byte (字节类型 字节类型) 字节类型 short (短整型 短整型) 短整型 int (整型 整型) 整型 long (长整型 长整型) 长整型 float (单精度浮点型 单精度浮点型) 单精度浮点型 double (双精度浮点型 双精度浮点型) 双精度浮点型 占用二进制位 数 8 取值范围 True或false 或 默认 值 false \u0000 0 0 0
2.5 Java程序的基本类型
数据类型决定了参与操作的变量、 数据类型决定了参与操作的变量、常 量和表达式的取值类别、 量和表达式的取值类别、取值范围以及能 够实施的操作行为。 够实施的操作行为。Java语言属于强类型 语言属于强类型 语言, 语言,即对于程序中出现的所有变量和表 达式, 达式,在编译的时候就要求有明确的数据 类型, 类型,这样才可以由编译程序在编译期间 对所有的操作进行数据类型相容性的检查。 对所有的操作进行数据类型相容性的检查。
float、double 、
float 单精度 32位 位
double 双精度 64位 位 Java语言中的浮点数值表示遵循 语言中的浮点数值表示遵循IEEE754 语言中的浮点数值表示遵循 标准。它不仅包括正零 标准。它不仅包括正零(+0.0)、负零 、负零(-0.0)、 、 正无穷大(Infinity)、负无穷大(-Infinity) 正无穷大 、负无穷大 和一个特别的值NaN(非法的浮点运算结 非法的浮点运算结 和一个特别的值 果)。
2.6 标识符、关键字、分隔符、常量、变量 【标识符】 Java 的标识符由字母、数字、_和$组 的标识符由字母 数字、 和 组 字母、 成,长度不限。其中字母可以是大写 长度不限。 或小写的英文字母, 或小写的英文字母,数字为 0 到 9。 。 标识符的第一个字符必须为字母、 标识符的第一个字符必须为字母、(_) 字母 符号。 或($)符号。标识符区分大小写。 符号 标识符区分大小写。
Java Applet小应用程序基本结构 小应用程序基本结构
import java.applet.*; import java.awt.*; class { 类名称
ds Applet
类成员声明
}
Applet是一个系统类,是容器类java.awt.Panel类的 是一个系统类,是容器类 是一个系统类 类的 子类,封装了init(),start(),stop(),paint(),destroy()等方 子类,封装了 等方 法。
<HTML> <HEAD> <TITLE>FirstJavaApplet</TITLE> </HEAD> <BODY> <HR> <APPLET CODE=FirstJavaApplet.class WIDTH=500 HEIGHT=500 CODEBASE=“.”> < /APPLET> </BODY> Codebase指定了 指定了Java程序在 指定了 程序在 </HTML> 网络上何处可以找到需要的类。 网络上何处可以找到需要的类。
64
(-263~(263-1))
+1.4E-45~+3.4028235E+38 +4.9E-324~+1.7976931348623157E+308
0
32 64
0.0f 0.0
boolean
只有“ 两个取值, 只有“true”和“false”两个取值,分别代 和 两个取值 表 “ 真 ” 和 “假 ”。 特点: 特点:不能够与任何其他类型进行相互 的类型转换操作,不对应于任何整数值 的类型转换操作 不对应于任何整数值, 不对应于任何整数值 只能参与逻辑关系运算。 只能参与逻辑关系运算。 不能用1和 代表 代表true和false。 不能用 和0代表 和
工作过程:载入、代码校验、解释执行 工作过程:载入、代码校验、
常见的Java开发环境
从网络上直接下载JDK( 从网络上直接下载JDK(Java Developer Kit), Kit), 其实, 其实,有很多高手根本 并利用命令行方式操作
不用这些工具, 不用这些工具,随便一 javac(编译器); javac(编译器);java(解释器) );java(解释器) 个文本编辑器( 个文本编辑器(如记事 Java集成开发环境 IDE) Java集成开发环境(IDE) 集成开发环境( )+JDK就可编一个 本)+JDK就可编一个 非常完美的绝对的纯 Visual J++、Visual Cafe、JBuilder、Eclipse J++、 Cafe、JBuilder、 Java程序 程序. 的Java程序.刚开始学 Java教学集成开发环境 Java教学集成开发环境 j2se先建议不要使 习j2se先建议不要使 BlueJ(需要JDK1.3以上版本的支持)、JCreater是一个 BlueJ(需要JDK1.3以上版本的支持)、JCreater是一个 以上版本的支持)、 IDE, 用IDE,然后渐渐的 JAVA集成开发环境 IDE)。 JAVA集成开发环境(IDE)。其最大特点是与机器中 集成开发环境( )。其最大特点是与机器中 过渡到使用IDE开发 过渡到使用IDE开发 所装的JDK完美结合 是其它任何一款IDE所不能比拟 完美结合, 所装的JDK完美结合,是其它任何一款IDE所不能比拟 的。
Application应用程序举例 应用程序举例
import java.io.*; public class MyFirstJavaProgram { public static void main(String[ ] args) { System.out.println(“This is the first Java Application”); } }