第2章 简单的Java程序
Java语言程序设计(第三版)第二章课后习题答案(仅供参考)

Java语⾔程序设计(第三版)第⼆章课后习题答案(仅供参考)2.1 注意不同类型转换1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double f = sc.nextDouble();7double t = (5.0/9)*(f-32); // 注意 (5/9) 结果为整形要写成 (5.0/9)8 System.out.println(t)9 }2.21import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊圆柱体半径和⾼:");7double r = sc.nextDouble();8double h = sc.nextDouble();9double v = Math.PI * r * r * h; //圆周率⽅法 Math.PI10 System.out.println(v);11 }2.31import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊体重和⾝⾼:");7double g = sc.nextDouble();8double h = sc.nextDouble();9double BMI = g / (h * h);10 System.out.println(BMI);11 }2.4 使⽤循环每次对个位取数相加取数后除以10 使前⼀位变为个位继续判断⼩于等于0时停⽌1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5int sum = 0;6 Scanner sc = new Scanner(System.in);7int num1 = sc.nextInt();8while (num1 > 0) // 与 0 ⽐较判断是否需要取数9 {10 sum += (num1%10); // 通过取余获得个位数字11 num1 /= 10; // 每次取余后除以1012 }13 System.out.println(sum);14 }2.5 注意 System.currentTimeMillis()⽅法返回long形需要转换为int形1public class Ch02 {2public static void main(String[] args) {3// 通过 System.currentTimeMillis() ⽅法获得从1970年1⽉1⽇ 00:00:00 到现在的毫秒数4// 28800000 是格林时间与我们时区的时间差值5// 对 86400000 取余是把满⼀天的时间都去掉获取多出来的不⾜⼀天的时间6int t = (int)((System.currentTimeMillis()+28800000)%86400000);7int hour = t/3600000; // 除 3600000 获取满⼩时的个数即求⼩时为⼏点8int mine = t%3600000/60000; // 计算不⾜⼀⼩时的时间⾥有多少分钟9int s = t%3600000%60000/1000; // 计算不⾜⼀分钟的时间⾥有多少秒不要忘记除以 1000 (因为单位为毫秒)10 System.out.println("当前时间: "+hour+":"+mine+":"+s+" GMT");11 }2.6 a 不能为 0 b2 - 4 * a * c 不能为 01import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5double sum,a,b,c,t;6 Scanner sc = new Scanner(System.in);7while (true) {8 a = sc.nextDouble();9 b = sc.nextDouble();10 c = sc.nextDouble();11 t = b*b-4*a*c;12if (a == 0) {13 System.out.println("a 不能为 0,请重新测试 ^_^");14 } else if (t < 0) {15 System.out.println("b*b-4*a*c不能为0,请重新测试");16 }17else18 {19break;20 }21 }22 sum = ((-b+Math.sqrt(t)/(2*a))); //( 2*a ) 注意加括号23 System.out.println(sum);2.7 注意计算公式先后顺序多使⽤⼩括号1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double yrate = sc.nextDouble();7double amount = sc.nextDouble();8double year = sc.nextDouble();9double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));10double sumamount = month*12*year;11 System.out.println("⽉⽀付⾦额:"+month+"\n总偿还⾦额:"+sumamount);12 }。
Java游戏编程原理与实践教程课件 第2章--陈锐 夏敏捷主编

2.3 Swing组件 2.3.5 列表(JList) JList组件用于定义列表,允许用户选择一个或多个项目。与JTextArea类 似,JList本身不支持滚动功能,如果要显示超出显示范围的项目,可以 将JList对象放置到滚动窗格JScrollPane 对象中,便可以为列表对象实现 滚动操作。 2.3.6 文本框(JTextField和JPasswordField) JTextField组件用于创建文本框。文本框是用来接受用的单行文本信息输 入的区域。通常文本框用于接受用户信息或其他文本信息的输入。当用 户输入文本信息后,如果为JTextField对象添加事件处理,按回车键会激 发一定的动作。
2.3 Swing组件 2.3.7 面板(JPanel) JPanel组件定义的面板实际上是一种容器组件,用来容纳各种其他轻量 级的组件。此外,用户还可以用这种面板容器绘制图形。 【例2-4】利用JPanel设计一个程序。界面如图2-4所示。
2.3 Swing组件 2.3.8 表格(JTable) 表格是Swing新增加的组件,主要功能是把数据以二维表格的形式显示出 来。 2.3.9 框架(JFrame) 框架是Swing GUI应用程序的主窗口,窗口有边界、标题、关闭按钮等。 JFrame类是java.awt包中Frame类的子类,其及子类创建的对象是窗体, 对象(窗体)是重量容器;不能把组件直接添加到swing窗体中,其含有 内容面板容器,应该把组件添加到内容面板中;不能为swing窗体设置布 局,而应当为swing窗体的内容面板设置布局。 Swing窗体通过getContentPane()方法,获得JFrame的内容面板,再对其 加入组件: JFrame frame=new JFrame(); Cotainer ct= frame.getContentPane();//获取内容面板容器 ct.add(childComponent); //内容面板容器加入组件
第2章 Java编程基础.ppt

14、下列选项中,按照箭头方向,不可以进行自
动类型转换的是( )
A、byte → int
B、int → long
C、double →long D、short → int
18.在程序中为了标明不同的进制,数据都有特定
的标识,八进制必须以_____开头;十六进制必须
以_________或_________开头。
19.Java语言中,double类型所占存储空间为 _________个字节。 20.简述什么是变量的作用域
21.请列举Java语言中的八种基本数据类型,并说 明每种数据类型所占用的空间大小
D、goto
8、下列转义字符中,不合法的是( )
A、'\n‘
B、'\x'
C、'\r'
D、'\t'
9、下列选项中,哪一个是十进制数6的二进制值 ()
A、111 C、110
B、101 D、011
10、下列选项中,不属于基本数据类型的是( )
A、String
B、short
C、boolean
D、char
11、下列关于浮点型数据的定义,哪一个不能通 过编译( )
52、下面关于方法定义的描述中,正确的是( ) A、当方法没有返回值时,返回值类型要定义为void B、当方法没有返回值时,返回值类型可以不写 C、当方法没有返回值时,不能有return语句 D、方法是不可以没有参数的
53、Java允许在一个程序中定义多个同名的方法, 但是参数的类型或个数必须不同,这就是方法的 重载( )
java程序设计教程第六版 第2章

• 参考 Addition.java (第41页)
1-7
转义字符
问题:
• 如何打印一个带双引号的字符串?
I said "Hello" to you。 System.out.println ("I said "Hello" to you.");
• 上面的语句会让编译器报错,因为编译器会把第二个双 引号看作字符串的结束
+
a + (b – c) / d a b c / d
1-32
赋值运算符
• 赋值运算符比算术运算的优先级低
首先计算赋值运算符右边表达式的值 answer = 4 sum / 4 + MAX * lowest; 1 3 2
然后将计算结果存储于赋值号左边的变量中
1-33
赋值运算符
• 赋值运算符的两边可以包含相同的变量
例如MAX_OCCUPANCY表示一个剧院容纳的最多人数
2、 常量使得程序维护更加方便
如果程序中多处使用一个常量,那么只需要在一个地方修改
3、 常量获得初值后不能被修改,这样可避免其他程序员 疏忽导致的错误。
1-15
概要
字符串
变量பைடு நூலகம்赋值 基本数据类型
表达式
数据类型转换 交互程序 图形 Java Applet 绘图
1-20
1、整数类型
上面所说的整数long的形式如下: 5L 表示十进制值5,是一个long值 075L 表示八进制数值75,是一个long值 0x9ABCL 表示十六进制的数值9ABC,是一个long值 如果直接是 5 表示十进制5,是一个int型的
1-21
2、浮点类型double,float
《Java程序设计》(唐大仕)课后习题答案

第1章 Java语言面与向对象的程序设计1. Java语言有哪些主要特点?答:〔要点〕:1.简单易学2.面向对象3.平台无关性4.安全稳定5.支持多线程6.很好地支持网络编程7.Java丰富的类库使得Java可以广泛地应用2.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于电脑;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在电脑逻辑中的抽象表示,更接近于人的思维特点。
面向过程的编程语言:C,Pascal,Foratn。
面向对象的编程语言:C++,Java,C#。
3.简述对象、类和实体及它们之间的相互关系。
尝试从日常接触到的人或物中抽象出对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在电脑逻辑中的映射和表达。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。
4.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。
答:对象都具有状态和行为。
对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。
每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:、性别、年龄、所在学校、所在系别、通讯地址、号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
5.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
第二章java基本语法

第二章java基本语法§。
1 java程序的构成前言:java语言源程序采用有效的16bit双字节字符编码标准(uni code)。
Java程序构成分物理构成和逻辑构成。
逻辑构成是基于信息组织的角度,而物理构成是基于程序组成的角度•§2.1。
1逻辑构成程序头包的引用:主要是指引用jdk软件包自带的包,也可以java源程序逻辑构成是自己定义的类。
引用后程序体中就可以自由应用包中的类的方法和属性等。
类的定义:java语言源程序中可以有多个类的定义,但必须有一个主类,此主类是java程序运行的入口点.在应用程序中,主类为包含main方法的类;在applet中,主类为用户自定义的系统applet类的扩展类•在java语言源程序中,主类的名字同文件名一致。
注:类的定义有包括类头声明和类体定义。
类体中包括属性(成员变量)声明和方法(行为)描述。
【例2.1】下面是一个应用程序,也是一个applet,既可以在命令行下运行,也可以嵌到html网页中用appletviewer 命令运行。
程序如下:// 程序文件名为welcomeapplet.java 注释语句import java 。
applet。
* ;import java.awt 。
*; 卜引入包import java.awt 。
event.* ;public class welcomeapplet exte nds applet impleme nts action listener {主类类头public void action performed (actionevent e) {txtdisp.settext (txtname 。
gettext() + "欢迎你来到 java 世界!”; }public static void main (string args[]){frame f=new frame( 欢迎");f.addwindowlistener(new windowadapter()) {public void wi ndowclosi ng(wi ndoweve nt ev {system o exit (0);} }welcomeapplet a=new welcomeapplet ();a 。
第2章_Java基本数据和运算

5 % 2= 1 5/2=2
分析运行结果
public class OperatorTest { public static void main(String[] args) { int i =7/3; int j =2+7%i; double k = 7.8/i+5; System.out.println("i="+i); System.out.println("j="+j); System.out.println(”k="+k); } }
算术运算符应用
某学生有3门课成绩,编程实现求平均分。
public class Test1 { public static void main(String[ ] args) { String name= "刘星"; //姓名 int javaScore=90; //Java成绩 int webScore=86; // Web成绩 int sqlScore=88; //Sql 成绩 double avgScore; //平均成绩 avgScore= (webScore+javaScore+sqlScore)/3; System.out.println("学生姓名:"+name); System.out.println("平均成绩:"+avgScore); } }
?
常见错误
下面语句正确吗?
int a = 10; int b = 10.2; double c = 10; c = a; int d = c; double不可以自动转化成int
分析运行结果
public class TypeTest1 { public static void main(String[] args) { int a = 5; float x = a; //自动类型转换 double y= 5.8; int b=(int)y; //强制类型转换 System.out.println("a="+a); System.out.println("x="+x); System.out.println("y="+y); System.out.println("b="+b); } }
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开发实战经典-课后习题答案

********* Java 程序设计 *********
*************************************
答案:
public class TestDemo {
public static void main(String[] args) {
System.out.println("*************************************");
A、 2、6、6
B、 4、9、9
C、 4、6、12
D、 3、9、9
12、 以下的 B 能正确表示Java语言中的一个整型常量。
A、 35.d
B、 -20
C、 1,234 D、 "123"
13、 下面的数据类型 D 是float型
A、 33.8
B、 129
C、 89L
D、 8.6F
14、 下列关于自动类型转换的说法中,正确的一个是 B 。
是 *.class 。 7、 布尔型数据类型的关键字是 boolean ,有 true 和 false 两种取值。 8、 整型数可以采用 byte 、 short 、 int 和 long 四种类型表示。 9、 根据占用内存长度的不同将浮点型分为 float 和 double 两种。 10、 Java程序结构分为: 顺序结构 、 分支结构 、 循环结构 三种。 11、 逻辑表达式:true&&false&&true的结果是 false 。 12、 逻辑表达式:!true||false的结果是 false 。 13、 在方法中可以使用 return 语句来结束方法的执行。 14、 方法中的 void 关键字用来表示方法不返回任何值。
第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语言程序设计基础教程习题解答

《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”。
精品课件-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
第2章 Java编程基础

2.3.4 逻辑运算符和逻辑表达式
Java中常用的三种逻辑运算符是: &&(逻辑与,二元运算符) a&&b || (逻辑或,二元运算符) a||b ! (逻辑非,一元运算符) !a 注意短路运算 a&&b a||b
2.3.5 位运算符和位运算表达式
位(bit)是计算机中表示信息的最小单位,一般用0和1表示。一个字符在计算机中占一个字节, 一个字节由8个二进制组成。 • 位运算符对操作数按其二进制形式逐位进行运算,参加位运算的操作数必须为整数。相应的运
赋值运算符的结合性是从右至左的,因此程序中可以出现连续赋值的情况。例如,下面的赋值是合法的:
int i,j,k;
i=j=k=10;
//i,j,k都赋值为10
2.复合赋值运算符
表2-4是一些常用的复合赋值运算符。
2.3.2 赋值运算符和赋值表达式
2.复合赋值运算符
表2-4中的非直接赋值运算符在执行速度上快于一般的赋值方式,
第2章 Java编程基础
本章内容
2.1 标识符与数据类型 2.2 常量与变量 2.3 运算符和表达式 2.4 逻辑控制语句 2.5 Java数组和应用 2.6 Java方法
第二章Java概述PPT教学课件

1. Java Applet是嵌在Web中的非独立程序, 由Web浏览器内部包含的Java解释器来解 释运行。
2. 例2-3 3. Java Applet程序中不能有main方法,但要
有且只能有一个Applet系统类的子类。
2. 例2-5 3. 凡是Java Applet程序,必须加载java.applet
包;凡是使用图形界面,必须加载java.awt 包;凡是使用图形界面的事件处理,必须加 载java.awt.event包。
第二章 Java概述
2.3.1 Java Applet图形界面输入输出 4. implements ActionListener说明了该类是动 作事件(ActionEvent)的监听者。 5. init()方法在浏览器调用Java Applet程序时 自动执行。 6. 动作事件的监听者使用方法 actionPerformed()来处理动作事件。
第二章 Java概述
2.2.1 源程序的编辑与编译
4. paint方法是系统类Applet的方法,子类 MyJavaApplet继承并重载了它。
5. g是系统类Graphics的一个对象, drawString是该类的一个方法。
6. 编译该Java Applet也可用JDK进行。 javac MyJavaApplet.java
2.1.3 字节码的解释与运行
1. 编译型语言(如C)的运行是直接作用于操作 系统的,对软硬件平台有较强的依赖性, 可移植性差。
2. 解释型语言(如Java)的运行不是直接作用 于操作系统的,而是作用于Java虚拟机上, Java虚拟机隐藏了不同软硬件平台的差异, 故Java程序有很好的可移植性和跨平台性。
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概述

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)。
2.2 简单的Java程序解析
2.2.1 类(class) Java程序是由类(class)组成的,类的概念在以后会有详 细讲解,读者只要先记住所有的Java程序都是由类组成的即 可。下面的程序片段即为定义类的典型范例。
public class Test { … } // 定义 public 类 Test
第2章 简单的Java程序
图2-1 类与文件名示意图
第2章 简单的Java程序
(3) 第4行public static void main(String args[])为程序运行
的起点。第4~10行的功能类似于一般程序语言中的函数 (function),但在Java中称之为method(方法)。因此C语言里 的main()函数(主函数)在Java中被称为main() method(主方法)。 (4) main() method的主体(body)从第5行的左大括号“{” 到第11行的右大括号“}”为止。每一个独立的Java程序一定 要有main() method才能运行,因为它是程序开始运行的起点。 (5) 第6行“int num;”的目的是声明num为一个整数类型 的变量。在使用变量之前必须先声明其类型。 (6) 第7行“num=3;”为一赋值语句,即把整数2赋给存放 整数的变量num。
public static void main(String args[]) 程序开始 { … } // main()方法,主
第2章 简单的Java程序
2.2.4 Java程序的注释
为程序添加注释可以用来解释程序的某些语句的作用和 功能,提高程序的可读性,也可以使用注释在原程序中插入 设计者的个人信息。此外,还可以用程序注释来暂时屏蔽某 些程序语句,让编译器暂时不要处理这部分语句,等到需要 处理的时候,只需把注释标记取消就可以了。Java中的注释 根据不同的用途分为以下三种类型: (1) 单行注释:就是在注释内容前面加双斜线(//),Java 编译器会忽略掉这部分信息。 (2) 多行注释:就是在注释内容前面以单斜线加一个星 型标记(/*)开头,并在注释内容末尾以一个星型标记加单斜
这些简单名称所代表的意义容易忘记,必然会增加阅读及调
试程序的困难程度。
第2章 简单的Java程序
4.变量名称的限制
声明一个变量时,标识符的选择并不是任意的,需要遵 循变量的命名规则,否则为无效的变量名。这一点同2.2.5节 所述的标识符的名称限制是一致的。例如,变量名必须是一 个有效的标识符。在Java语言中一个有效的标识符通常是以 大小写英文字母、数字、下划线“_”和美元符号“$”组成的, 不能声明多个相同的变量名,变量名不能命名为Java的关键 字。
第2章 简单的Java程序
下面是合法的标识符: yourname your_name _yourname $yourname 下面是非法的标识符: class 67.9 Hello Careers
第2章 简单的Java程序
2.2.6 Java的关键字
和其他语言一样,Java中也有许多保留关键字,如 public、static等,这些保留关键字不能当作标识符使用。下 面列出了Java中的保留关键字,这些关键字并不需要读者去 强记,因为一旦使用了这些关键字做标识符,编辑器会自动 提示错误。 abstract、char、else、for、interface、private、boolean、 class、extend、if、long、protected、break、continue、false、 implement、native、public、byte、default、final、import、 new、return、case、do、finally、instanceof、null、short、 catch、double、float、int、package、static、synchronized、
第2章 简单的Java程序
(7) 第9行的语句为“System.out.println("这是数字
"+num);”,程序运行时会在显示器上输出引号内所包含的内 容,包括“这是数字”和整数变量num所存放的值两部分内 容。 (8) 第11行的右大括号告诉编译器main() method到此处 结束。 (9) 第12行的右大括号告诉编译器class TestJava2_1到此 处结束。
// 输出字符串,这里用"+" 号连接变量 System.out.println("这是数字 "+num); System.out.println("我有 "+num+" 本书!");
第2章 简单的Java程序
输出结果:
这是数字3 我有3本书! 如果现在看不懂上面的这个程序也没有关系,先将它敲 进Java编辑器中,并存盘、编辑、运行,就可以看到上面的 输出结果。 从上面的输出结果中可以看出System.out.println()的作 用,就是输出括号内所包含的文字。至于public、class、 static、void这些关键字的含义,将在以后的章节中再做更深 入一层的探讨。
第2章 简单的Java程序
上面的程序定义了一个新的public类Test,这个类的原
始程序的文件名称应取名为 Test.java。类Test的范围由一对 大括号所包含。public是Java的关键字,指的是对于类的访 问方式为公有。需要读者注意的是,由于Java程序是由类所 组成的,因此在完整的Java程序里,至少需要有一个类。此 外,在Java程序中,其原始程序的文件名不能随意命名,必 须和public类名称一样,因此在一个独立的原始程序里,只 能有一个public类,但可以有许多non-public类。此外,若一 个Java程序中没有一个类是public,那么该Java程序的文件 名就可以随意命名了。
第2章 简单的Java程序
第2章 简单的Java程序
2.1 一个简单的例子
2.2 简单的Java程序解析
2.3 程序的检测 2.4 提高程序的可读性
第2章 简单的Java程序
2.1 一个简单的例子
下面来看一个简单的Java程序。 【例2-1】 TestJava2_1.java。
01 // TestJava2_1.java,java 的简单范例 02 public class TestJava2_1 03 { 04 05 06 07 08 09 10 11 12 } } public static void main(String args[]) { int num ; num = 3 ; // 声明一个整型变量 num // 将整型变量赋值为 3
第2章 简单的Java程序
2.2.2 大括号、段及主体 将类名称定出之后,就可以开始编写类的内容。左大括 号“{”为类的主体开始标记,整个类的主体至右大括号“}” 结束。每个命令语句结束时,必须以分号“;”作结尾。当某 个命令的语句不止一行时,必须以一对大括号“{}”将这些 语句包括起来,形成一个程序段(segment)或块(block)。下面 以一个简单的程序为例来说明什么是段与主体。若是暂时看 不懂TestJava2_2这个程序,也不用担心,后面陆续会讲到该 程序中所用到的命令。在下面的程序中,可以看到main() method的主体以左右大括号包围起来;for循环中的语句不 止一行,所以使用左右大括号将属于for循环的段内容包围起 来;整个程序语句的内容又被第3行与第13行的左右大括号 包围,这个块属于public类TestJava2_2所有。此外,应该注 意到每个语句结束时,都以分号作为结尾。
号分开。
第2章 简单的Java程序
2. 变量的数据类型
除了整数类型之外,Java的变量类型可以是整型(int)、 长整型(long)、短整型(short)、浮点型(float)、双精度浮点型 (double)等,除了这些数据类型外,还有字符型(char)或字符 串型(String)。关于这些数据类型,本书将在第3章进行详细 介绍。 3.变量名称 变量的名称可以依据个人的喜好来决定,但变量的名称 不能使用Java的关键字。通常用变量所代表的意义来取名 (如 num 代表数字)。当然也可以使用a、b、c等简单的英文 字母代表变量,但是当程序很大时,需要的变量数量会很多,
线(*/)结束。当注释内容超过一行时一般使用这种方法。
第2章 简单的Java程序
(3) 文档注释:是以单斜线加两个星型标记(/**)开头,
并以一个星型标记加单斜线(*/)结束。用这种方法注释的内 容会被解释成程序的正式文档,并包含进如javadoc之类的 工具生成的文档里,用以说明该程序的层次结构及使用方法。 2.2.5 Java中的标识符 Java中的包、类、方法、参数和变量的名字可由任意顺 序的大小写字母、数字、下划线(_)和美元符号($)组成,但 标识符不能以数字开头,不能是Java中的保留关键字。
第2章 简单的Java程序
【例 2-2】 TestJava2_2.java。
01 //TestJava2_2,简单的 java 程序 02 public class TestJava2_2 03 { 04 05 06 07 08 09 10 11 12 13 } for 循环所属的段 main() method 的主体 public 类 TestJava2_2 主体 } } Public static void main(String args[]) { int x; for(x=1; x<3; x++) { System.out println(x+“*”+x); System.out println(“=”+x*x);
输出结果:
1*1=1 2*2=4
第2章 简单的Java程序