1、 1前言学习网址 第一章 Java 语言基础1.指出 Java 语言的主要特点和 ava 程序的执行过程。答:强类型。编译和解释。自动无用内存回收功能。面向对象。与平台无关。安全性。分布式计算。多线程。2.说出开发与运行 Java 程序的主要步骤。答:安装 SUN 的 JDK,配置 classpath编写源文件。编译。运行。3.如何区分应用程序和小应用程序。答:应用程序必须在一类中定义一个 main()方法,该方法代表应用程序的入口。小应用程序不必定义 main()方法,但是必须继承 applet 类。4.说出 Java 源文件的命名规则。答:和类命名规则一样,首字母大写。5.选择一种上机环
2、境,参照实例,编写一个输出“hello world!”字样的 Java 程序。答:选择 SUN 的 IDE,用 UltraEdit-32 编写如下:2/HelloWorld.java/*这是第一个程序*author 饶林*see */class HelloWorldpublic static void main(String args) System.out.println(“Hello World!“);6.Java 用什么字符集?共有多少个不同的字符?答:Java 语言使用 Unicode 字符集,共有 65535 个字符。7.Java 语言标识符的命名规则是什么?答:由字母(包括英文字母
3、、下划线、美元字符、文字字符)和数字字符组成。限定标识符的第一个字符不能是数字。8.Java 有哪些基本的数据类型,它们的常量又是如何书写的?答:基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。它们是:整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型) 。9.指出下列内容那些事 Java 语言的整形常量,哪些是浮点数类型常量,那些两者都不是?1)E-4 2)A423 3)-1E-31 4)0xABCL 5).32E31 6)087 7)0x L8)003 9)0x12.5 10)077 11)11E 12)056L 13)0. 14).0答:整形常量:4,5,6
4、,8,10,12浮点型:1,3,9,13,14两者都不是:2,7,11第二章运算和语句1.Java 字符能参加算术运算吗?答:能,例如 char 类型 a 自加后变 b32.占字节多的变量能直接赋给占字节少的变量吗?答:不能,需强制类型转换。3.试用 Java 语言表达式描述以下数学计算式或逻辑条件:1)V=(4/3)*math.PI*math.pow(r,3);2)R=1/(1/R1+1/R2)原式3)y=x5+x3+6y=pow(x,5)+pow(x,3)+6;4)F=M1M2/R2F=M1 *M2 /R*R5) Math.sin(x) / ax + Math.cos(*x/2)0 ? M
5、ath.cos(*x/2) : - Math.cos(*x/2);6) 0 0 for(i = 1; i 这是第三个程序*author 饶林*see */import java.util.*;public class Praxis2_7public static void main(Stringargs)Scanner consoleScanner = new Scanner( System.in );System.out.print(“请输入正实数 X:“ );int x = consoleScanner.nextInt();int y=(int)(Math.sqrt(x);System.o
6、ut.println(“n = “+y);58.输入正整数 n 输出 n 行 n 列星号字符组成三角图案。/*这是第四个程序*author 饶林*see */import java.util.*;public class Praxis2_8public static void main(String args)Scanner consoleScanner = new Scanner(System.in);System.out.print(“请输入正整数 x:“ );int x = consoleScanner.nextInt();for(int y=0; y0; m-)System.out.p
7、rint(“ “);for(int n=0; n = 1);X=18,y=0;10.水仙花数是一个 n( = 3)位的数,它等于每个数字的 n 次幂之和。例如,153 是一个水仙花数,153=1 3+53+33,是编写一个程序,求小于 999 的所有水仙花数。/*这是第五个程序*author 饶林*see 6*/public class Praxis2_10public static void main(String args)int x,y,z;for(int m=100; m这是第六个程序*author 饶林*see */public class Praxis2_11public stat
8、ic void main(String args)for(int i=0;i这是第七个程序*author 饶林*see 7*/public class Praxis2_12public static void main(String args)int n=1000; /计算精度double e=1.0;for(int i=1;i这是第八个程序*author 饶林*see */import java.util.*;public class Praxis2_14 /输入整数,判断是否是回文整数public static void main(String args)int a=new int100;
9、int i=0;boolean b=true;Scanner consoleScanner = new Scanner( System.in );System.out.print(“请输入一个 int 型整数:“ );8int x = consoleScanner.nextInt();int test=x;while(test0) /把整数的各个位上的数存到数组里ai=test%10;test=test/10;i+;for(int j=0;j这是第九个程序*author 饶林*see */public class Praxis2_15public static void main(String
10、 args)int day,x1,x2;day = 5; x2= 0;while(day 0)x1 = (x2+1)*2;x2 = x1;day-;System.out.println(“共有“+ x2+“个桃子。“);System.out.println(“-“);for(int i=1; i0?“+“:“) + (b!=0?this.b + “i“ :“);return result;public Complex add(Complex val)Complex result = new Complex();result.a = this.a + val.a;result.b = this.
11、b + val.b;return result;12public class TestComplexpublic static void main(String args)Complex complex1 = new Complex(1.0,2.0);Complex complex2 = new Complex(2.0,3.0);System.out.println(complex1.add(complex2).Print();第四章数组和字符串1.举例说明如何声明、创建初始化数组。答:有三种方法。书 P69,不一一举例了。2.略3.一个数组能存储不同类型的元素吗?答:不能。4.编写一个 Ja
12、va 程序,形成以下形式的二维数组,并输出。解析:public class Arrypublic static void main(String args)int a = 1,2,9,10,25,4,3,8,11,24,5,6,7,12,23,16,15,14,13,22,17,18,19,20,21;for(int i=0; i“);String b = new String(““);System.out.println(a.concat(b);9.试利用 java.util.Date 类继承声明实现 MyDate 类。 。 。解析: 1410.略11.编写实现从两字符串找出最长的相同字符序
13、列的代码。解析:得到字符串 str1,str2 后,有一个为空则子列为空。如果都不为空,开始下面的步骤。求得两列的长度分别为 n1,n2。动态生 n2 行 n1 列矩阵(二维数组) 。取 str2 中每个元素(记位置为 i)与 str1 中元素(记位置为 j)逐个比较,如果相等则为矩阵中相应行列坐标的元素赋值为 1,否则为 0(可用循环嵌套完成) 。比如 str1(abc0cbad) str2(cba1abc)两串的话,可以得到如图所示矩阵。然后,不难看出,要进行如下步骤。定义 strax,用来记录最大子列中元素个数。定义数组 ln2,用来记录最大子列的首字符地址(因为可能有不同最大子列,故用
14、数组,而不是单个变量) 。判断矩阵中每一个元素,是否为 1,如果是则记下此时行地址到 l 数组,然后判断相对于这个元素的下一行下一列的元素是否为 1,如果是则继续判断,一直到为 0。记下此次判断(即一个 while 循环)中“1”的个数 n,存入变量 strax。对于矩阵中的每一个元素都这么判断,如果判断中 n 的值大于 strax 那么把 n 付给strax,同时把这个子列的首地址付给 l0,l0 后面的元素全赋值为 -1。如果,某次判断得到的 n 与 strax 相同,即有相同最大子列,那么把它的首地址存入 l 数组的下一个位置。当这个矩阵的每一个元素都判断完毕后,会得到 strax,和数
15、组 l,然后用循环做如下输出过程: 依次以 l 数组中的每个元素为首地址,输出 str2 字符串中以相应序号开头的 strax个字符,那么完成所有最大子列的输出。 例子:输入:aabcbcbbcabcbac输出:abcb public class test1public static void main(String args)int max = 0;int current = 0;String str1 = new String(“aabcbcb“);String str2 = new String(“bcabcbac“);int len1 = str1.length();int len2
16、= str2.length();int arr;arr = new intlen1len2;/初始化数组for(int i= 0; i Welcome to “;System.out.println(“原来为:“ + s);s= s.trim();s = s.replaceAll(“s+“,“#“);String ss = s.split(“#“);System.out.print(“替换后:“ );16for(int i=0;i*/7.创建一个有文本框和三个按钮的程序当按下某个按钮时使不同的文字显示在文本框中。解析:import java.awt.*;import javax.swing.
17、*;import java.awt.event.*;public class Praxis5_7public static void main(String args)ButtonDemo buttondemo = new ButtonDemo();class ButtonDemo extends JFrame implements ActionListenerJTextField text;JButton button1,button2;ButtonDemo() super(“Praxis5_8“);Container con=this.getContentPane();setLayout(
18、new FlowLayout();text=new JTextField(10);18button1 = new JButton(“raoliv“);button2 = new JButton(“欢迎来到 “);button1.addActionListener(this);button2.addActionListener(this);con.add(text);con.add(button1);con.add(button2);setSize(300,200);setVisible(true);public void actionPerformed(ActionEvent e)if(e.g
19、etSource() = button1)text.setText(button1.getLabel();else if(e.getSource() = button2)text.setText(button2.getLabel();8.编写一个有两个文本狂的小应用程序,在第一个文本框输入英文单词,第二个文本框自动显示汉语解释,或在第一个文本框输入单词,第二个文本框显示英语。解析:只增加了一个单词 raoliv-饶林 饶林-raoliv 可以多写几个.。import java.awt.*;import javax.swing.*;import java.awt.event.*;public c
20、lass Praxis5_8public static void main(String args)MyWindow a = new MyWindow();a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class MyWindow extends JFrame implements ActionListenerJTextField text1,text2;JLabel label;MyWindow() super(“Praxis5_8“);setLayout(new FlowLayout();text1 = new JTextField(10
21、);text2 = new JTextField(10);text2.setEditable(false);label = new JLabel(“输入字符:“);19this.getContentPane().add(label);this.getContentPane().add(text1);this.getContentPane().add(text2);text1.addActionListener(this);setSize(400,100);setVisible(true);validate();public void actionPerformed(ActionEvent e)
22、String word = text1.getText();if(word.equals(“raoliv“)text2.setText(“饶林“);else if(word.equals(“饶林“)text2.setText(“raoliv“);elsetext2.setText(“没有找到“);9.编写一个有标签、有文本框、文本区和两个按钮的小应用程序。 , , ,import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Praxis5_9public stat
23、ic void main(String args)MyWindow a = new MyWindow();a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class MyWindow extends JFrame implements ActionListenerJLabel label;JTextField text;JButton button1,button2;JTextArea textArea;JPanel pan1,pan2;MyWindow()super(“Praxis5_9“);setSize(300,300);setLayou
24、t(new FlowLayout();20label = new JLabel();text = new JTextField(15);textArea = new JTextArea(10,10);button1 = new JButton(“SUM“);button2 = new JButton(“AVG“);pan1 = new JPanel();pan2 = new JPanel();JScrollPane jsp = new JScrollPane(textArea);jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICA
25、L_SCROLLBAR_ALWAYS);jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);getContentPane().add(jsp);getContentPane().add(button1);getContentPane().add(button2);getContentPane().add(label);getContentPane().add(text); button1.addActionListener(this);button2.addActionListene
26、r(this);setVisible(true);validate();public void actionPerformed(ActionEvent e)String s = textArea.getText();StringTokenizer t = new StringTokenizer(s,“n,;. “);int n = t.countTokens();int a = new intn;for(int i = 0; i n; i+)ai = Integer.parseInt(t.nextToken();if(e.getSource() = button1)label.setText(
27、“输入数的和为:“);int sum = 0;for(int i = 0; i n; i+)sum = sum+ ai;text.setText(“ + sum);elseif(e.getSource() = button2)label.setText(“输入数平均值为:“ );int sum = 0;for(int i = 0; i n; i+)sum = sum+ ai;21text.setText(“ + sum/n);10.布局如下:import java.awt.*;import javax.swing.*;public class Praxis5_10public static v
28、oid main(String args)window win=new window();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class window extends JFrameJScrollPane jsp1,jsp5;JPanel panel2,panel3,panel4,panel6;JTextArea jsp1_Text,jsp5_Text;JLabel panel2_Label;JTextField panel2_Field;JPanel panel3_p1,panel3_p2,panel4_p1,panel4_p2
29、,panel4_p3,panel6_p1,panel6_p2,panel6_p3;JButton panel4_b1,panel4_b2;window()super(“Praxis5_10“);setSize(600,120);setLayout(new GridLayout(2,3);setVisible(true);jsp1_Text=new JTextArea(“文本区(带滚动条) “); JScrollPane jsp1=new JScrollPane(jsp1_Text);panel2=new JPanel();panel2_Label=new JLabel(“标签“) ;panel
30、2_Field=new JTextField(“文本框“) ;22panel3=new JPanel();panel3_p1=new JPanel();panel3_p2=new JPanel();panel4=new JPanel();panel4_b1=new JButton(“按钮“);panel4_b2=new JButton(“按钮“);panel4_p1=new JPanel();panel4_p2=new JPanel();panel4_p3=new JPanel();jsp5_Text=new JTextArea(“文本区(带滚动条) “);JScrollPane jsp5=n
31、ew JScrollPane(jsp5_Text);panel6=new JPanel();panel6_p1=new JPanel();panel6_p2=new JPanel();panel6_p3=new JPanel();jsp1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);jsp5.setVerticalScrollB
32、arPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp5.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);panel2.setLayout(new GridLayout(2,1);panel2.add(panel2_Label);panel2.add(panel2_Field);panel3.setLayout(new GridLayout(1,2);panel3_p1.setBackground(Color.BLACK);
33、panel3_p2.setBackground(Color.BLUE);panel3.add(panel3_p1);panel3.add(panel3_p2);panel4.setLayout(new GridLayout(1,3);panel4_p1.setLayout(new GridLayout(2,1);panel4_p1.add(panel4_b1);panel4_p1.add(panel4_b2);panel4_p2.setBackground(Color.BLUE);23panel4_p3.setBackground(Color.BLACK);panel4.add(panel4_
34、p1);panel4.add(panel4_p2);panel4.add(panel4_p3);panel6.setLayout(new GridLayout(1,3);panel6_p1.setBackground(Color.RED);panel6_p2.setBackground(Color.GREEN);panel6_p3.setBackground(Color.orange);panel6.add(panel6_p1);panel6.add(panel6_p2);panel6.add(panel6_p3);add(jsp1);add(panel2);add(panel3);add(p
35、anel4);add(jsp5);add(panel6);validate();第六章图形界面设计(二)1.设计一个面板,该面板中有四个运动项目选择框和一个文本区。当某个选择项目被选中时,在文本区中显示该选择项目。解析:选多个import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;class panel extends JPanelJCheckBox box1,box2,box3,box4,box5;/ButtonGroup g;JTextArea text;panel()setLayo
36、ut(new GridLayout(1,6);/g = new ButtonGroup();box1 = new JCheckBox(“高丽华“);box2 = new JCheckBox(“饶林“);box3 = new JCheckBox(“谌凯“);box4 = new JCheckBox(“韩伟虎“);box5 = new JCheckBox(“梁继杰“);24text = new JTextArea(5,5);/g.add(box1);g.add(box2);g.add(box3);g.add(box4);g.add(box5);add(box1); add(box2); add(b
37、ox3);add(box4);add(box5);add(text);class MyWindow extends JFrame implements ItemListenerpanel panel1;MyWindow()super(“Praxis6_1“);Container con = this.getContentPane();con.setLayout(new FlowLayout();setSize(400,100);panel1 = new panel();add(panel1);panel1.box1.addItemListener(this);panel1.box2.addIt
38、emListener(this);panel1.box3.addItemListener(this);panel1.box4.addItemListener(this);panel1.box5.addItemListener(this);setVisible(true);pack();public void itemStateChanged(ItemEvent e)if(e.getItemSelectable()= panel1.box1)panel1.text.append(“高丽华“+ “n“);else if(e.getItemSelectable()= panel1.box2)pane
39、l1.text.append(“饶林“+ “n“);else if(e.getItemSelectable()= panel1.box3)panel1.text.append(“谌凯“+ “n“ );else if(e.getItemSelectable()= panel1.box4)panel1.text.append(“韩伟虎“+ “n“ );else if(e.getItemSelectable()= panel1.box5)panel1.text.append(“梁继杰“+ “n“ );public class Praxis6_1public static void main(Stri
40、ng args)MyWindow win = new MyWindow();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);252. 设计一个面板,该面板中有四个运动项目单选框和一个文本框。当某个选择项目被选中时,在文本框中显示该选择项目。解析:只能选一个,按上一题,先把注释填上,然后修改如下。public void itemStateChanged(ItemEvent e)if(e.getItemSelectable()= panel1.box1)panel1.text. setText (“高丽华);else if(e.getItemS
41、electable()= panel1.box2)panel1.text. setText (“饶林“);else if(e.getItemSelectable()= panel1.box3)panel1.text. setText (“谌凯“);else if(e.getItemSelectable()= panel1.box4)panel1.text. setText (“韩伟虎“);else if(e.getItemSelectable()= panel1.box5)panel1.text. setText (“梁继杰“);3.略4. 设计一个窗口,取默认布局 BorderLayout
42、布局。北面添加一个列表,列表有 4门课程选项。中心添加一个文本区,当选择列表中的某门课程后,文本区显示相应课程的介绍解析:import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;class window extends JFrame implements ListSelectionListenerJList list;JTextArea textArea;String names=“C+“,“JAVA“,“马哲“,“法基“;Strin
43、g times=“好学的课“,“ 好学的课“,“无聊的课“,“无聊的课“ ;window()super(“Praxis6_4“);textArea=new JTextArea(5,10);26list=new JList(names);list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);list.addListSelectionListener(this);textArea.setBackground(Color.GREEN);add(list,BorderLayout.NORTH);add(textArea,BorderLay
44、out.CENTER);setBounds(50,50,400,200);setVisible(true);validate();public void valueChanged(ListSelectionEvent e)JList listValue=(JList)e.getSource();int i=listValue.getSelectedIndex();textArea.setText(“+namesi);textArea.append(“+timesi+“开课“);public class Praxis6_4public static void main(String args)w
45、indow win=new window();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);5.略了吧。 。 。自己改改。6. 设计一个 JFrame 窗口,窗口中心添加一个文本区。另添加 4 个菜单,每个菜单都有菜单项,每个菜单项都有对应快捷键,选择某个菜单项时,窗口中心的文本区显示相应信息。解析:仿记事本。import java.util.*;27import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;class
46、 MyWindow extends JFrame implements ActionListenerJMenuBar menubar;JMenu menu1,menu2,menu3,menu4;JMenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9;JTextArea text;MyWindow()super(“Praxis6_6“);setSize(500,500);menubar = new JMenuBar();menu1 = new JMenu(“文件(F)“);menu2 = new JMenu(“编辑(E)“)
47、;menu3 = new JMenu(“查看(V)“);menu4 = new JMenu(“帮助(H)“);item1 = new JMenuItem(“新建(N)“);item2 = new JMenuItem(“打开(O)“);item3 = new JMenuItem(“保存(S)“);item4 = new JMenuItem(“退出(X)“);item5 = new JMenuItem(“全选(A)“);item6 = new JMenuItem(“时间/ 日期(F5)“);item7 = new JMenuItem(“状态(S)“);item8 = new JMenuItem(“
48、帮助主题(H)“);item9 = new JMenuItem(“关于(A)“);text = new JTextArea();menu1.setMnemonic(KeyEvent.VK_F);menu2.setMnemonic(KeyEvent.VK_E);menu3.setMnemonic(KeyEvent.VK_V);menu4.setMnemonic(KeyEvent.VK_H);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menubar.add(menu4);menu1.add(item1);menu1.add(item2);menu1.add(item3);menu1.add(item4);menu2.add(item5);menu2.add(item6);menu3.add(item7);menu4.add(item8);menu4.add(i