北京信息科技大学Java语言程序设计-GUI资料
北京信息科技大学Java语言程序设计-抽象类和接口
实验4抽象类与接口【实验宗旨】每天做一点编程练习。
【实验目得】1、学习与掌握Java抽象类得定义与使用.2、学习与掌握Java接口得定义与使用。
3、进一步学习与掌握通用程序设计方法。
【实验步骤(解题过程)】参见实验2.【实验内容】1、(pareableCirlce类)创建名为pareableCircle类,它扩展Cir cle类并实现pareable接口。
画出UML图,实现pareTo方法,使其可以根据面积比较两个圆。
编写一个测试程序求出pareableCircle对象得两个实例中得较大者。
说明:⑴来源编程练习14、2(P399))。
⑵java、lang、pareable接口参见14、5小节(P378).⑶Circle类得实现,参见程序清单11、2(P303)。
【实验预习】1.问题描述:该题描述得就是创建一个pareableCircle类来实现两个圆得比较.2.创建两个pareableCircle类得实例,利用parable接口,并调用parableMax方法实现。
【附程序代码】SuppressWarnings(”unchecked")public class testpareableCircle{//主方法ﻩpublic static void main(String[]args){ﻩﻩpareableCircle C1=new pareableCircle(10);ﻩpareableCircle C2=newpareableCircle(3);ﻩﻩSystem、out、println("The maxnium Circle is "+parableMax(C 1,C2)+"得圆");ﻩ}//比较两个圆得大小publicstaticparable parableMax(parableC1,parable C2)ﻩ{ﻩﻩif(C1、pareTo(C2)>0)ﻩﻩreturn C1;ﻩﻩelse return C2;}}public class pareableCircle extends Circle implementsparable{ﻩ//建立个指定半径得圆pareableCircle(double radius){ﻩsuper(radius);}//parable接口得方法public int pareTo(Object o){ﻩif(getArea()〉((pareableCircle)o)、getArea())ﻩreturn 1;ﻩelse if(getArea()<((pareableCircle)o)、getArea())return -1;else return 0;}ﻩ}public class Circle extends GeometricObject1 { private double radius;public Circle() {}public Circle(double radius) {this、radius = radius;}//返回半径public double getRadius(){return radius;}//设置一个新得半径public void setRadius(double radius) {this、radius = radius;}//返回圆得面积publicdouble getArea(){return radius * radius * Math、PI;}//返回圆得直径public double getDiameter() {return2*radius;}//返回圆得周长public double getPerimeter() {return 2* radius * Math、PI;}//打印圆得信息public String toString() {return "created in”+getDateCreated() + " andthe radius is " + radius;}}【Uml图】CompareableCircle<<create>>~CompareableCircle(radius: double)+compareTo(o: Object): int【实验过程及运行结果】在运行过程中遇到得错误就是,在写parableMax方法时,我写得返回值就是parableCircle类型。
Java语言程序设计课程教学辅导技术资料——第8章JavaGUI技术—AWT组件及事件编程
Java语言程序设计课程教学辅导技术资料——第8章JavaGUI技术—AWT组件及事件编程目录1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT组件及事件编程 (2)1.1.1Java GUI编程 (2)1.1.2Java AWT中容器组件 (4)1.1.3Java AWT中的菜单组件 (11)1.1.4GUI用户界面的事件编程 (13)1.1.5综合实例:利用AWT技术所实现的一个Java Application 程序 (17)1.1Java语言程序设计课程教学辅导技术资料——第8章Java GUI 技术—AWT 组件及事件编程【教学目标】在本单元中希望您重点了解并掌握如下知识点:AWT 抽象窗口工具集实现的原理,四大类AWT GUI组件的编程技术(基本组件、容器组件、菜单条菜单组件和弹出式菜单组件),事件编程技术(ActionListener、MouseListener、ItemListener和WindowListener)。
1.1.1Java GUI编程1、GUI界面(1)用户与程序之间交互的一个控制面板,其内包含有菜单、控件(或组件)和容器并能响应用户的事件。
(2)面向对象的图形用户界面基于“面向对象”的思想互相交换信息,即尽可能在屏幕上用形象的图标和窗口等来代表有用的资源和可启用的对象。
图形界面对象:代表特定的软件、命令、过程、资源、提示信息等的资源(图标(Icon)、窗口(Window)、菜单(Menu)/菜单项(Menu Item)、按钮(Button)、文本框(Label)、列表框(List)…等)2、Java中的GUI实现方式(1)采用AWT(抽象窗口工具集)技术从而可使GUI适用于不同OS的环境。
抽象窗口工具包AWT (Abstract Window Toolkit) 是API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。
第9章 图形用户界面
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
ponent类是许多组件类(如Button、Label)的父类,Component类中封装了组件通用的方法和 属性,如图形的组件对象、大小、显示位置、前景色、背景色、边界、可见性等,因此许多组件也继承了 Component类的成员方法和成员变量,这些成员方法是许多组件共有的方法,Component类常见的成员方法 如表9-1所示。
Java语言程序设计
第9章 图形用户界面
9.1 GUI概述
Java应用程序的图形用户界面(GUI)是通过Java API提供的java.awt或javax.swing包中的组件实现的。 这些组件所构成的GUI系统通常包含以下几个部分: (1)基本的图形用户界面组件:如菜单、按钮、文本字段等,展示系统可用的操作; (2)容器组件,如窗口、面板等,用于容纳基本组件; (3)布局管理组件,负责容器中组件的布局,进一步美化图形用户界面; (4)事件处理,用户通过图形界面进行操作时,会引发相应的事件,这些事件由一些特定的图形用户 界面组件监听并处理。 Java的java.awt和javax.swing包中包含了许多有关图形界面的类,AWT(Abstract Window Toolkit),中文译 为抽象窗口工具包,是一组Java类,此组java类允许创建图形用户界面,AWT提供用于创建生动而高效 的GUI的各种组件。Swing组件是在AWT组件基础上发展起来的新型GUI组件,完善了GUI组件的功能, 且实现时不包含依赖特定平台的代码,有更高的平台无关性和更好的移植性。因此本章主要介绍Swing 组件的用法,学习了Swing组件的用法后也可容易地学会AWT组件的用法。
gui学生信息管理系统java课程设计
gui学生信息管理系统java课程设计一、概述现代教育管理系统需要一个高效的学生信息管理系统来帮助学校管理学生信息。
本课程设计旨在使用Java语言开发一个图形用户界面(GUI)学生信息管理系统,以便学校能够更好地管理学生信息。
二、系统需求分析1.系统功能需求(1)学生信息管理:包括学生基本信息、课程成绩、奖惩记录等。
(2)教师信息管理:包括教师基本信息、任课课程、教学成果等。
(3)课程管理:包括课程信息、开课情况、课程成绩统计等。
(4)用户权限管理:包括管理员、教师、学生等不同角色的权限管理。
2.系统非功能需求(1)系统安全性:要求数据安全可靠,用户权限严格控制。
(2)系统稳定性:要求系统运行稳定,不易崩溃。
(3)系统易用性:系统界面友好,操作简单。
三、技术选型本系统采用Java语言开发,使用Swing框架构建GUI界面,使用MySQL数据库存储数据。
1.系统架构设计(1)MVC架构:采用Model-View-Controller(MVC)设计模式,实现界面逻辑与数据处理的分离。
(2)分层设计:采用三层架构,包括表示层、业务逻辑层和数据访问层。
2.数据库设计(1)学生表设计:包括学号、尊称、性莂、芳龄等字段。
(2)教师表设计:包括工号、尊称、性莂、职称等字段。
(3)课程表设计:包括课程编号、课程名称、学分、教师编号等字段。
(4)其他相关表设计:包括课程成绩表、奖惩记录表等。
3.GUI界面设计(1)登入界面设计:包括用户名、密码输入框,登入按钮。
(2)学生信息管理界面设计:包括学生信息查询、添加、修改、删除功能。
(3)教师信息管理界面设计:包括教师信息查询、添加、修改、删除功能。
(4)课程管理界面设计:包括课程信息查询、添加、修改、删除功能。
(5)用户权限管理界面设计:包括管理员、教师、学生等角色的权限管理。
1.数据库连接使用JDBC技术连接MySQL数据库,实现数据的读取和写入。
2.业务逻辑实现(1)学生信息管理:实现学生信息的增删改查功能。
北信科高级java网络编程
实验报告课程名称高级java程序设计实验项目Java 网络编程实验仪器系别计算机学院专业软件工程班级/学号实验日期成绩指导教师【实验名称】Java 网络编程【实验目标】1、学习和理解客户端-服务器模型,掌握网络计算模型的Java实现方案。
2、学习和掌握实现基本客户端-服务器模型的Java 程序开发方法,能够实现客户端程序,能够分别实现服务单客户和多客户同时访问的服务器端程序,能够传送基本数据,也能够传送对象数据。
3、学习和了解Java 实现方案的不同变化。
【实验日期和时间记录】 12.3-12.4【实验预习】复习了高级java的第三十章网络章节【实验过程及结果记录】1、(单客户贷款服务器)为一个客户端编写一个服务器。
客户端向服务器发送贷款信息(年利率、贷款年限和贷款总额)。
服务器计算月偿还额和总偿还额,并把它们发回给客户端。
实验结果2、(多客户贷款服务器)在练习1 的基础上,实现一个能够服务多客户的贷款服务器端程序。
实验结果:【实验总结】对服务器与客户端的运作有了进一步掌握,同时对IP,TCP,UDP有了了解,同时自己已经能实现在局域网内不同电脑间的服务器与客户端的连接。
【思考题的思考】1、如何建立服务器和客户端之间的连接?如何在服务器端和客户端之间发送和接收基本数据类型、对象数据类型。
可以以服务器发送、客户端接收为例说明。
答:服务器创建一个服务器套接字,利用客户端套接字连接客户端. 对套接字对象使用DataInputStream inputFromClient = newDataInputStream(socket.getInputStream());DataOutputStream outputToClient = newDataOutputStream(socket.getOutputStream())以及使用该对象的read()和write()方法读取和写入数据。
2、由单客户的服务器端到多客户的服务器端,如果使用多线程,那么,单客户服务器的哪部分功能(代码段、模块),要封装为任务类代码,放在多客户服务器的线程任务类中运行?答:通过将服务员器中通过套接字进行数据传输的模块封装为任务类代码,放在多客户服务器的线程任务类3、如何运行客户-服务器程序?如何建立多客户同时运行的运行环境,保证服务器端程序能够同时面对多个客户?答:先运行服务器,在运行客户端。
北京语言大学智慧树知到“计算机科学与技术”《Java语言程序设计》网课测试题答案3
北京语言大学智慧树知到“计算机科学与技术”《Java语言程序设计》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.下列选项中哪一项属于Java语言的复合数据类型?()A.无符号整数类型B.整型C.联合类型D.接口2.下列程序段输出的结果是()。
public class NewClass {public static void main(String args[]) {int x=0;boolean b1,b2,b3,b4;b1=b2=b3=b4=true;x=(b1|b2&b3^b4)?++x:x; System.out.printlA.-1B.0C.1D.23.执行下列程序段,请选出正确的答案()。
public class Test {public static void throwit(){throw new RuntimeException();}public static void main(String args[]){try(System.out.println(“你好吗”);throwit();System.out.priA.不能通过编译B.输出“你好吗”→RuntimeException异常发生→输出“出错!”→输出“结束”C.输出“你好吗”→RuntimeException异常发生→输出“结束”D.输出“你好吗”→输出“结束”→RuntimeException异常发生4.下面关于数组定义语句不正确的是()。
A.int[] a1,a2B.int a0[]={1,2,3,4,5}C.double[] d=new double[8]D.float f[]=new{2.0f,3.5f,5.6f,7.8f}5.下列程序段不正确的是_______。
A.String A="firstJava";A-="Java";B.String A="firstJava";A+="Java";C.Integer J=new Integer(27);J-=7;D.Integer J=new Integer(27);J--;6.下列程序段输出的结果是_______。
047471604Java语言程序设计(一)
4747 Java语言程序设计(一)第一章 Jave语言基础1.1 Java语言的特点领会Java语言的特点、关键字1010-11.Java语言采用多种机制来保证可移植性,其中最主要的是______。
虚拟机1110-11.Java语言是一种 ____强类型语言___ 语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误。
1.2 Java使用程序和小使用程序识记Java使用程序和小使用程序的特点和区别11.一个使用程序必须在某个类中定义的方法是______。
main()1201-11.能在浏览器上执行的Java程序被称为小使用程序。
1.3 Java程序的开发过程11.Java程序的字节码文件的扩展名是_________。
Class1001-11.Java的编译程序先将Java源程序翻译成和机器无关的__________。
字节码1101-11.Java源文件的扩展名是_____.java____。
1210-11. 如果Java源文件中有多个类,那么只能有一个__public____类。
1404-11.类Testll经Java编译程序编译后,产生的文件是______。
Test11.class1.4 标识符和关键字简单使用:Java程序的标识符命名规则、注释、基本数据类型标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规则如下:1)标识符由Java字母和Java数字组成;2)首字符必须是Java字母;3)除去关键字、false、true和null;4)所有标识符是区分大小写的。
注释:1)行注释//2)块注释/* …. */3)文档注释/** …*/1404-1.以下标识符中,不是..Java语言关键字的是A.wait B.new C.long D.switch1.下述字符组合不能作为Java程序标识符的是()A.Aa12 B.大x C.y小 D.5x1.下面供选字符序列中,不属于...Java语言关键字的是()A.goto B.null C.false D.native1.在下述字符串中,不属于...Java语言关键字的是( C )A.float B.new C.java D.return1110-1.下面供选字符序列中,不属于...Java 语言关键字的是 ( )A. throwB. synchronizedC. protectD. try1010-1.以下是关于Java语言关键字的叙述,其中正确的是( )A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字1.5 基本数据类型0开头表8进制常量,数字只能(0-7)1.下列字符组合不能作为Java整型常量的是( )A.078B.0x3ACBC.5000D.0x3ABC1.在Java语言中,用于标记回车符的转义字符是A.\b B./b C.\n D./n1001-12.表达式¨23 & 18’’的值是__________。
Java程序设计 北京大学 6 第5讲深入理解Java语言 (6.9.1) week5讲义
Java程序设计第5章深入理解JAVA语言第5章深入理解JAVA语言Java程序设计•本章介绍Java语言中的一些机制及细节。
•5.1变量及其传递•5.2 多态和虚方法调用•5.3 对象构造与初始化•5.4 对象清除与垃圾回收•5.5 内部类与匿名类•5.6 Lambda表达式•5.7 装箱、枚举、注解•5.8 没有指针的Java语言Java程序设计变量及其传递••••••••••••••••••••••••••••••••••••••基本类型变量与引用型变量Java程序设计•基本类型(primitive type):其值直接存于变量中。
“在这里”•引用型(reference type) 的变量除占据一定的内存空间外,它所引用的对象实体(由new 创建)也要占据一定空间。
“在那里”Java 程序设计引用型变量与对象实体的关系day monthyearmn示例Java程序设计•示例:MyDate.java•MyDate m,n;•m=new MyDate();•n=m;•n.addYear();字段变量与局部变量Java程序设计•字段变量(field)与局部变量(Local variable)☐前者是在类中,后者是方法中定义的变量或方法的参变量•从内存角度看☐存储位置,字段变量为对象的一部分、存在于堆中的,局部变量是存在于栈中。
☐生命周期不同☐初始值:字段变量可以自动赋初值,局部变量则须显式赋值class Test(){int a;void m(){int b;System.out.println(b);//编译不能通过需要//初始化。
两种变量的区别Java程序设计•从语法角度看☐字段变量属于类,可以用public,private,static,final修饰。
☐局部变量不能够被访问控制符及static修饰☐都可以被final修饰•调用对象方法时,要传递参数。
在传递参数时,•Java 是值传递,即,是将表达式的值复制给形式参数。
Java语言程序设计基础教程课件(第6章)
只能向滚动面板添加一个组件
构造方法
ScrollPane() ScrollPane(int a)
a的取值: 1)SCROLLBARS_ALWAYS 、
2)SCROLLBARS_AS_NEEDED、
3)SCROLLBARS_NEVER
P134【例6-3】使用ScrollPane容器
con.add(String s,Component b) con.add(Component b,String s)
card.show(con,s) card.first(con) st(con) card.previous(con) card.next(con)
Container(容器)的子类,属内层容器
在外层容器内部实现分块布局
默认布局是FlowLayout布局
常用方法同Frame
java.awt.ScrollPane类——滚动面板
P133 【例6-2】使用Panel容器
6.3.3 ScrollPane
java.awt.ScrollPane——滚动面板
但是它的主要功能是容纳其它组件和容器
容器通过add()方法向容器中添加组件。
有三种类型的常用容器:
Frame、 Panel、 ScrollPane。
6.3.1 Frame
Frame类是Container类的间接子类
可以向窗口添加组件
顶层容器,不容许被添加
默认布局是BorderLayout
方法说明
绘制组件
重绘组件 设置组件的大小和位置 设置组件可见性 设置鼠标指向组件时的光 标形状。 将变化后的界面显示出来 更新组件
04747java语言程序设计一
04747java语言程序设计一Java语言程序设计一Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现属于Oracle公司)的James Gosling在1995年首次发布。
Java语言以其跨平台性、面向对象的特性、健壮性、安全性和多线程能力而闻名。
本课程将介绍Java语言的基础知识,包括语法、数据类型、控制结构、类与对象、异常处理以及输入输出等。
1. Java语言概述Java是一种静态类型、面向对象的编程语言,设计目标是实现“一次编写,到处运行”(Write Once, Run Anywhere,简称WORA)。
Java 程序可以在任何支持Java虚拟机(JVM)的平台上运行,这使得Java 成为了开发跨平台应用程序的理想选择。
2. Java开发环境搭建在开始编写Java程序之前,需要搭建Java开发环境。
首先需要下载并安装Java Development Kit(JDK),然后配置环境变量,确保可以在命令行中使用`javac`和`java`命令。
3. Java基本语法Java的基本语法包括变量声明、数据类型、运算符、控制语句等。
Java是一种强类型语言,所有变量在使用前必须声明其类型。
- 数据类型:Java提供了多种数据类型,包括整型(int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。
- 变量:变量是存储数据的容器,需要指定类型和名称。
- 运算符:包括算术运算符、关系运算符、逻辑运算符、位运算符等。
- 控制语句:包括条件语句(if, switch)、循环语句(for, while, do-while)。
4. 面向对象编程面向对象编程(OOP)是Java的核心特性之一。
OOP基于类和对象的概念,类是对象的蓝图,而对象是类的实例。
- 类:定义了一组具有相同属性和方法的对象的结构。
- 对象:类的实例,具有类定义的属性和方法。
1.Java概述 Java 语言程序设计(第2版) 电子教案-文档资料
❖ 对Java小程序来说,它必须作为Applet类或 JApplet类的一个子类,继承Applet或JApplet 类的类是小程序的主类。
1.4 Java程序开发工具与开发方法
❖ 常用的Java程序开发工具有:
❖ 在面向对象的程序设计中,继承是指在已有类 的基础上建立一个新类。新类自动拥有父类的 所有元素:数据成员和成员方法,然后再根据 需要添加新任务所需的数据成员和成员方法。
❖ 一个不由任何类派生来的类称为基类;一个派 生类的最近的上层类叫做该类的父类;从某一 类派生出来的类叫做该类的子类。
❖ 多态性:
System.out.println(″Hello, World!″);
}
}
❖ 1.3.2 Java小程序举例
❖ 【例1.2】显示信息为Hello World! 的Java小 程序。
import java.awt.Graphics;
import java.applet.Applet;
public class HelloApplet extends Applet{
❖ 不同的对象对于相同的方法表现其不同的理解和 响应。可以想像的到:对于自行车和汽车,它们 都定义了刹车的方法,但它们的刹车方法却是完 全不同的。
❖ 在面向对象的程序设计语言中,多态性意味者一 个对象具有多个面孔。Java通过方法重写和方法 重载来实现多态。
❖ 通过方法重载,子类可以重新实现父类的某些方 法,使其具有自己的特征。
1.2 面向对象程序设计
❖ Java语言是一种面向对象(OO,Object Oriented) 的程序设计语言。无论是Java应用程序还是Java小 程序,它们都是以类为基础构建的。
北京信息科技大学Java语言程序设计-类和对象
【实验名称】实验2 类和对象【实验目的】1、学习和掌握Java创建对象的方法。
2、学习和掌握通过创建对象、使用类的方法。
3、学习和掌握Java类定义的方法。
4、了解类设计的一般原则。
【实验内容】1、(Java API类的应用)使用java.util.Random类,创建种子是1000的Random对象,然后使用nextInt(100)方法显示0到100之间前50个随机整数。
说明:⑴题目来源编程练习8.4(P238)。
⑵请查阅JavaAPI文档,了解java.util.Random的功能和使用方法。
【实验预习】1、输出0-100之间的50个随机整数。
2、建立种子为1000的random对象,返回0-100之间的随机整数型值,再输出这些值。
3、技术支持:用了java.util.random类,及循环语句。
【附:程序代码】public class RandomProgram{public static void main(String[]args){//以1000构造random对象java.util.Random random=new java.util.Random(1000);//输出0-100内的50个随机整型值for(int i=0;i<50;i++)System.out.print(random.nextInt(100)+" ");}}【实验过程及结果记录】在实验中遇到的问题:忘记写特定种子,这样使用的就是当前时间作为种子构造random对象。
2、(使用StackOfIntegers类,显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子。
例如:如果整数为120,那么显示的最小因子为5、3、2、2、2。
使用StackOfIntegers类存储因子(如:2、2、2、3、5),获取之后按倒序显示这些因子。
说明:⑴题目来源编程练习10.5(P296)。
04747《Java语言程序设计(一)》教材
Oak 语言在消费性电子产品市场上没有获得青睐。但在当时,Internet 开始流行,人们发明了一种网络传输协议, 这种协议可以在文本中插入图片和声音,能使单调的 Internet 世界变得图文并茂。虽然 Web 页面拥用图文和声音,但仍 然是静态的,不具备交互性。会段程序。由于在 Internet 上运行的数以千计不同类的计算机,这就要求编写这种程序的语言必须具有平台无关性,并要求语言必须简练,支撑环 境要小,而安全性却很高。Oak 语言恰好能够满足这些要求。
public static void main(String []args){ System.Out.println(“你好!欢迎你学习 Java 语言。”);
} } 上述 java 程序的执行将输出以下字样: 你好!欢迎你学习 Java 语言。
一个应用程序由若干个类组成,上面这个应用程序只有一个类,类的名字是 Example1_1。public 是 java 语言的关 键字,表示声明的类 Example1_1 是公用的。class 也是关键字,用来声明类。最外层的一对花括号以及括号内的内容叫 做类体。public static void main(String []args)是类 Example1_1 的一个方法。一个应用程序必须只有一个类含有 main()方法,这个类是应用程序的主类。public static void 是对 main()方法的说明。应用程序的 main()方法必须被 说明成 public static void。表示 main()方法的访问权限是公有的,它是一个类方法,没有结果返回,参见第 3 章。String []args 或 String args[],声明 main()方法的参数是一个字符串数组,参见第 4 章。
北京信息科技大学Java语言程序设计-继承和多态
【实验名称】实验3 继承和多态【实验目的】1、理解Java对类的继承使用方式。
2、对照学习和掌握Java对类的对象使用和继承使用方式。
3、学习和掌握Java继承的实现方法。
4、初步学习Java基于继承和多态的通用程序设计方法。
【实验日期和时间记录】实验预习时间:2014.5.14—2014.5.21实验过程时间:2014.5.23 20:00—22:42【实验内容】1、(账户类Account)根据编程练习8.7(P238),实现一个账户类Account。
第一步,根据编程练习8.7的描述,画出Account类的UML类图。
第二步,编写实现Account类。
第三步,编写Account类的测试程序,测试Account类的基本功能。
【实验预习】1.问题描述:创建一个Account类,打印余额、月利息以及这个账户的开户日期。
2.输入的是ID号,余额,年利率及取款额和存款额;处理:调用Account类中的函数输出:输出余额,月利息以及这个账户的开户日期3.技术支持:访问器及修改器;类和对象的建立;调用方法等。
4.具体过程:画出类的UML图,然后写代码:先写account类,在写主方法;5:日期及时间:2014.5.23 20:00—22:42【UML图】【附程序代码】public class testAccount{public static void main(String[]args){Account account=new Account(1122,20000);//创建一个账户ID为1122,余额为20000美元的对象account.setAnnualInterstRate(4.5);//该对象的年利率为4.5%account.withDraw(2500);//取款2500美元account.deposit(3000);//存款3000美元System.out.println("账户余额:"+account.getBalance());//打印账户余额System.out.println("月利息:"+account.getMonthlyInterstRate()*account.getBalance());//打印月利息System.out.println("账户开户日期:"+account.getDateCreated());//打印账户开户日期}}import java.util.Date;//定义一个account类public class Account{private int id=0;private double balance=0;private double annualInterstRate=0;private Date dateCreated=new java.util.Date();//构建一个默认账户public Account(){dateCreated=new java.util.Date();}//构建一个指定ID和账户余额的账户public Account(int newId,double newBalance){dateCreated=new java.util.Date();id=newId;balance=newBalance;}//返回这个账户的IDpublic double getId(){return id;}//设置这个账户的IDpublic void setId(int newId){id=newId;}//返回这个账户的余额double getBalance(){return balance;}//设置这个账户的余额public void setBalance(double newBalance){balance=newBalance;}//返回这个账户的年利率public double getAnnualInterstRate(){return annualInterstRate;}//设置这个账户的年利率public void setAnnualInterstRate(double newAnnualInterstRate){ annualInterstRate=newAnnualInterstRate;}//返回这个账户的开户日期public Date getDateCreated(){return dateCreated;}//返回这个账户的月利率public double getMonthlyInterstRate(){return getAnnualInterstRate()/1200;}//提取账户的现金public void withDraw(double amount){balance-=amount;}//向账户存储现金public void deposit(double amount1){balance+=amount1;}}【实验过程与结果记录】在实验过程,遇到的问题有:不会应用Date类,同时单词拼写错误;解决方法是:对于该题的dateCreated类,是一个实例属性,所以不能作为类属性,不能在类中构造,而应写在构造方法中。
大学JAVA学习资料
程序设计训练复习纲要第1章JAVA语言基础知识1.1JAVA语言与面向对象的程序设计1简述面向对象的编程语言与以往编程语言的根本不同点面向对象的编程语言与以往编程语言的根本不同在于抽象机制的不同。
机器语言和汇编语言几乎没有抽象,对于机器而言是最合适的描述,它可以直接操作机器的硬件,并且任何操作都是面向机器的,这就要求人们在使用机器语言或汇编语言编写程序时,必须按照机器的方式去思考问题。
因为没有抽象机制,所以程序员不得不陷入复杂的事物之中。
面向过程的语言使程序员可以离开机器层次,在更抽象的层次上表达意图。
但它所关注的只是处理过程,即执行预期计算所需要的算法。
面向对象的编程语言将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态(静态特征)和行为(动态特征),构成模型——类。
而程序需要解决的问题便反映为各种不同属性的对象以及对象之间的关系和消息传递。
面向对象的方法在程序设计领域是一种相对较新的方法,它更接近于人类处理现实世界问题的自然思维方法。
2封装的好处封装带来的好处是:隐藏类的数据、控制用户对类的修改和控制数据访问权限3面向对象技术给软件发展带来的益处●可重用性:一个设计好的类可以在今后的程序开发中被部分或全部地重复利用。
●可靠性:每一个类作为一个独立单元可以单独进行测试、维护,大量代码来源于可靠的类库,因而开发新程序时新增代码明显减少,这是程序可靠性提高的一个重要原因。
4面向对象语言的基本特征●抽象和封装:抽象的结果形成类,类中的数据和方法是受保护的,可以根据需要设置不同的访问控制属性。
这便保证了数据的安全性,隐藏了方法的实现细节,也方便了使用。
1/51●继承性:可以对已有类增加属性和功能,或进行部分修改来建立新的类,实现代码的重用。
●多态性:在面向对象的程序中,同一个消息被不同对象接收后可以导致不同的行为。
5Java语言的特点●面向对象:Java是完全面向对象的语言。
Java语言提供类的机制,在对象中封装了成员变量和方法,实现了数据的封装和信息隐藏;类提供了一类对象的模型,通过继承和多态,实现了代码的复用。
第十九讲 JavaGUI编程高级
第十九讲 JavaGUI 编程高级给GUI 应用程序添加菜单菜单概述菜单的作用:给应用程序设置操作菜单。
菜单组成JMenuItem---菜单项,直接指向一个具体的操作JMenu---菜单,其中可加入菜单项(JMenuItem )和菜单(Jmenu)JMenuBar----菜单栏,在其中可以加入菜单(JMenu )菜单的创建和组织菜单的创建JMenuBar如创建一个“File”菜单:JMenu file = new JMenu("File");菜单的组织菜单栏可象别的组件一样添加到应用程序窗口。
JFrame窗口加入菜单栏的方法:public void setJMenuBar(JMenuBar menubar)JMenuBar加入JMenu的方法:public JMenu add(JMenu c)JMenu中加入JMenu、JMenuItem、分隔线的方法:public JMenuItem add(JMenuItem menuItem)public void addSeparator()说明:因JMenu是JMenuItem的子类,故add(JMenuItem menuItem)也可加入JMenu菜单。
如:file.add(new JMenuItem("New"));file.addSeparator();快捷键设置JMenu的快捷键通常是Alt + 字符键的组合,可用setMnemonic方法设置:JMenu对象.setMnemonic(int mnemonic);JMenuItem的快捷键可以是Ctrl + 字符键或Alt + 字符键的组合,可用setAccelerator方法设置:JMenuItem对象.setAccelerator(KeyStroke.getKeyStroke(参数1,参数2));参数1指向快捷键字符。
参数2指向控制字符,通常是KeyEvent. CTRL_MASK (Ctrl),KeyEvent.ALT_MASK(Alt)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【实验名称】实验5 Java GUI【实验目的】1、学习和掌握Java常用的GUI组件。
2、学习和掌握Java常用的布局管理器。
3、实习和掌握Java的事件驱动程序设计方法。
4、能够实现简单的Java GUI。
【实验步骤(解题过程)】1、第一步,Java GUI静态界面的设计和实现,包括:组件和组件的摆放(布局管理器)。
2、第二步,Java GUI动态事件处理的设计与实现,需要Java事件驱动模型。
3、第三步,如果需要实体类支持,则按实验2的步骤实现实体类并使用。
【实验内容】1、(移动小球)编写一个程序,在面板上移动小球。
定义一个面板类来显示小球,并提供想做、向右、向上和向下移动小球的方法。
说明:⑴程序来源编程练习16.3(P456)。
⑵可以不考虑小球移动到边界外的情况。
【实验预习】1.问题描述:创建一个界面,通过鼠标点击按钮实现小球的上下左右移动。
2.输入;鼠标点击按钮;处理:通过事件监听,实现圆的重画;输出;显示出移动效果。
3.技术支持;需要用到事件监听,及圆的绘制即图形知识,布局管理器等。
【附编程代码】import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MovingBall extends JFrame {private static JButton bleft=new JButton("向左");private static JButton bright=new JButton("向右");private static JButton bup=new JButton("向上");private static JButton bdown=new JButton("向下");private CirclePanel canvas = new CirclePanel();public MovingBall() {JPanel panel = new JPanel(); // 将按钮放入面板中panel.add(bleft);panel.add(bright);panel.add(bup);panel.add(bdown);this.add(canvas, BorderLayout.CENTER); // 将含有圆的面板放在中央 this.add(panel, BorderLayout.SOUTH); //将含有按钮的面板放在右边//创建按钮的监听器并注册到按钮bleft.addActionListener(new Listener());bright.addActionListener(new Listener());bup.addActionListener(new Listener());bdown.addActionListener(new Listener());}//主方法public static void main(String[] args) {JFrame frame = new MovingBall();frame.setTitle("移动的小球");frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(480, 300);frame.setVisible(true);}//监听类class Listener implements ActionListener {public void actionPerformed(ActionEvent e) {System.out.println(new java.util.Date(e.getWhen())); if (e.getSource() == bleft)canvas.left();else if (e.getSource() == bright)canvas.right();else if (e.getSource() ==bup)canvas.up();else if (e.getSource() == bdown)canvas.down();}}//含有一个圆的面板的类class CirclePanel extends JPanel {private int x =0;private int y = 0;//左移这个圆public void left() {x--;repaint();}//右移这个圆public void right() {x++;repaint();}//上移这个圆public void up() {y--;repaint();}//下移这个圆public void down() {y++;repaint();}//重画这个圆protected void paintComponent(Graphics g) {super.paintComponent(g);g.drawOval(getWidth()/2+x,getHeight()/2+y,10, 10);}}}【实验过程及运行结果】在实验中遇到的问题是不会画圆,经过查书知道可以使用drawOval方法画圆。
2、(创建一个简单的计算器)编写一个程序完成加、减、乘、除操作。
图5 简单的计算器说明:⑴程序来源编程练习16.4(P456)。
⑵文本框组件javax. swing.JTextField,请参见教材17.6小节(P473),或者Java API文档。
⑶字符串与数值之间的转换,请参见2.18.1小节(P44)和9.2.10小节(P247),或者使用字符串格式化方法9.2.11(P248)。
【实验预习】1.问题描述:创建一个界面,利用鼠标点击加减乘除按钮,实现两个数之间的运算。
2.输入:在文本域中输入两个数字,并用鼠标点击按钮。
处理:创建一个监听类,对按钮进行监听,计算两个数字之间的运算。
输出:在结果文本域中显示运算结果3.技术要求:需要使用布局管理器,事件监听,及字符串与数字之间的转换等。
【附编程代码】import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class easyCalculation extends JFrame{private JButton Add=new JButton("加");private JButton Subtract=new JButton("减");private JButton Multiply=new JButton("乘");private JButton Divide=new JButton("除");private JTextField one=new JTextField(5);private JTextField second=new JTextField(5);private JTextField all=new JTextField(10);private JLabel a=new JLabel("第一个数");private JLabel b=new JLabel("第二个数");private JLabel c=new JLabel("结果");public easyCalculation(){FlowLayout panel=new FlowLayout(FlowLayout.CENTER, 20, 50);setLayout(panel);add(a);add(one);add(b);add(second);add(c);add(all);add(Add);add(Subtract);add(Multiply);add(Divide);Add.addActionListener(new Listener());Subtract.addActionListener(new Listener());Multiply.addActionListener(new Listener());Divide.addActionListener(new Listener());}//主方法public static void main(String[] args) {easyCalculation frame = new easyCalculation();frame.setTitle("简单的计算器");frame.setLocationRelativeTo(null); // Center the frameframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(500, 200);frame.setVisible(true);}class Listener implements ActionListener {public void actionPerformed(ActionEvent e) {System.out.println(new java.util.Date(e.getWhen()));if (e.getSource() == Add){double a1=Double.parseDouble(one.getText());double b1=Double.parseDouble(second.getText());all.setText(String.format("%.2f",a1+b1));}else if (e.getSource() == Subtract){double a1=Double.parseDouble(one.getText());double b1=Double.parseDouble(second.getText());all.setText(String.format("%.2f",a1-b1));}else if (e.getSource() == Multiply){double a1=Double.parseDouble(one.getText());double b1=Double.parseDouble(second.getText());all.setText(String.format("%.2f",a1*b1));}else if (e.getSource() == Divide){double a1=Double.parseDouble(one.getText());double b1=Double.parseDouble(second.getText());all.setText(String.format("%.2f",a1/b1));}}}}【实验过程及运行结果】在实验过程中遇到问题是,经常忘记添加接口或者继承。