搜档网
当前位置:搜档网 › java程序设计教案

java程序设计教案

java程序设计教案
java程序设计教案

课程教案

(理论教学)

课程名称:Java程序设计

课程类型:( 2 )1、必修;2、选修;3、其它授课对象:专业(本科)级班授课时间:至学年第学期

计划学时:学时(其中:理论,实验:)任课教师:

所属学院:

课程管理部门(教研室):

大理学院教务处制

课程名称:Java程序设计

教材:Java程序设计教程

讲授人:专业技术职务:讲师

学历:研究生学位:硕士讲授题目:

所属章节:计划学时:

教学目的和要求:

教学重点:

教学难点:

教学方法:

使用教具

第一章Java语言简介

教学目的要求

了解Java的基本特点和用途

掌握如何下载Java SDK软件包

了解设置Java程序的开发环境SDK

如何运行Java程序

了解Java的概貌

主要内容

Java语言的发展历程;

Java语言的特点;

Java语言的开发工具;

Java应用程序和小程序;

Java程序的注释方法;

写Java程序的风格规范。

重点内容

Java语言的特点;

Java语言的开发工具;

Java应用程序和小程序;

难点内容

课时分配

1课时

教学方法

讲授法、演示法、对比法

讲授内容提要

1.1 Java语言的发展简介

1991年Sun Mircosystem 公司成立了一个Green项目开发小组,Jame Gosling 为组长;设计Java 采用虚拟机代码(Virtual Machine Code),即.class文件,它通过解释器运行;1995年5月Sun Mircosystem 公司对外正式发布Java1.0;

Java2 用途:适用于各种应用开发,尤其是网络应用,网络服务和嵌入式系统。

1.2 Java语言的特点

1.简单性

2.面向对象

3.网络适用性

4.健壮性

5.安全性

6.平台无关性

7.可移植性

8.解释型

9.高性能

10.多线程

11.动态性

12.丰富的类库

13.嵌入浏览器运行

1.3 Java类库的概念

1.4 网络浏览器

1.5 Java开发工具

NetBeans:这个集成环境可以方便地进行程序的编辑、编译、生成和运行。

J2sdk : http:// https://www.sodocs.net/doc/2d3690020.html,免费下载;

Visual J++ 6.0 / 8.0:VJ++还吸收了VB集成开发环境IDE的特征,是一个强有力的Java程序开发工具。

Jcreator

Eclipse (MyEclipse)等

1.6 Java程序的分类

基于控制台的应用程序;

基于浏览器运行的小程序applet。

小程序与应用程序的区别是:小程序必须依赖一个HTML文件和支持Java的网络浏览器。

老师演示小程序和applet程序

应用程序举例( 程序1-1 ):

public class hello {

public static void main (String args[ ]) {

System.out.println ("Hello Java !");

}

}

小程序举例( 程序1-2 ):

import java.awt.Graphics; // 注意该行的含义

import java.applet.Applet;

public class sayhello extends Applet {

public void paint (Graphics g ) {

g.drawString ("Hello Java !",35,30);

}

}

小程序对应的HTML文件:

height=100 width=200>

1.7 对Java程序的解释

1.8 编写Java程序的风格要求

课堂练习:

请编写一个应用程序输出你自己的学号和姓名

课外练习(作业):

下载并安装J2SDK;

设置系统环境变量

下载并安装MyEclipse

熟悉MyEclipse的开发环境

第2章数据类型、运算符和表达式

教学目的要求

掌握字符常量和符号表示的常量的概念和应用

掌握整形、浮点型、字符型和布尔型变量的概念和应用

掌握数据的概念

理解参数传递方式

学会逻辑运算符、算术运算符和位运算符的使用方法

主要内容

常量:包括字面常量和符号表示的常量;

变量:整形、浮点型、字符型和布尔型;

数组:Java的数组属于类类型;

参数传递方式;

运算符:包括逻辑运算符、算术运算符和位运算符等;

重点内容

整形、浮点型、字符型和布尔型变量的概念和应用;

符常量和符号表示的常量的概念和应用

难点内容

参数传递方式

课时分配

2课时

教学方法

讲授法、演示法、对比法、实验验证法

讲授内容提要

2.1 常量

整形常量:采用八进制、十进制、十六进制表示,但不能采用二进制表示,和C/C++中的一样。

浮点常量:采用十进制或科学记数法表示。在缺省情况下一个浮点数是double型。

布尔常量:true和false,它们不是数,不能进行算术运算。

字符常量:与C/C++中的表示类似。

字符串常量:Java中字符串常量是对象。

2.2 变量

变量的命名原则是:以字母(’a’…’z’和’A’…’Z’)、下划线(‘_’)和‘$’符号开头的,由字母、数字(’0’…’9’)、下划线和‘$’构成的一个符号序列。

例如,a,_a,NameOfStudent,$10均是合法变量名,而-a和9a是非法变量名。关键字不能用作变

量名( 见表2-1 )

注意:Java对变量是区分大小写.

2.2.1 整形类型的变量

字节(byte)型,8个位。

短整形(short),占16个位。

整形( int ),占32个位。

长整形( long int ),占64个位。

Java中的整形最值均有符号。例如程序2-1测试最值:

public class Test_Int { // 程序2-1 测试整形变量的最值

public static void main(String [ ] args){

System.out.println(Byte.MAX_V ALUE );

System.out.println(Byte.MIN_V ALUE );

System.out.println(Short.MAX_V ALUE );

System.out.println(Short.MIN_V ALUE );

System.out.println(Integer.MAX_V ALUE );

System.out.println(Integer.MIN_V ALUE );

System.out.println(Long.MAX_V ALUE );

System.out.println(Long.MIN_V ALUE);

}

}

注意:byte、short、int、long是原子类型,而Byte、Short、Integer和Long分别是四种原子类型对应的类类型。

2.2.2 字符类型变量

Java字符量的长度为16个位,表示范围是从‘\u0000’到‘\uffff’即从0 到65535;Character是char类型对应的类类型;

最大值Character.MAX_V ALUE ;

最小值Character.MIN_V ALUE ;

2.2.3 浮点类型变量

分类:float和double。

Float 、Double 是对应的类类型;

Float.MAX_V ALUE、Float.MIN_V ALUE是最值。

Float.POSITIVE_INFINITY 和

Float.NEGATIVE_INFINITY是正/负无限大。

2.2.4 布尔类型变量

boolean变量取值:true和false ;

true和false不能转换成任何数值表示,true不是1,false也不是0 。

2.2.5 原子类型变量的生存空间

一个变量的生存空间是由两个大括号决定的范围。下列写法在C/C++中是正确的,但在Java中是错误的( 注意)。

{

int x=1;

{

int x=0; // 错误

}

}

2.3 变量赋值问题

如果类中定义的原子类型变量,未给出初值,那么它们将有缺省值:byte、short、int 和long变量的缺省值是0;char 、float、double和boolean变量的缺省值分别是’\u0’、0.0f、0.0d和false。

方法内定义的局部变量,应当对其赋值,否则无法通过编译。例如:

// 程序2-4

class Test { // 定义一个类

int Value; // 类中的变量未赋值,缺省就是0

}

public class Test_Var{

public static void main(String [ ] args) {

int x=100; // 必须赋值,否则无法通过编译

Test obj=new Test( ); // 对象赋值

System.out.println( obj.Value +" "+x);

}

}

2.4 数组

Java数组是系统定义类Array 的子类;

数组的分类同C/C++:一维和多维。

2.4.1 一维数组

定义数组的格式:int a[ ] ;或int[ ] a ;其值是null ;

在定义数组时不能指定大小。a仅是一个引用,代表一个数组名,但没有对应的空间。

产生数组空间的方法有两种:

在定义时直接赋值:int a[ ]={1,2,3};

通过new分配空间: int a[ ]=new int[10];

public class Test_Array{

public static void main(String [ ] args){

int a[ ]={1,2,3}, b[ ];

b= a ;

for(int i=0;i<3;i++) b[ i ]++;

for(int i=0;i<3;i++) System.out.println(a[i]);

}

}

public class Test_Array{

public static void main(String [ ] args){

int a[ ]={1,2,3}, b[ ];

b = new int[6];

System.out.println( “b数组长度= ”+ b.length);

for(int i=0;i

}

}

注意:(1)获得数组元素的个数:数组名.length;

(2)一个整形数组若仅仅采用new分配空间,而没有对其赋值,那么每个元素的值是0

注意:Java数组名是一个引用,当将一个数组名赋值给另一个数组时,实际上是名字的复制

2.5 Java中的参数传递方式

Java的参数传递的形式有两种:基本类型按值传递,对象类型按引用传递;

通过return语句从方法中返回时,基本类型总是以值的方式返回,而对象总是以引用方式返回。例如程序2-8 :

class test{ int x; }

public class Test_Paras {

static test fun(test o,int y){

o.x=20;

y=1;

return o;

}

public static void main(String [ ] args){

test obj1 , obj2;

int Val = 3;

obj1=new test( ) ;

obj1.x=100;

obj2=fun(obj1,V al);

System.out.println(obj1.x+" "+ obj2.x+" "+Val);

}

}

2.6 Java的运算符

主要包括:

算术运算符、关系运算符、逻辑运算符、位运算符和三元条件运算符。

2.6.1 算术运算符

算术运算符:+、-、*、/、%、++和--,与C/C++基本相同。

%运算符不但可以对整形数据运算,而且可以对浮点型数据运算。

例如:3.14 % 2.5的值约等于0.64 ;

隠式数据类型转换:

当整型与浮点型数据进行混合运算时,表达式中的数据类型会进行相应的自动转换,规则为:byte->short->int->long->float->double。

这种转换规则也适应于赋值语句,当赋值符左右两侧变量类型不一致时,只要转换过程中不丢失数据,便进行自动转换。

class number { int x; }

public class relationalOperator{

public static void main(String args[ ]){

number n1,n2;

n1=new number( ); n2=new number( );

n1.x=1; n2.x=1;

if(n1.x==n2.x)

System.out.println("对象的数据成员x相等!");

if(n1==n2)

System.out.println("n1和n2是一个对象!");

else

System.out.println("n1和n2不是一个对象!");

}

}

2.6.2 关系运算符

关系运算符不能同其它类型的变量一同参与运算,例如假设a,b,c是三个整形的变量,那么a=b==c 是正确OR 错误?;

关系运算符用于对象时,是判别两个引用是否代表同一个对象。而不是判断两个引用所指向的对象是否同属一个类。

2.6.3 逻辑运算符

逻辑运算符有&&、|| 和!,分别是与、或和非。运算结果是true或false;

逻辑运算有求值“短路”现象,例如程序2-11 :

public class shortCut {

static boolean testOne(int x){

System.out.println(x+" < "+1+" " + (x<1) );

return x < 1;

}

static boolean testTwo(int x){

System.out.println(x+" < "+1+" " +(x<2));

return x < 2;

}

public static void main(String [ ] args){

if (testOne(6) && testTwo(1))

System.out.println("表达式为真");

else

System.out.println("表达式为假");

}

}

2.6.4 位运算符

位运算符:&、|、^、~、<<、>>,分别称为位与、或、异或、左移、右移;

Java引入一个专门用于逻辑右移运算符>>>,它采用了所谓的零扩展技术,不论原值是正或负,一律在高位补0。例如:

int a= - 2 , b ;

b=a>>>30;

2.6.5 三元条件运算符

语法格式:(exp)? (exp1) :(exp2) ;

Java要求:(exp1)与(exp2)必须同类型。

2.6.6 “+”运算符

Java对“+”进行了重载,可以将任何类型的对象(包含原子类型)转化为String类型。例如:int x=1;

char ch='A';

double d=9.8;

System.out.println("Result: "+x+ch+9.8);

课堂练习:

课外练习(作业):

P32 3、4、6题。

第3章控制语句

教学目的要求

了解Java程序的结构,学习使用各种语句结构来控制程序的流程,完成程序的功能任务。主要内容

Java的分支语句;

循环控制语句;

break和continue语句;

带标号的break和continue语句。

重点内容

Java的分支语句;

循环控制语句;

break和continue语句;

难点内容

循环控制语句;

break和continue语句;

课时分配

3课时

教学方法

讲授法、演示法、对比法、实验验证法

讲授内容提要

3.1 分支语句

if-else语句;

switch-case语句。

3.1.1 if 语句

if语句的语法格式同C/C++;

条件表达式必须是布尔类型,例如:

下面的写法在C/C++中是合法的,但在Java中却是非法的:

int i=10;

if ( i )

...

程序3-1描述了用applet从文本框获取数据,然后将比较的结果显示出来。

// 程序3-1

import java.awt.*;

import java.applet.*;

public class compareNumbers extends Applet{

Label lab1,lab2;

TextField input1,input2;

int num1,num2;

public void init( ) {

lab1=new Label("输入第1个整数");

input1=new TextField(10);

lab2=new Label("输入第2个整数");

input2=new TextField(10);

add(lab1);

add(input1);

add(lab2);

add(input2);

}

public boolean action(Event e , Object o) {

if (e.target==input1 || e.target==input2) {

num1=Integer.parseInt(input1.getText( ));

num2=Integer.parseInt(input2.getText( ));

if(num1

showStatus(num1 + " < " + num2);

else if (num1>num2)

showStatus(num1+" > "+num2);

else showStatus(num1+" == "+num2);

}

return true;

}

}

3.1.2 switch 语句

switch语句的语法结构同C/C++;

switch后面的表达式类型必须是字符类型或整形;

case后面的常量不能重复;

程序3-3采用小程序实现将学生的百分制成绩转换为优、良,中、及格和不通过五个等级:// 程序3-3

import java.awt.*;

import java.applet.*;

public class scoreConvert extends Applet{

Label prompt;

TextField input;

int Excellent,Good,Middle,Pass,Failure;

public void init( ) {

prompt=new Label("输入成绩");

input=new TextField(2);

add(prompt);

add(input);

}

public void paint(Graphics g) {

g.drawString("各等级的人数:",25,40);

g.drawString("优秀: "+Excellent,25,55);

g.drawString("良好: "+Good,25,70);

g.drawString("中等: "+Middle,25,85);

g.drawString("及格: "+Pass,25,100);

g.drawString("不通过: "+Failure,25,115);

}

public boolean action(Event e , Object o) {

int score=Integer.parseInt(input.getText( ));

showStatus(""); input.setText("");

switch(score/10) {

case 10:

case 9: Excellent++; break;

case 8: Good++; break;

case 7: Middle++; break;

case 6: Pass++; break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: Failure++; break;

default: showStatus("输入有误,重新输入!");

}

repaint( );

return true;

}

}

程序3-3需要注意的地方

在action()方法中调用的repaint( )方法,是一个系统方法,它具有自动调用paint( )方法的能力,从而实现对网页的刷新。

3.2 循环控制语句

Java中的循环控制语句有三种,分别是:while,do-while和for语句;

循环体内的语句会反复执行,直到控制布尔表达式的值变为false为止。

3.2.1 while语句

while语句格式:

while ( Boolean-Expression )

StatementS

程序示例3-4 略

3.2.2 do-while语句

do-while语句的语法格式如下:

do{

Statement

}while (Boolean-Expression ) ;

程序3-5 如下:

// 产生一个大于0.9的随机数为止

public class GenerateDoubleNumbers {

public static void main(String args[ ]){

double d;

do{

d=Math.random( );

System.out.println(d);

}while (d<0.9);

}

}

3.2.3 for语句

for语句语法格式如下:

for ( ForInitopt ; Boolean-Expression ; ForUpdateopt )

Statement

// 程序3-6输出一个*三角形

public class printGraphics extends Applet{

public void paint(Graphics g) {

int xpos,ypos=0;

for(int row=6;row>=1;row--) {

xpos=25;

ypos+=15;

for(int column=1;column<=row;column++) {

g.drawString("*",xpos,ypos);

xpos+=7;

}

}

}

}

3.3 break语句和continue语句

3. 3.1 不带标号的break语句和continue语句

break语句可以跳出包含它的最内层的循环,不再执行剩余的语句;

continue语句停止执行当前的循环,回到循环处,开始执行下一轮的循环。这些特性和C/C++的功能一样。

for( int i=1;i<10;i++)

{

if(i%3==0)

continue;

else

System.out.println("i = "+i);

}

for( int i=1;i<10;i++)

{

if(i%3==0)

break;

else

System.out.println("i = "+i);

}

课堂练习:

1、仔细分析下面程序,写出程序的最终运行结果。

public class s_switch {

public static void main(String args[])

{

int ch=8;

int r=10;

switch(ch-1){

case 7: r=r+3;

case 8: r=r+5;

case 9: r=r+6; break;

default: ;

}

System.out.println("r="+r);

}

}

2、随机产生26个英文字母a~z,直到大于u为止。用while和for语句实现。

课外练习(作业):

P44 1—4

第4章Java的类

教学目的要求

理解面向对象编程的基本概念

了解类的封装方法

如何创建类和对象

了解成员变量和成员方法的特性

学习使用OOP方式进行程序设计

深刻理解类的继承性和多态性

主要内容

类的定义和使用;

方法的定义和使用;

实例变量和局部变量;

构造方法;

方法的覆盖和重载;

关键字this的用法;

继承的概念和应用;

组合与继承;

抽象方法和抽象类;

对象类型转换;

访问权限限制符:public、private、protected。

重点内容

类的定义和使用;

方法的定义和使用;

构造方法;

方法的覆盖和重载;

关键字this的用法;

继承的概念和应用;

组合与继承;

抽象方法和抽象类;

对象类型转换;

难点内容

构造方法;

方法的覆盖和重载;

继承的概念和应用;

组合与继承;

抽象方法和抽象类

课时分配

8课时

教学方法

讲授法、演示法、对比法、实验验证法、学生讨论法

讲授内容提要

4.1 类与对象

在Java程序中,除原子类型的变量以外都是对象,连Java程序本身也不例外。

类是面向对象程序设计的基础,OO始终是围绕着对象的封装性、继承性和多态性展开讨论的。

4.1.1 类与对象的区别

类是一个抽象的概念,对象是一个具体的概念。

类是在一组对象的基础上,通过抽象和概括获得的一个概念。

对象是由数据和方法紧密结合的一个封装体,具有信息隐藏的能力。

对象可以通过方法(函数)与其它对象进行通信,但并不知道这些方法的实现细节。

4.1.2 Java和C编程思想的区别

C是结构化的编程语言,以函数为编程单元,程序员把注意力集中在编写函数上。

Java是面向对象的编程语言,以类为编程单元,程序员的精力集中在对类的设计上。

对象将实例变量(instance variable)和对数据的操作(即方法)约束在一起,类似一个独立的程序,易于扩充,易于维护,代码可复用。

4.1.3 如何定义类

类是对象的模板,它定义了对象的结构和操作数据的方法。

public class Sayhello extends Applet {

public void paint (Graphics g ) {

int xPos=35;

int yPos=30;

g.drawString ("Hello Java !",xPos,yPos);

}

}

定义类的通用格式如下:

class className extends superClassName{

type instance-vairbale1;

return-type methodName1( parameter-list){

method-body;

}

}

public class Hello {

public static void main (String args[ ]) {

System.out.println ("Hello Java !");

}

}

系统类Object是整个类层次结构中的根。

如果我们要定义Object的子类,可以不指明extends Object,默认情况下一个类就是Object类的子类。类内定义的变量称为实例变量,函数称为方法;

Java将类的定义和类的实现放在一起,便于系统维护。例如:

class point { // Object类的子类

int x , y;

void init(int a, int b ){

int i=0;

x=a; y=b;

}

}

4.1.4 对象和引用

对象是客观存在的变量,对象的引用就是对象的名字,例如:Point p1;

创建对象:p1=new Point( );

一个对象可以有多个别名; p2=p1;

将一个变量设置为null,表明该变量不代表任何对象: p1 = null ;

每个对象都有自己的变量,改变一个对象的实例变量并不影响到另外一个对象。例如:

class Point { // 程序4-1

int x , y;

void init(int a, int b ){

x=a; y=b;

}

}

public class TwoPoint{

public static void main(String [ ]args){

Point p1= new Point ( ), p2= new Point ( );

p1.x=10; p1.y=20;

p2.x=30; p2.y=40;

System.out.println("x = "+ p1.x +" y= "+p1.y);

System.out.println("x = "+ p2.x +" y= "+p2.y);

}

}

4.2 方法

方法是一个功能模块,类似C中的函数;

方法和实例变量都必须定义在类内,方法是类的功能接口;

定义方法的原则:方法应当只执行单一的任务,并且方法名能有效地表达该任务;

方法的返回值类型、方法名和参数表共同称之为方法的特征。

调用方法的格式:引用. 方法名(参数表);

例如:

Point p1=new point( ),p2=new point( );

Point p3=p2;

p1.init(10,20); //仅对p1对象的x和y进行赋值

p2.init(30,40); //仅对p2对象的x和y进行赋值

对象是客观存在的变量,对象的引用就是对象的名字,例如:point p1;

创建对象:p1=new point( );

一个对象可以有多个别名; p2=p1;

将一个变量设置为null,表明该变量不代表任何对象: p1 = null ;

每个对象都有自己的变量,改变一个对象的实例变量并不影响到另外一个对象。

4.3 实例变量和局部变量

class Loc { // 程序4-2

int x=1; // 实例变量

void printLocVar( ){

int x=25; // 局部变量

System.out.println("\n x is :"+x);

++x;

System.out.println(" x is :"+x);

}

void printInstanceVar( ){

System.out.println("\n x is :"+x);

x*=10; System.out.println(x is :"+x);

}

}

public class TestInstanceVar { // 程序的主类

public static void main(String args[ ]){

loc obj=new Loc( );

int x=5; // 局部变量x

System.out.println(" x is :"+x);

obj.printLocVar( );

obj.printInstanceVar( );

System.out.println(" x is :"+x);

}

}

4.3 实例变量和局部变量

Java中的变量分为两种:类内定义的实例变量,方法中定义的局部变量。

在同一个作用域内,不允许定义两个同名的局部变量。

局部变量可以掩盖实例变量。

实例变量属于对象,它描述了对象的属性,随着对象的存在而存在;

局部变量是随着方法的调用而存在,一旦方法调用结束,局部变量也就消亡了。

4.4 构造方法

构造方法的功能是在创建对象时初始化对象的实例变量;

讨论:构造方法的特点:

无返回值,无void

方法名与类名相同

仅在创建对象时调用

class point { // 程序4-3

int x, y;

point(int a, int b){

x=a; y=b;

}

}

public class createPoint {

public static void main(String args[ ]){

point p= new point(10,20);

System.out.println(p.x +" "+p.y);

}

}

如果类中没有定义构造方法,编译器会自动创建一个缺省的、不带参数的构造方法。

构造方法是在对象创建之后,new操作完成前被调用的。

4.5 方法重载

方法重载是在一个类中定义二个或多个同名的方法,但方法的参数个数或类型不完全相同;例如:class point {

int x, y;

point(int a, int b){ x=a; y=b; }

point( ){ x=-1; y=-1; }

point(double a, int b){ x=(double)a; y=b;}

}

方法重载的一个误区:是靠返回值区别重载,即定义多个方法,它们的名称和形参类型完全相同,但返回值不同,这是不允许的;

4.6 关键字this

this指代对象,是对当前对象的一个引用。例如:

class IntVector { // 程序4-6

int v[ ];

boolean equals(IntVector other) {

if (this == other) return true;

return false;

}

}

class testIntVector {

public static void main(String args[ ]){

IntVector t1=new IntVector( ),

t3=new IntVector( ), t2=t1;

System.out.println(t1.equals(t2));

System.out.println(t3.equals(t2));

}

}

Java中的级连调用,仍是指代当前对象的this。例如:// 程序4-7

import java.awt.*;

import java.applet.*;

class time{

private int hour, min, sec;

time( ) { setHour(0); setMin(0); setSec(0);}

time setHour(int h) {

hour=((h>=0 && h<24)? h: 0);

return this ;

}

time setMin(int m) {

min=((m>=0 && m<60)? m: 0);

return this ;

}

time setSec(int s) {

sec=((s>=0 && s<60)? s: 0);

return this ;

}

String tostring( ){ return hour+":"+min+":"+sec ; } }

public class timeToString extends Applet{

private time t;

public void init( ){

t=new time( );

}

public void paint(Graphics g) {

t.setHour(18).setMin(30).setSec(20);

《JAVA高级编程》期末复习资料

《JA V A高级编程》期末复习资料 一、填空题 1.定义类的保留字是(class ),定义接口的保留字是( interface )。2.Socket通常也称为(套接字),用于描述( IP地址) 和( 端口)。3.线程的优先级在( 1 )至( 10)之间,数值越大( 任务越紧急)。 4.构造方法是一种特殊的成员方法,构造方法名与( 类名) 相同。 5.Java语言只允许单继承,指每个类只能有一个( 父类)。 6.Java源程序的扩展名是( .java ),经过编译后的程序的扩展名是(.class )。 7. 在一个时间只能由一个线程访问的资源称为( 临界资源) 。访问临界资源的代码(临界代码)。 8. 在多线程系统中,多个线程之间有( 同步) 和( 互斥) 两种关系。 二、选择题 1.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.switch结构中每个case语句中必须用break语句 D.switch结构中必须有default语句 2.while循环和do…while循环的区别是:() A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.while循环是先循环后判断,所以循环体至少被执行一次 D.do…while循环是先循环后判断,所以循环体至少被执行一次 3.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 4.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final

Java高级程序设计-试卷

深圳大学期末考试试卷 开/闭卷 项目设计 A/B 卷 课程编号 1502090003 课程名称 Java 高级程序设计 学分 3 命题人(签字) 审题人(签字) 年 月 日 Java 高级程序设计》课程项目设计报告要求: 项目设计和项目报告由个人独立完成。 设计的题目从下面题目中任选一题。 使用Java 设计一个课题组队管理网站,网站应实现如下功能: a) 用户注册、登录、退出功能。用户分为教师和学生两种。 -------------(10分) b) 课题管理功能。只有教师用户具有该功能。教师可以新建一个课题(包括课题名称,截止时间,课题状态);可以删除无效课题;可以将课题设置为结束状态。 -------------(20分) c) 组队功能。学生可以选择是新建一个队、加入一个已建好的队、出队等操作(系统要有能自动防止一个学生同时加入多个队的行为);教师可以踢学生出队,也可以删除组队。(当课题截止时间到了时,该课题的组队功能失效) -------------(20分) d) 讨论区功能。当组队完毕后,同组队员可以在讨论区相互讨论。也可悄悄话和单个组员讨论。教师可以看到所有组的讨论情况。学生只能看到自己的组。 -------------(20分) e) 代码结构合理,网站界面美观易用。 -------------(10分) f) 项目报告能够详细,准确的描述项目内容。 -------------(10分) g) 可以加入扩展功能,比如向教师定期提交项目进展,和教师发私信等等。 -------------(10分) 参考微信的朋友圈功能,使用WebSocket 技术或其他技术,设计一个网页版的朋友圈系统,详细要求如下: a) 用户注册、登录、注销功能,用户个人资料管理功能。 -------------(20分) b) 用户可以通过添加其他用户为好友,好友确认后,方可成功添加。 -------------(20分)

java高级程序设计期末复习题

Java高级程序设计第二学期期末复习题 一、判断题 1. 2. java.awt包是Java语言用来构建图形用户界面(GUI)的类库。(√) 3. 容器,一个容器可以容纳多个构件,并使他们成为一个整体。(√) 4. Java中所有的类都是通过直接或间接地继承 5. Java的图形用户界面的最基本的组成部分就是构件(Component)。(√) 6. 在Swing中用重量级的构件替代了AWT中的轻量级的构件。(X) 7. 与AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentPane)上。(√) 8. 类Panel默认的布局管理器是GridLayout。(X) 9. 每个Java小应用程序必须定义为Jframe类的子类。(√) 10. 使用UDP通信时,用DatagramPacket类把要发送的信息打包。(√)11.AWT组件称为重型组件(√) 12.Swing组件称为轻型组件(√) 13.容器类不是GUI组件(X) 14.使用add方法可以在框架的内容窗格中添加组件(√) 15.FlowLayout 是最简单的布局管理器(√) 16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X) 17.布局管理器的属性不可以动态的改变(X) 18.每一时刻,一个容器只能有一个布局管理器(√) 19.要创建一个用户界面,需要创建一个框架或applet来存放用户界面组件(√) https://www.sodocs.net/doc/2d3690020.html,ponent类是所有用户界面的父类(√) 21. JFrame实例可以添加到容器中。( F ) 22. JCheckBox继承了AbstractButton类的所有属性。( T ) 23. JTextArea可以让用户输入多行文字。( T ) 24. JSlider与JScrollbor类似,但是JSlider具有更多的属性和更多是显示形式。( T ) 25.JTextField类继承了JTextComponent类,而JTextComponent类继承JComponent 类。( T ) 26. 从应用程序创建一个子窗口,不用先创建JFrame的一个子类。( F ) 27. 在一个文本域中按下回车键就触发了ActionEvent事件。( T ) 28. Java使用事件委托处理模型来处理事件,源对象和监听对象可以是同一个对象。( T ) 29. JDBC是指Java程序与数据库连接的一种机制。( T ) 30.可以给一个面板添加框架。(F ) 31. File类提供实现文件读写的操作方法。(T) 32. (T) 33.垂直文本位置指定文本相对于图标的垂直位置。(T) 34.不可以同时设置按钮上的文本和图标。(F) 35.标签是显示一小段文字、一幅图片或者二者皆有的区域。(T) 36.组合框是包含项目的一个列表,用户可以从中进行选则。(T)

java程序设计教案

《Java程序设计》 授 课 教 案 授课人: 授课班级:电子商务专业

第一章Java语言简介 教学目的要求 ?了解Java的基本特点和用途 ?掌握如何下载Java SDK软件包 ?了解设置Java程序的开发环境SDK ?如何运行Java程序 ?了解Java的概貌 主要内容 ?Java语言的发展历程; ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; ?Java程序的注释方法; ?写Java程序的风格规范。 重点内容 ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; 难点内容 无 课时分配 1课时 教学方法 讲授法、演示法、对比法 讲授内容提要 1.1 Java语言的发展简介 1991年Sun Mircosystem 公司成立了一个Green项目开发小组,Jame Gosling 为组长; 设计Java 采用虚拟机代码(Virtual Machine Code),即.class文件,它通过解释器运行; 1995年5月Sun Mircosystem 公司对外正式发布Java1.0; Java2 用途:适用于各种应用开发,尤其是网络应用,网络服务和嵌入式系统。 1.2 Java语言的特点 1.简单性 2.面向对象 3.网络适用性 4.健壮性 5.安全性 6.平台无关性 7.可移植性 8.解释型 9.高性能 10.多线程 11.动态性 12.丰富的类库 13.嵌入浏览器运行 1.3 Java类库的概念 1.4 网络浏览器 1.5 Java开发工具 NetBeans:这个集成环境可以方便地进行程序的编辑、编译、生成和运行。 J2sdk : http:// https://www.sodocs.net/doc/2d3690020.html,免费下载; Visual J++ 6.0 / 8.0:VJ++还吸收了VB集成开发环境IDE的特征,是一个强有力的Java程序开发工具。Jcreator Eclipse (MyEclipse)等 1.6 Java程序的分类 基于控制台的应用程序; 基于浏览器运行的小程序applet。 小程序与应用程序的区别是:小程序必须依赖一个HTML文件和支持Java的网络浏览器。 老师演示小程序和applet程序

JAVA高级编程试题

试题 一.单项选择题(共15题,每题2分,共30分。多选,选不全或选错都不得分。) 1.以下不属于面向对象的特征的是() A)重载B)抽象C)封装D)继承 2.以下代码运行输出是() public class Animal{ private String name=”Joan”; int age=0; } public class Dog extends Animal{ public String colour; public static void main(String[]args){ Animal ani=new Dog(); System.out.println(https://www.sodocs.net/doc/2d3690020.html,); } } A)没有输出B)输出:Joan C)运行出错D)编译出错 3.以下对重载描述错误的是() A)方法重载只能发生在一个类的内部B)构造方法不能重载 C)重载要求方法名相同,参数列表不同D)方法的返回值类型不是区分方法重载的条件4.在使用super和this关键字时,以下描述正确的是() A)super()和this()不一定要放在构造方法内第一行 B)this()和super()可以同时出现在一个构造函数中 C)this()和super()可以在static环境中使用,包括static方法和static语句块 D)在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 5.以下对继承的描述正确的是() A)一个子类可以有多个父类,一个父类也可以有多个子类 B)一个子类可以有多个父类,但一个父类只可以有一个子类 C)一个子类可以有一个父类,但一个父类可以有多个子类 D)上述说法都不对 6.以下描述错误的有() A)abstract可以修饰类、接口、方法B)abstract修饰的类主要用于被继承 C)abstract可以修饰变量D)abstract修饰的类,其子类也可以是abstract修饰的7.访问修饰符作用范围由小到大是() A)private-default-protected-public B)public-default-protected-private C)private-protected-default-public D)public-protected-default-private

高级程序设计JAVA作业(完成)

《高级程序设计JA V A》作业 第一章 1.简述面向过程问题求解和面向对象问题求解的异同。 答:面向过程的程序遵循面向过程的问题求解方法。其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。数据结构,算法是面向过程问题求解的核心组成。面向对象技术代表了一种全新的程序设计思路和观察,表述,处理问题的方法,与传统的面向过程的开发方法不同,面向对象的程序设计和问题求解力求符合人们日常自然的思维习惯,降低,分解问题的难度和复杂性,提高整个求解过程的可控制性,可监测性和可维护性,从而达到以较小的代价和较高的效率获得较满意效果的目的。 2.面向对象的程序设计方法有哪些优点? 答:(1)对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作相容的负担 (2)对象的数据封装性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性,提高可控性的目的 (3)对象作为独立的整体具有良好的自洽性 (4)只爱具有自洽性的同时,对象通过一定的接口和相应的消息机制与外界相联系(5)继承是面向对象方法中除封装外的另一个重要特性,通过继承可以很方便地实现应用的扩展和已有代码的重复使用,在保证质量的前提下提高了开发效率,使得面向 对象的开发方法与额u案件工程的新兴方法——快速原型法很好地结合在一起。 第二章 1.编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。 import java.awt.Graphics; import java.applet.Applet; public class MyJavaZYApplet extends Applet { public void paint(Graphics g) { g.drawString(“Welcome to Java World!”,10,20); } } 2.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!” 的串信息。 HTML文件名为ZYAppletInclude.html 内容为:

第2章java程序设计教案

课堂教学教案 教师姓名: ***** 课程名称:Java程序设计授课时数:2 第2次课

附录2 2.1Java开发环境 ●Java虚拟机执行Java程序 动态性异常处理多线程 ●JDK JDK的安装与设置 1. 安装JDK 2. 设置环境变量:设置Path和Classpath两个环境变量 ●Java源程序结构 ?Package && import ?public class 或interface ?class && interface ●MyEclipse集成开发环境 JAVA集成开发工具(将课本第十章介绍的Eclipse开发环境的使用提前介绍,详细内容参照PPT10 ●JAVA虚拟机执行JAVA程序的流程 2.2 Java语言的特点 ●simple 简单●object-oriented 纯面向对象 ●distributed 分布式●interpreted 解释型 ●robust 健壮性●secure 安全性 ●architecture-neutral 结构中立 ●portable 可移植性●high-performance 高性能 ●multi-threaded 多线程●dynamic 动态

2.3 Java程序的几种类型 ?Application ?“Java应用程序”是可以独立运行的Java程序。 ?由Java解释器控制执行。 ?Applet ?“Java小程序”不能独立运行,而是被嵌入到Web页中。 ?由Java兼容浏览器控制执行。 2.4 Java应用程序编译(字符界面) ? 1. Application ?例1 显示字符串的Application应用程序 ? 2.Applet ?例12 显示字符串的Applet应用程序 编程题: 10.分别用for,while,do-while三种循环语句计算一个正数的阶乘(1)for(i=1,i<=10,i++){ int Sum=1; Sum=Sum*i;} (2)int i=1; while(i<=10){ int Sum=1; Sum=Sum*i; i++;} int i=Sum=1; do{ Sum=Sum*i; i++;}while(i<=10); 11.输出以下数字的形式; (1)0000 0111 0122 0123 〖解答〗采用二重循环的程序如下。 public class Phalanx {public static void main(String args[]) {int n=4; //阶数 for (int i=0;i

《JAVA高级编程》课程标准

辽宁机电职业技术学院 《JAVA高级编程》课程标准 课程类别:专业核心课程 课程代码:590108A-310214 教学时数:56 学分:4 制订人:迟勇完成时间:2011-11-14 一、课程标准的制订依据 本课程标准依据软件技术专业标准中的人才培养目标和培养规格以及对《JAVA高级编程》课程教学目标要求而制定,用于指导《JAVA高级编程》课程建设和课程教学。 二、课程性质与作用 在软件技术专业课程体系中,本课程是专业主干核心课程之一,属于岗位核心能力训练层次,也可作为专业群内其它专业的核心课或选修课。本门课程的作用在于使学生熟练应用OOP思想和Java IDE工具开发Java复杂应用,了解开发规范,培养信息搜索与解释能力。 三、本课程与其他课程的关系 四、课程目标 深入掌握面向对象的程序设计语言Java的语法和应用,了解代码规范,熟悉项目设计方法,养成良好的软件开发习惯,培养团队协作精神。为今后深入学习Java高级编程和其它技术方面奠定良好的知识和工程实践基础。 1.专业能力 (1)掌握Java的高级语法和语义; (2)掌握复杂应用程序开发方法; (3)熟练使用IDE开发Java程序,掌握IDE的高级开发技巧。 2.方法能力 (1)具备信息收集与分析的能力; (2)具备自学提高的能力; (3)具备制定计划和总结能力; (4)具备基于现有学习基础解决一定知识领域问题的能力。

3.社会能力 (1)具备良好的职业道德和社会责任感。 (2)具备与客户沟通与协商的能力; (3)具备团队合作能力; (4)具备良好的语言表达能力。 五、课程教学内容与建议学时 表1 《JAVA高级编程》课程教学情景 六、课程教学设计

《JAVA高级程序设计》课程教学大纲

《Java高级程序设计》课程教学大纲 英文课程 名称 Advanced Java Programming 总学时48学分 3 课程编码08094112066 理论 学分数 2 实验 学分数 1 适用专业软件工程先修课程 程序设计基础,JAVA面向对象程序 设计 课程 类别 □学科基础(必修)□专业核心(必修)■专业方向(限选)□任选 一、课程支撑的毕业要求及其具体指标点 1、支持毕业要求3:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 具体指标点为:3.1掌握程序设计理论与方法,具备软件开发技能。 通过本课程学习,使学生理解和掌握Java程序设计方法,建立起牢固扎实的理论基础,掌握使用Java编程技术针对复杂工程问题进行程序分析和设计的能力。 2、支持毕业要求4:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 具体指标点为:4.3能够理解、评估相关的需求、架构和软件文档;能够遵循编码规范完成编码;4.5在他人指导下,完成软件工程某一应用领域(专业方向)的系统分析、设计和实施。 通过本课程学习,让学生理解和掌握Java程序设计方法,有能力对复杂工程问题进行需求分析与评估;掌握Java程序设计基本编码规范,有能力在一定指导下分析、设计并实施Java程序系统,用以解决具体领域如操作系统、网络通信、数据库等的应用问题。 3、支持毕业要求5:能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 具体指标点为:5.1掌握软件开发过程中所使用的工具和方法。 通过本课程学习,让学生掌握Java高级程序设计中的基本工具和方法,并能够针对实际工程问题(操作系统、网络通信以及数据库等)进行恰当的选择。

浙江大学远程教育2015年夏高级程序设计(JAVA)作业满分

单选题 1.下列代码哪几行会出错: 1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I > 0 ) { 5) j = I * 2; 6) System.out.println (" The value of j is " + j ); 7) k = k + 1; 8) I--; 9) } 10} } ? A line4 ? B line6 ? C line7 ? D line8 单选题 2.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方 法是正确的? ? A ArrayList myList = new Object(); ? B List myList = new ArrayList(); ? C ArrayList myList = new List(); ? D List myList=new List(); 单选题 3.给出下面代码:public class Person{ static int arr[] = new int[10];public static void main(String a[]) { System.out.println(arr[1]); } } 那个语句是正确的? ? A 编译时将产生错误;

? B 编译时正确,运行时将产生错误; ? C 输出零; ? D 输出空。 单选题 4.运行下列程序, 会产生什么结果public class X extends Thread implements Runable{ public void run(){ System.out.println("this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } } ? A 第一行会产生编译错误 ? B 第六行会产生编译错误 ? C 第六行会产生运行错误 ? D 程序会运行和启动 单选题 5.指出正确的表达式: ? A byte=128; ? B Boolean=null; ? C long l=0xfffL; ? D double=0.9239d; 单选题

Java高级编程期末考试真题试卷及复习资料讲课讲稿

J a v a高级编程期末考试真题试卷及复习资 料

名词解释: 1.泛型 答:即参数化类型,允许程序创建集合时指定集合元素的类型。在定义方法、类、接口时使用类型形参,类型形参将在声明变量、调用方法、创建对象时动态地指定.如:List,ArrayList 2. 多态 答:Java引用变量分为编译时的类型和运行时的类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果两类型不一致,就出现多态。 3.阻塞 答:当前正在执行的线程被阻塞之后,其他线程就获得执行机会.被阻塞的线程会在合适的时候重新进入就绪状态,重新等待线程调度器再次调度它。 4. 封装 答:面向对象三大特征之一。指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对内部信息的操作和访问。 5. 继承 答:类继承是新类可以从现有的类中派生。派生类继承了基类的非私有成员变量和方法,派生类可以拥有自己的成员变量和方法,可以用自己的方式实现基类的方法。 6. 抽象: 答:抽象就是忽略主题中与目标无关的方面,关注与目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不管部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

选择题 第一大类(集合),如: 1、在Java中,( A )类的对象可被用作堆栈或者队列。 A. LinkedList B. ArrayList C. Collection D. HashMap 2、关于Java中的集合实现类,下列说法描述错误的是(D )。 A. HashMap是Map接口的实现类 B. ArrayList对象是长度可变的对象引用数组 C. 集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法 D. Set中存储一组不允许重复、有序(无序)的对象 第二大类(JDBC与SQL编程),如: 1、使用JDBC访问数据库时,下列关于JDBC的说法正确的是( B )。 A. Connection接口负责执行SQL语句 B. 可以使用Class.forName()方法把JDBC驱动类装载入Java虚拟机中 C. Statement接口由Connection产生负责保存返回的查询结果 D. DriverManager类负责连接数据库并传送数据

JAVA程序设计教学大纲

《JAVA程序设计》教学大纲 课程名称:Java程序设计 课程性质:专业课 总学时:其中理论学时:95,实习(操作)学时:85 适用专业:计算机专业 先修课程:计算机应用基础,计算机原理。 一、教学目的与要求 1.课程的性质和内容 本课程是一门计算机专业课程,主要介绍利用JAVA语言进行编程的技术,为学生将来从事计算机系统的软件开发打下坚实的实践基础。主要内容包括:Java语言概述和开发环境,Java语言基础,Java面向对象编程的类、对象、继承、多态,图形程序设计,创建用户界面,异常处理,输入输出,多线程,数据库编程,网络编程但呢个内容。 2.课程的任务和要求 本课程的任务是通过本课程的学习使学生对能面向对象的程序设计方法有一个前面而深入的了解,并掌握语言特点及学会应用。本课程的基本要求(1)在理论上能掌握面向对象程序设计基本思想,JAVA语言的基本流程。(2)在实践技能上能够利用JAVA语言进行比较深入的应用程序设计,并且有能力参与中小型项目的开发。 3.教学中应该注意的问题 在一体化教学过程中应该多注意学生上机实习的质量,对于老师当堂可要求完成的内容学生必须要完成,否则影响后面的学习,也影响学生学习的积极性。 二、学时分配表 序号教学内容学时分配 理论学时实验(上 机)学时 总学 时 1 第一章 Java概述 4 4 4 2 (一)Java语言发展。 2 3 (二)Java语言特点. 4 (三)Java语言的应用领域。 5 (四)Java开发和执行环境。 1 1 2 6 (五)Java应用程序开发过程。 3 3 6 7 (六)几种常见Java开发工具(如:Eclipse)的简单设置

《Java高级编程》复习提纲(小疯版)

一、名词解释 泛型、阻塞、多态 【详细版】 (1)泛型:所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态地指定(即传入实际的类型参数,也可称为类型实参)。 (2)阻塞:当前正在执行的线程被阻塞之后,其他线程就可以获得执行机会.被阻塞的线程会在合适的时候重新进入就绪状态,也就是说,被阻塞线程 的阻塞解除后,必须重新等待线程调度器再次调度它。 (3)多态:Java引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译室的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型不一致,就出现所谓的多态。 【精简版】 (1)泛型:是指参数化类型(泛化类型)的能力。(2)阻塞:指的是暂停一个线程的执行以等待某个条件发生。 (3)多态:指允许不同类的对象对同一消息作出响应。 【举例版】 (1)泛型:如果声明为List list= new ArrayList,那么集合中只允许包含String类型的对象。 (2)阻塞:如果在高速公路上堵车(阻塞),那么只能等前面的车通了之后才能继续行走。 (3)多态:例如方法为动物的叫声,如果传入的参数是狗,那么就调用狗的叫声;如果传入的参数是猫,那么就调用猫的叫声。 二、简答题(每题10分,共20分) 1、请说明”==”和Object类的equals方法和hashcode方法的作用,并实现一个学生类,让学生的姓名和年龄相等则两个学生对象是相等的。(1)==:比较两个对象是否相等,即比较对象在内存中的首地址;如果在基本数据类型中则是比较内容是否相等。 (2)equals方法:比较对象的内容是否相等(需要重写)。 (3)hashCode方法:比较对象的返回的哈希码是否相等(需要重写)。 public int hashCode() {return https://www.sodocs.net/doc/2d3690020.html,.hashCode();} public boolean equals(Object o) { if (this == o) return true; if (o instanceof StudentEqualsHash) {StudentEqualsHash s = (StudentEqualsHash) o; if(s.getNumber().equals(this.number) && s.getAge() == this.age) {return true;}} return false;} 2、请使用简单代码说明创建线程的三种方式,并说明它们的优缺点。 (1)继承Thread类:不能再继承其他父类,编写简单。 public class ThreadTest extends Thread { public void run() { System.out.println("Thread"); } public static void main(String[] args) { new ThreadTest().start();}} (2)实现Runnable接口:可以继承其他类,编程稍稍复杂。 public class RunnableTest implements Runnable {public void run() {Sys("Runnable");} public static void main(String[] args) { Runnable r = new RunnableTest(); new Thread(r).start();}} (3)实现Callable接口:可以继续其他类,还可以有返回值类型,编程稍稍复杂。 public class CallableTest implements Callable {public String call() { return"Callable";} public static void main(String[] args){ CallableTest c = new CallableTest(); FutureTaskf=new FutureTask(c );new Thread(f).start(); Sys(f.get());// 阻塞方法}} 3.请说明线程的状态及其转换,并说明线程控制相关如下方法的作用,join,yield, sleep, interrupt. (2)线程控制的方法: ①join:调用线程将被堵塞,直到被加入的join线程执行完为止。 ②sleep:让当前正在执行的线程暂停一段时间,并进入堵塞状态。

《Java程序设计》课程教学大纲

《Java程序设计》课程教学大纲 课程名称:Java程序设计 英文名称:Java Programming 课程类型:专业基础课 学分:4 总学时:64 讲课学时:48 上机学时:16 适用对象:计算机类专业本科 先修课程:C/C++程序设计I、C/C++程序设计II(可选) 一、课程目标 1、课程性质和目的 “Java程序设计”是计算机类专业的专业基础课。 程序设计是高等学校计算机类各专业的核心专业基础课程,是培养学生软件设计能力的重要课程。在本科教学培养体系中,起着非常重要的作用。 开设本课程的目的是:进行程序设计和面向对象方法的基础训练;为操作系统、网络通信、数据库应用、Web应用等软件应用领域的实际问题,提供基于Java技术的解决方案。 2、课程任务 (1)全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,通过讲授这些构成Java应用程序的基本要素和必备知识,使学生理解并掌握面向对象的程序设计方法,建立牢固扎实的理论基础。 (2)介绍Java 图形用户界面、线程、流和文件操作、网络通信等技术,通过讲授这些广泛应用于软件系统中的实用技术,使学生进一步体会软件设计方法,深入理解基础理论,培养综合应用程序的设计能力。 4、教学基本要求 (1)了解Java语言特点,理解Java Application应用程序的运行原理和方法。掌握在JDK环境中编译和运行程序操作,熟悉在MyEclipse等集成开发环境中编辑、编译、运行和调试程序操作。 (2)掌握Java语言的基本语法成分,包括数据类型、语句、方法等。 (3)理解面向对象程序设计思想,掌握类的封装和继承原则,理解运行时多态,理解抽象类和最终类的作用。 (4)掌握接口以及实现接口类的声明和使用方法,理解接口的作用;熟悉内嵌类型;熟悉Java API语言包和实用包。

《Java web程序设计》教案

课题:第一章 Java Web概述 【教学目标】 掌握JSP运行环境的搭建,能进行简单的JSP程序编写与运行。 【教学重点】 Eclipse+Dreamweaver工具、项目的导入、导出、发布打包 【教学难点】 Eclipse+Dreamweaver工具、项目的导入、导出、发布打包 【教学方法】讲解、讨论 【教学地点】教学楼、综合楼 【课时安排】4课时 【教学过程】 1.1 配置JSP运行环境 1.1.1 任务描述与实现正确安装Tomcat服务器,并显示其欢迎页面。如图1-1所示。 图1- 1 使用Tomcat欢迎页面 实现过程: 1.安装JDK 安装Tomcat服务器前首先安装JDK(Java Development Kit),其包括了Java运行环境,Java 工具和Java基础的类库。目前,提供下载的最新版本为JDK7。读者可到官方网站下载,下载地址为https://www.sodocs.net/doc/2d3690020.html,/technetwork/java/javase/downloads/index.html。 下载后双击安装,画面如图1-2所示,按“下一步”操作直到完成。

图1- 2 JDK安装界面 2.安装Tomcat Tomcat官方网站下载地址:https://www.sodocs.net/doc/2d3690020.html,。本书采用的版本是Tomcat-7.0.20。 下载后,双击安装,如图1-3所示。点击Next到第一步,进行安装组件选择,如图1-4所示。第二步选择路径,按照系统默认路径即可。第三步为配置Tomcat端口信息和账号信息,如图1-5所示,按照实际配置即可。第四步为选择JDK的安装路径,如图1-6所示,选择在之前第1步操作中安装的JDK所在的位置。之后单击“Next”开始安装。安装完毕后,提示安装完成,如图1-7所示。单击“Finish”完成Tomcat的安装。 安装完成之后,在程序菜单中可以看到Tomcat的选项,如图1-8所示。点击Monitor Tomcat,可在任务栏看到Tomcat的服务图标,如图1-9所示,双击该图标,弹出如图1-10所示的Tomcat 启动界面,在此界面中可以选择启动或停止Tomcat服务。 启动Tomcat后,在地址栏中输入http://localhost:8080,若出现图1-1的显示效果,则Tomcat已正常安装并运行。

实验三 Java面向对象高级编程

实验三Java面向对象高级编程 一、实验目的 1. 掌握Java 面向对象编程技术 2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态 4. 能够创建抽象类和接口,并探究它们的多态特性 二、预备知识 1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装; 3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。 三、实验描述 1. 实验类型:设计 2. 实验学时:4学时 3. 实验内容:2项(参照四) 四、实验内容 (1) 检查所使用的计算机系统: 1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。 (2) 实验内容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求: 1. 在上述银行项目中,创建Customer类: ·位于包:com.mybank.domain中; ·向Customer类添加四个实例变量:firstName,lastName,accounts(Account对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数); ·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量; ·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的帐户对象。 2. 创建SavingsAccount类,该类是Account类的子类: ·位于包:com.mybank.domain中; ·向SavingsAccount类中添加interestRate实例变量; ·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造方法传递initBalance参数,并初始化实例变量interestRate; ·添加accumulateInterest方法:用于计算客户的利息。

java程序设计教案解读

课程教案 (理论教学) 课程名称:Java程序设计 课程类型:( 2 )1、必修;2、选修;3、其它授课对象:专业(本科)级班授课时间:至学年第学期 计划学时:学时(其中:理论,实验:)任课教师: 所属学院: 课程管理部门(教研室): 大理学院教务处制

课程名称:Java程序设计 教材:Java程序设计教程 讲授人:专业技术职务:讲师 学历:研究生学位:硕士讲授题目: 所属章节:计划学时: 教学目的和要求: 教学重点: 教学难点: 教学方法: 使用教具

第一章Java语言简介 教学目的要求 ?了解Java的基本特点和用途 ?掌握如何下载Java SDK软件包 ?了解设置Java程序的开发环境SDK ?如何运行Java程序 ?了解Java的概貌 主要内容 ?Java语言的发展历程; ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; ?Java程序的注释方法; ?写Java程序的风格规范。 重点内容 ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; 难点内容 无 课时分配 1课时 教学方法 讲授法、演示法、对比法 讲授内容提要 1.1 Java语言的发展简介 1991年Sun Mircosystem 公司成立了一个Green项目开发小组,Jame Gosling 为组长;设计Java 采用虚拟机代码(Virtual Machine Code),即.class文件,它通过解释器运行;1995年5月Sun Mircosystem 公司对外正式发布Java1.0; Java2 用途:适用于各种应用开发,尤其是网络应用,网络服务和嵌入式系统。 1.2 Java语言的特点 1.简单性 2.面向对象 3.网络适用性 4.健壮性 5.安全性 6.平台无关性 7.可移植性 8.解释型 9.高性能

Java高级编程选择题

1.Thread类用来创建和控制线程,一个线程从下面( )方法开始执行。 A.init() B.start() C.run() D.notifyAll() 2.实现线程体的方式除了继承Thread类,还可以实现( )接口。 A.Cloneable B.Runnable C.Iterable D.Serializable 3.哪个方法是实现Runnable接口所需的 A.wait() B.run() C.stop() D.update() 4.下面让线程休眠1分钟的正确方法是() A.sleep(1) B.sleep(60) C.sleep(1000) D.sleep(60000) 5.以下哪个最准确描述synchronized关键字 A.允许两线程并行运行,而且互相通信; B.保证在某时刻只有一个线程可访问方法或对象; C.保证允许两个或更多处理同时开始和结束; D.保证两个或更多线程同时开始和结束。 6.于Java语言的内存回收机制,下列选项中最正确的一项是()。 A.Java程序要求用户必须手工创建一个线程来释放内存 B.Java程序允许用户使用指针来释放内存 C.内存回收线程负责释放无用内存 D.内存回收线程不能释放内存对象 7.在java程序中,下列关于线程的说法错误的是:() A.run方法是运行线程的主体 B.多个进程运行时执行顺序是按顺序执行的 C.如果线程死亡,它便不能运行 D.在java中,高优先级的可运行线程会抢占低优先级线程 8.编写线程类,要继承的父类是: A.Object

B.Runnable C.Exception D.Thread 9.启动一个线程的方法是哪项 A . join ( ) B . runf ) C . start ( ) D . sleep ( ) 10.编写线程类,可以通过实现那个接口来实现 A.Runnable B.Throwable C.Serializable https://www.sodocs.net/doc/2d3690020.html,parable 11.当一个处于阻塞状态的线程解除阻塞后,它将回到哪个状态 A.运行中状态 B.结束状态 C.新建状态 D.可运行状态 12.在网络编程中,为了定位一个进程,我们需要确定() A.端口号 B.IP地址 C.IP地址和端口号 D.都不是 13.为了从文本文件中逐行读取内容,应该使用哪个处理流对象 A.BufferedReader B.BufferedWriter C.Bufferedlnputstream D.Bufferedoutputstream 14.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接前, 应加载数据库驱动程序,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 15.要使用java程序访问数据库,则必须首先与数据库建立连接,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 16.Java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句

相关主题