java实验1机动车实验目的_《Java程序设计》实验指导书.doc
《Java程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書(shū)
實(shí)驗(yàn)一、熟悉JDK環(huán)境及主要命令
一、實(shí)驗(yàn)?zāi)康?/p>
1) 熟悉JDK的環(huán)境配置
2) 掌握J(rèn)DK的命令
3) 掌握J(rèn)ava Application程序的開(kāi)發(fā)過(guò)程,并編寫(xiě)一個(gè)Java Application程序
二、實(shí)驗(yàn)內(nèi)容
1.按照上課所學(xué)知識(shí),為自己的機(jī)器配置環(huán)境變量
2.編輯一個(gè)Hello World 的小程序,并試著編譯運(yùn)行它
3.將Vehicle 和VehicleDriver兩個(gè)文件用自己的文本編輯器重新編輯并編譯運(yùn)行,掌握類(lèi)和對(duì)象的定義和使用
1)Vehicle.java (注意:以下代碼有幾個(gè)錯(cuò)誤的地方,需要同學(xué)自己把他們找出來(lái)并更正過(guò)來(lái))
public class Vehicle{
public float journey;
public int wheelNum;
public int loadNum;
public int driveSpeed;
/**
*Vehicle 類(lèi)構(gòu)造函數(shù),設(shè)定初始值
*/
public Vehicle(){
journey=100.3f;
wheelNum=4;
loadNum=1;
}
/**
*Vehicle類(lèi)的driveAt行駛方法
*/
public void driveAt(int speed){
if (speed>=60){
System.out.println("行車(chē)速度太快,容易造成事故");
//如果要求的車(chē)速太快,則機(jī)動(dòng)車(chē)自動(dòng)以40單位速度行駛
driveSpeed=40;
}
else {
System.out.println("你在安全行駛速度內(nèi)行駛");
driveSpeed=speed;
}
}
}
2)VehicleDriver.java
public class VehicleDriver{
public String name; //定義司機(jī)的名字
/**
*VehicleDriver 類(lèi)構(gòu)造函數(shù)
*/
public VehicleDriver(){
name="TOM";
}
/**
*VehicleDriver 類(lèi)對(duì)象的work方法
*/
public void work(){
Vehicle v=new Vehicle(); //生成Vehicle類(lèi)的對(duì)象v
v.driveAt(70); //調(diào)用v對(duì)象所固有的driveAt()方法
}
public static void main(String args[]){
//生成VehicleDriver類(lèi)的對(duì)象vb
VehicleDriver vd=new VehicleDriver();
vd.work(); //調(diào)用vd對(duì)象所固有的work()方法
}
}
3.將Vehicle 和VehilceDriver 兩個(gè)類(lèi)放在一個(gè).java文件中,文件名稱(chēng)取名為Vtogether.java (注意:需將Vehicle 或 VehicleDriver中某一個(gè)類(lèi)的名稱(chēng)改名為Vtogether,具體更改哪一個(gè)由同學(xué)根據(jù)實(shí)際情況來(lái)判斷),編譯和運(yùn)行該文件
實(shí)驗(yàn)二、類(lèi)的定義和對(duì)象的使用
一、實(shí)驗(yàn)?zāi)康?/p>
1) 掌握類(lèi)的定義
2) 掌握對(duì)象的使用
3) 掌握構(gòu)造方法的重載
二、實(shí)驗(yàn)內(nèi)容
1.創(chuàng)建一個(gè)汽車(chē)類(lèi)CarModel.java,它里面有2個(gè)不同的構(gòu)造函數(shù),CarManufactory.java可以應(yīng)用這些構(gòu)造方法創(chuàng)建不同類(lèi)型的汽車(chē)
CarModel.java設(shè)計(jì)要求如下:
定義style(String),color(String),category(String)注:括號(hào)中為變量類(lèi)型
創(chuàng)建第一個(gè)構(gòu)造函數(shù),分別給以上變量賦值,要求為該構(gòu)造函數(shù)定義三個(gè)形參,分別賦給相應(yīng)的變量,形參的值在對(duì)象創(chuàng)建時(shí)給出
創(chuàng)建第二個(gè)構(gòu)造函數(shù),此構(gòu)造函數(shù)過(guò)程為空
定義三個(gè)方法,分別返回style,color,category的值
CarManufactory.java設(shè)計(jì)要求如下:
使用不同的構(gòu)造函數(shù)創(chuàng)建兩輛汽車(chē)
顯示兩輛車(chē)相關(guān)的屬性,屬性的值要從CarModel的相關(guān)方法中取出
2.判斷以下程序的結(jié)果,并把它改成兩個(gè)類(lèi)的形式,其中一個(gè)類(lèi)專(zhuān)門(mén)處理運(yùn)算。
public class Excer{
public static void main(String args[]){
Excer ex=new Excer();
ex.math();
}
void math(){
int x=130,y=45;
System.out.println("x="+x+" ,y="+y);
System.out.println("x+y="+plus(x,y));
System.out.println("x-y="+minus(x,y));
System.out.println("x*y="+multi(x,y));
System.out.println("x/y="+div(x,y));
}
int plus(int a,int b){
return(a+b);
}
int minus(int a,int b){
return(a-b);
}
int multi(int a,int b){
return(a*b);
}
float div(int a,int b){
return ((float)a/b);
}
}
實(shí)驗(yàn)三、繼承
一、實(shí)驗(yàn)?zāi)康?/p>
1) 掌握類(lèi)的繼承
2) 掌握類(lèi)成員的覆蓋和重載
二、實(shí)驗(yàn)內(nèi)容
1.Vehicle類(lèi)的基礎(chǔ)上創(chuàng)建一個(gè)Tractor(拖拉機(jī))類(lèi),他不但擁有journey,wheelNum,loadNum,driveSpeed 四種屬性和driveAt()方法,而且還擁有自己的plough(耕地)方法,在該方法中要求能夠顯示journey, wheelNum, loadNum三個(gè)屬性的值,在Tractor中覆蓋driverAt()方法,速度大于等于35就認(rèn)為是超速,如果是超速速度就要設(shè)為20,在這個(gè)類(lèi)中還要?jiǎng)?chuàng)建一個(gè)main()方法,分別調(diào)用plough()、driveAt方法和Vehicle類(lèi)的driverAt()方法。
public class Vehicle{
public float journey;
public int wheelNum;
public int loadNum;
public int driveSpeed;
public Vehicle(){
journey=100.3f;
wheelNum=4;
loadNum=1;
}
public void driveAt(int speed){
if (speed>=60){
System.out.println("行車(chē)速度太快,容易造成事故");
//如果要求的車(chē)速太快,則機(jī)動(dòng)車(chē)自動(dòng)以40單位速度行駛
driveSpeed=40;
}
else {
System.out.println("你在安全行駛速度內(nèi)行駛");
driveSpeed=speed;
}
}
}
2.在以下程序中出現(xiàn)了屬性的覆蓋和方法的重載,編譯運(yùn)行下面程序,掌握產(chǎn)生屬性覆蓋時(shí)屬性的變化規(guī)則和方法的重載時(shí)調(diào)用的方法規(guī)則。
class NoteX {
public static final int MIDDLE_C = 0;
public static final int C_SHARP = 1;
public static final int C_FLAT = 2;
}
public class Father{
int a=100;
public void miner(){
a--;
}
public void play(int NoteX) {
System.out.println("Father.play()");
}
public static void main(String[] arg){
Father x=new Father();
Son y=new Son();
System.out.println("a of son is :" +y.a);
System.out.println("a of sons super is :" +y.getA());
y.miner();
System.out.println("a of son is :"+y.a);
System.out.println("a of sons super is :" +y.getA());
y.play(NoteX. C_SHARP);
y.play(new NoteX());
}
}
class Son extends Father {
int a=0;
public int getA(){
return super.a;
}
public void play(NoteX n) {
System.out.println("Son.play(NoteX n)");
}
}
實(shí)驗(yàn)四、接口與內(nèi)部類(lèi)
一、實(shí)驗(yàn)?zāi)康?/p>
1)、掌握接口的定義和使用方法
2)、掌握內(nèi)部類(lèi)的定義和使用方法
二、實(shí)驗(yàn)內(nèi)容
1. 將以下圖示用接口實(shí)現(xiàn)和繼承實(shí)現(xiàn)
2. 已知有兩個(gè)接口如下所示,要求定義一個(gè)類(lèi),其中包含兩個(gè)內(nèi)部類(lèi),這兩個(gè)內(nèi)部類(lèi)分別實(shí)現(xiàn)這兩個(gè)接口,且設(shè)為private,在類(lèi)中分別定義兩個(gè)方法,可以返回這兩個(gè)接口。
public interface Destination {
String readLabel();
}
public interface Contents {
int value();
}
實(shí)驗(yàn)五、異常的處理機(jī)制
一、實(shí)驗(yàn)?zāi)康?/p>
1) 掌握異常的聲明
2) 掌握異常的拋出
3) 掌握異常的捕獲
4) 掌握自定義異常的使用
二、實(shí)驗(yàn)內(nèi)容
1.編寫(xiě)一段Java程序,在被調(diào)用方法中拋出一個(gè)異常對(duì)象,并將異常交給調(diào)用它的方法來(lái)處理
2.編寫(xiě)一段Java程序,創(chuàng)建一個(gè)自定義異常類(lèi),并在一個(gè)方法中拋出自定義異常對(duì)象,在該方法的catch處理程序中捕獲它并重新拋出,讓調(diào)用它的方法來(lái)處理。
實(shí)驗(yàn)六、多線(xiàn)程編程
一、實(shí)驗(yàn)?zāi)康?/p>
1) 了解多線(xiàn)程的定義
2) 理解多線(xiàn)程的互斥和同步
3) 掌握多線(xiàn)程的調(diào)度和控制
二、實(shí)驗(yàn)內(nèi)容
1.使用Runnable接口實(shí)現(xiàn)以下類(lèi)的功能:
public class testThread extends Thread{
public testThread(){}
public void run(){
System.out.println("run()方法運(yùn)行....");
}
public static void main(String arg[]){
testThread t=new testThread();
System.out.println("start() 開(kāi)始運(yùn)行...");
t.start();
}
}
2.假設(shè)一個(gè)銀行的ATM機(jī),它可以允許用戶(hù)存款也可以取款。現(xiàn)在一個(gè)賬戶(hù)上有存款200元,用戶(hù)A和用戶(hù)B都擁有在這個(gè)賬戶(hù)上存款和取款的權(quán)利。用戶(hù)A將存入100元,而用戶(hù)B將取出50元,那么最后賬戶(hù)的存款應(yīng)是250元。
實(shí)際操作過(guò)程如下:
l 先進(jìn)行A的存款操作:
(1)得到賬戶(hù)的存款數(shù)額200,耗時(shí)2s。
(2)將賬戶(hù)數(shù)額增加100,耗時(shí)忽略不計(jì)
(3)將新生成的賬戶(hù)結(jié)果300返回到ATM機(jī)的服務(wù)器上,耗時(shí)2s
l 在進(jìn)行B的取款操作:
(4)得到增加后賬戶(hù)存款數(shù)額300,耗時(shí)2s。
(5)將賬戶(hù)數(shù)額減少50,耗時(shí)忽略不計(jì)。
(6)將新生成的賬戶(hù)結(jié)果250返回到ATM機(jī)的服務(wù)器上,耗時(shí)2s。
請(qǐng)同學(xué)們根據(jù)以上要求,編寫(xiě)一個(gè)Java程序?qū)崿F(xiàn)該功能
注:將A的操作和B的操作分別用線(xiàn)程來(lái)表示
3.如下是消費(fèi)者和生產(chǎn)者的一個(gè)簡(jiǎn)化例子,將次程序看懂,然后寫(xiě)下運(yùn)行結(jié)果。
//CubbyHole.java 存儲(chǔ)數(shù)據(jù)
public class CubbyHole {
private int contents;
private boolean available = false;
public synchronized int get() {
while (available == false) {
try {
wait();
} catch (InterruptedException e) { }
}
System.out.println("Customerer " + "goe: " + contents);
available = false;
notifyAll();
return contents;
}
public synchronized void put(int value) {
while (available == true) {
try {
wait();
} catch (InterruptedException e) { }
}
System.out.println("Producer " + "put " + value);
contents = value;
available = true;
notifyAll();
}
}
// Producer.java 生產(chǎn)者
public class Producer extends Thread {
private CubbyHole cubbyhole;
public Producer(CubbyHole c) {
cubbyhole = c;
}
public void run() {
for (int i = 0; i < 10; i++) {
cubbyhole.put(i);
}
}
}
// Consumer.java 消費(fèi)者
public class Consumer extends Thread {
private CubbyHole cubbyhole;
public Consumer(CubbyHole c) {
cubbyhole = c;
}
public void run() {
int value = 0;
for (int i = 0; i < 10; i++) {
value = cubbyhole.get();
}
}
}
//測(cè)試程序
public class ProducerConsumerTest {
public static void main(String[] args) {
CubbyHole c = new CubbyHole();
Producer p1 = new Producer(c);
Consumer c1 = new Consumer(c);
p1.start();
c1.start();
}
}
實(shí)驗(yàn)七、輸入輸出字節(jié)流
一、 實(shí)驗(yàn)?zāi)康?/p>
1)、掌握輸入字節(jié)流的操作
2)、掌握輸出字節(jié)流的操作
二、 實(shí)驗(yàn)內(nèi)容
1.定義一個(gè)字節(jié)數(shù)組,將其輸出到屏幕上
2.將一個(gè)圖片的內(nèi)容讀取到字節(jié)數(shù)組當(dāng)中
實(shí)驗(yàn)八、輸入輸出字符流
一、實(shí)驗(yàn)?zāi)康?/p>
1)、掌握輸入字符流的操作
2)、掌握輸出字符流的操作
二、實(shí)驗(yàn)?zāi)康?/p>
1. 從鍵盤(pán)輸入一串字符,將其輸出到屏幕上
2. 將一個(gè)文本文件輸出到屏幕上
實(shí)驗(yàn)九、文件及其文件流
一、實(shí)驗(yàn)?zāi)康?/p>
1)、掌握文件的操作
2)、掌握文件輸入流的操作
3)、掌握文件輸出流的操作
二、實(shí)驗(yàn)內(nèi)容
1.使用對(duì)象的串行化機(jī)制,使用RandomAccessFile構(gòu)造一個(gè)應(yīng)用程序能夠隨機(jī)存取文件的記錄,可顯示、修改記錄的內(nèi)容。撰寫(xiě)一個(gè)StoreDirList類(lèi),令其構(gòu)造函數(shù)可以接收文件路徑,并能夠產(chǎn)生該路徑下的所有文件的名稱(chēng)列表。
2.用DataInputStream輸出一個(gè)整型數(shù),一個(gè)雙精度數(shù)和一個(gè)字符串到文件中,然后用DataOutputStream將這些文件讀入并打印到標(biāo)準(zhǔn)輸出設(shè)備。
實(shí)驗(yàn)十、Swing容器及其組件
一、實(shí)驗(yàn)?zāi)康?/p>
1)、掌握容器的屬性與方法
2)、掌握Swing不同組件的屬性與方法
二、實(shí)驗(yàn)內(nèi)容
1.應(yīng)用按鈕、單選按鈕、復(fù)選框、文本組件等Swing組件設(shè)計(jì)一個(gè)安裝程序的對(duì)話(huà)框界面
實(shí)驗(yàn)十一、布局管理器
一、 實(shí)驗(yàn)?zāi)康?/p>
1)、掌握布局管理器的類(lèi)型
2)、掌握布局管理器的使用方法
二、 實(shí)驗(yàn)內(nèi)容
1.應(yīng)用布局方法設(shè)計(jì)一個(gè)手機(jī)的界面
實(shí)驗(yàn)十二、事件處理
一、 實(shí)驗(yàn)?zāi)康?/p>
1)、掌握事件處理模型
2)、能夠用程序?qū)崿F(xiàn)事件處理
3)、掌握使用內(nèi)部類(lèi)的方法處理事件
二、 實(shí)驗(yàn)內(nèi)容
1.在一個(gè)窗口中,在四個(gè)位置循環(huán)顯示四種不同顏色的正方形,當(dāng)鼠標(biāo)點(diǎn)擊時(shí),停止循環(huán)顯示,再次點(diǎn)擊,恢復(fù)顯示
2.在窗口的一個(gè)區(qū)域進(jìn)行鼠標(biāo)操作:mouseEnter,mouseExit,mousePress,mouseDrage和mouseClick。在窗口的另一個(gè)區(qū)域以文字顯示鼠標(biāo)所進(jìn)行的相應(yīng)操作。另外當(dāng)鼠標(biāo)進(jìn)行mousePress,mouseDrage,mouseClick操作時(shí),將顯示一個(gè)圖片。當(dāng)鼠標(biāo)拖拉時(shí),圖片隨鼠標(biāo)移動(dòng)。
展開(kāi)閱讀全文
總結(jié)
以上是生活随笔為你收集整理的java实验1机动车实验目的_《Java程序设计》实验指导书.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么python除法结果会有小数点0_
- 下一篇: java美元兑换,(Java实现) 美元