java實驗報告,java實驗報告類與對象

本文目錄一覽:

java實驗報告

實驗1

Java開發工具及程序設計初步

實驗目的

能夠搭建Java的開發環境

熟悉常用的JDK操作命令的使用

熟悉Java程序的編寫和編譯過程

了解常用Java開發工具的使用

實驗內容

實驗練習1:搭建和使用JDK

1.JDK的下載和安裝

JDK是SUN公司免費在網上發布的,我們可以進入SUN公司的網站()下載並安裝。JDK安裝完成後,進行如下操作:

(1)查看並寫出JDK的安裝目錄______________________________;

(2)查看主目錄bin文件夾中常用的JDK命令文件,寫出java、javac等JDK命令所在的文件目錄_________________________________;

(3)在Windows中打開一個命令行窗口,打開命令行窗口的方法有兩種:

•選擇“開始”→“所有程序”→“附件”→“命令提示符”

•選擇“開始”→“運行…”命令,在打開的“運行”窗口中輸入“cmd”命令並“確定”。

(4)在打開的命令行窗口中,分別執行java和javac命令,如:C:\java

查看執行結果,看是否輸出如下的java命令的幫助信息(如圖1-1所示)。

圖1-1:java命令的幫助信息

C:\javac

查看執行結果,看是否輸出如下的javac命令的幫助信息(如圖1-2所示)。

圖1-2:javac命令的幫助信息

如果上面的信息均能輸出,說明JDK的安裝成功,基本上可正常使用。

2.操作系統環境變量的使用

操作系統的環境變量是在操作系統中定義的變量,可被該操作系統上運行的程序訪問。JDK中主要有兩個相關的操作系統環境變量,即path和classpath。

(1)查看操作系統環境變量

•在命令行窗口中執行set命令

如:C:\set

查看set命令的輸出結果,在set命令的輸出結果中可看到許多等式,其中等號的左邊是環境變量的名稱,等號的右邊是環境變量的取值。

命令:set

環境變量名,可查看指定的某個環境變量的設置情況。

執行命令:C:\set

path,查看path變量的設置情況。

•在“環境變量”窗口中查看環境變量

用鼠標右鍵單擊“我的電腦”,選擇“屬性”命令,在打開的“系統屬性”對話框中選擇“高級”→“環境變量”,打開“環境變量”窗口。

在“環境變量”窗口中,有用戶變量和系統變量兩種環境變量。其中,用戶環境變量只對某個用戶起作用;系統環境變量對該系統上的所有用戶都有效。

當我們以某一用戶身份登錄Windows時,它所使用的變量是系統變量和用戶變量的總和。

如果一個變量在系統變量窗口和用戶變量窗口都進行了設置,那麼這個變量的取值在一般情況下為系統變量的取值與用戶變量的取值相加;但有時也會出現用戶變量的取值覆蓋系統變量取值的情況。不管是什麼情況,最終都以在命令行窗口中通過set命令查看到的結果為準。

(2)設置系統的環境變量

•在命令窗口中執行set命令

格式:set

變量名=[變量值]

執行如下命令,查看執行結果。

C:\set

Xx=aa

//新建一個環境變量並設置其取值

C:\set

Xx

//查看該環境變量

C:\set

Xx=

//取消環境變量的設置

C:\set

//查看環境變量

注意:在命令行窗口中設置的環境變量,只在該命令行窗口中起作用。

•在“環境變量”窗口中進行設置

可使用“新建”或“編輯”按鈕。

注意:①

在“環境變量”窗口中設置的環境變量對以後所有的應用程序和命令行窗口都起作用,但不會影響原來運行的應用程序和啟動的命令行窗口。

在“用戶環境變量”窗口中進行的設置需要在註銷重新登錄後才起作用。

(3)path環境變量的作用和設置

環境變量path的值指定了JDK命令搜索路徑,即當我們要執行某個命令時,操作系統首先會在當前目錄下查找這個命令,如果當前目錄下沒有這個命令程序,操作系統會沿着path環境變量中所指定的目錄依次去查找這個命令文件,並以最先找到的為準。

觀察path變量的取值情況,path變量可以有多個取值,每個值代表一條搜索路徑,它們之間用“;”分隔。

在命令行窗口中執行如下命令:

C:\set

path

//查看path環境變量

C:\set

path=

或set

path=C:\

//取消path變量的設置或重新設置path的值

C:\set

path

C:\java

或javac

//執行java或javac命令

會出現如下錯誤信息(如圖1-3所示):

圖1-3:錯誤信息

分析錯誤的原因:_____________________________________________________

改正的方法:__________________________________

實驗練習2:Java程序的編寫與編譯過程

1.一個簡單的Java程序的編寫與編譯

第一步:先在磁盤上創建保存程序文件的目錄(文件夾),如:D:\javawork\lesson1。

第二步:在“記事本”中創建並編輯Java源程序文件Test1.java,程序代碼如下:

class

Test1

{

}

保存文件,擴展名為.java。

第三步:在命令行窗口中,對源文件Test1.java進行編譯。

可參考如下命令:

如果當前盤當前目錄為C:\,先將當前目錄設置為D:\javawork\lesson1。

C:\d:

D:\cd

ja*w*

D:\javaworkcd

le*

D:\javawork\lesson1javac

Test1.java

如果編譯成功,則不出現任何提示,回到命令提示符狀態下。打開保存源文件的文件夾,查看編譯生成的字節碼文件Test1.class。

第四步:運行字節碼文件Test1.class。

D:\javawork\lesson1java

Test1

執行結果出現異常,如圖1-4所示。

圖1-4:執行出現異常

出現異常的原因是:缺少執行應用程序的入口main方法。main方法的聲明必須是public

static

void

main(String

args[]){}。修改源程序代碼並重新編譯,源程序代碼如下:

class

Test1

{

public

static

void

main(String

args[])

{

}

}

編譯完成後,執行字節碼文件。

在main方法中,添加輸出的語句並重新編譯執行,程序代碼如下:

class

Test1

{

public

static

void

main(String

args[])

{

System.out.println(“Hello

World!”);

}

}

輸出結果如圖1-5所示。

圖1-5:程序執行結果

2.classpath環境變量的作用與設置

環境變量calsspath用於指定Java類的路徑,即設置classpath的作用是告訴Java運行系統的類加載器到哪裡去尋找要執行的類。

在前面打開的命令行窗口中繼續執行以下命令:

D:\java

Test1

執行結果如圖1-6所示:

圖1-6:改變當前目錄後重新執行的結果

會發現程序執行出現異常:無法找到Test1類。說明在classpath變量中沒有將Test1.class文件所在的目錄設置為搜索路徑,在命令行窗口中執行命令:

D:\set

classpath=%classpath%;d:\javawork\lesson1

重新執行程序,則運行結果正常。

調試練習

本節中的程序Test2.java不能正確地編譯,修改所有的語法錯誤,使程序能夠成功編譯。程序編譯之後,執行程序,比較輸出結果與示例輸出,然後排除所有可能的邏輯錯誤,示例輸出演示了代碼更正後程序的正確輸出結果。

1.示例輸出

2.錯誤的代碼

//Test2.java

import

javax.swing.JOptionPane;

public

class

test2

{

public

static

void

main(string

args[])

{

JOptionPane.showMessageDialog(null,”Hello”)

}

}

java實驗報告程序

public interface Auth {

public void check(String name,String pwd,AuthResult result);

}

class AuthResult{

public String msg;// 結果信息

public boolean success;// 驗證結果

public boolean isSuccess(){

return success;

}

public String getMsg(){

return msg;

}

}

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Map;

public class Auth1 implements Auth {

MapString, String data = new HashMapString, String();

@Override

public void check(String name,String pwd,AuthResult result) {

try {

// 加載用戶名和密碼

InputStream in = getClass().getResourceAsStream(“Auth1.txt”);

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String temp = null;

while((temp = br.readLine()) != null){

data.put(temp.split(“:”)[0], temp.split(“:”)[1]);

}

if(data.get(name) == null){

result.success = false;

result.msg = “用戶名錯誤”;

return;

}

if(!pwd.equals(data.get(name))){

result.success = false;

result.msg = “密碼錯誤”;

return;

}

result.success = true;

result.msg = “auth success!”;

} catch (Exception e) {

e.printStackTrace();

}

}

}

public class Auth2 implements Auth {

MapString, String data = new HashMapString, String();

@Override

public void check(String name,String pwd,AuthResult result) {

try {

// 加載用戶名和密碼

InputStream in = getClass().getResourceAsStream(“Auth2.txt”);

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String temp = null;

int i = 1;

String temp1 = null;

while((temp = br.readLine()) != null){

if(i % 2 == 0){

data.put(temp1, temp);

} else {

temp1 = temp;

}

i++;

}

if(data.get(name) == null){

result.success = false;

result.msg = “用戶名錯誤”;

return;

}

if(!pwd.equals(data.get(name))){

result.success = false;

result.msg = “密碼錯誤”;

return;

}

result.success = true;

result.msg = “auth success!”;

} catch (Exception e) {

e.printStackTrace();

}

}

}

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Auth1 a1 = new Auth1();

Auth2 a2 = new Auth2();

Scanner sc = new Scanner(System.in);

String name = null;

String pwd = null;

System.out.println(“enter name:”);

name = sc.nextLine();

System.out.println(“enter pwd:”);

pwd = sc.nextLine();

AuthResult result = new AuthResult();

System.out.println(“—Auth1—check”);

a1.check(name,pwd,result);

if(result.isSuccess()){

System.out.println(“auth success!”);

} else {

System.out.println(“auth fail! because ” + result.getMsg());

}

System.out.println(“—Auth2—check”);

a2.check(name,pwd,result = new AuthResult());

if(result.isSuccess()){

System.out.println(“auth success!”);

} else {

System.out.println(“auth fail! because ” + result.getMsg());

}

}

}

文件與這些類同包下應該就能讀到

Auth1.txt

name1:pwd1

name2:pwd2

Auth2.txt

name3

pwd3

name4

pwd4

java實驗報告總結

源代碼:

public class Exe1_1 {

public static void main (String args[]){

byte a1=127;

int a2=12345;

long a3=123456789L;

float a4=1.23e-5f;

double a5=1.4567e3;

char a6=65;

boolean a7=true;

System.out.println(“a1=”+a1+”\na2=”+a2+”\na3=”+a3+”\na4=”+a4+”\na5=”+a5+”\na6=”+a6+”\na7=”+a7);

}

}運行結果:

2.編寫Java小應用程序,輸出兩行字符串:“Java很有趣。”和“努力學習Java編程。”,輸出的起點坐標是(20,20),行距是50像素。源程序代碼:

import java.awt.Graphics;

import java.applet.Applet;

public class Exe1_2 extends Applet{

public void paint(Graphics g){

g.drawString(“Java很有趣。”,20,20);

g.drawString(“努力學習Java編程。”,20,70);

}

}運行情況:

3.使用算術運算符得到一個4位十進制數的各位數字並輸出,然後輸出該數的逆序數和各位數字平方後相加的和。

源程序代碼:

public class Exe1_3 {

public static void main (String args[]){

int n=3756,a,b,c,d,n1;

a=n/1000;

b=(n-1000*a)/100;

d=n%10;

c=(n%100-d)/10;

System.out.println(“3756的逆序數為:”+d+” “+c+” “+b+” “+a);

System.out.print(“各位數字平方後相加的和為:”);

System.out.print(a*a+b*b+c*c+d*d);

}

}

運行結果:

三、實驗總結(是否完成實驗、實驗過程中的問題以及解決方法分析等)

本次是我第一次使用JAVA來進行編程,感覺很是不一樣,在前兩節課中我們學習了有關Java的一些簡單知識。然後這次的實驗是對最初的一種練習。

在第一題中,我們重要是認識java的運行環境,並且了解各種變量的數據類型。只要通過簡單的語句就可以通過運行。其中出現了一些單詞的拼寫錯誤,這些是可以修改正確的。第二題我們練習的十一個小的applet應用程序,需要設置一個網頁來顯示,這是一個很不一樣的地方,最後成功測試,裡面需要注意的是顯示位置的問題。第三題我們做的是一個有算法要求的解決問題,在測試中出現了一點小問題,程序的算法出了錯。還有一個問題是有關於顯示問題,最後的數據輸出需要用到兩行分別顯示字符和數據,這樣才不會出錯。

java面向對象程序設計實驗報告怎麼寫

1。People.java

public class People {

//性別(sex)及出生日期(date);方法成員有:獲取人的性別和出生日期及構造方法。要求構造方法可以設置性別和出生日期的初始值。

private int sex;

private Date birth;

public People (int sex, Date birth) {

this.sex = sex;

this.birth = birth;

}

public int getSex() {

return this.sex;

}

public Date getBirth() {

return this.birth;

}

}

2。Student.java

public class Student extends People{

private int sex;

private Date birth;

private String name;

private int stuno;

private double grate;

private String studentNative;

public Student(int sex, Date birth, String name, int stuno, double grate, String studentNative) {

super(sex, birth);

this.name = name;

this.stuno = stuno;

this.grate = grate;

this.studentNative = studentNative;

}

public Date getBirth() {

return birth;

}

public double getGrate() {

return grate;

}

public String getName() {

return name;

}

public int getSex() {

return sex;

}

public String getStudentNative() {

return studentNative;

}

public int getStuno() {

return stuno;

}

}

3。測試類自己編寫就好了,創建一個People和Student的對象,然後設置值,取值就可以了。

五。

1.構造方法沒有返回值,方法名和類名一樣.

2.繼承是指子類可以擁有父類的方法和屬性;多態是指父類的引用可以指向子類對象的實例

3.重寫

4.重載

java實驗報告,沒時間寫了 ,一百分

package cn.rain.form;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Moble extends JFrame {

private static final long serialVersionUID = 1L;

private JTextField txtView;

/**

* Launch the application

* @param args

*/

public static void main(String args[]) {

try {

Moble moble = new Moble();

moble.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* Create the frame

*/

public Moble() {

setTitle(“Moble”);

setBounds(100, 100, 200, 300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JPanel panel = new JPanel();

getContentPane().add(panel, BorderLayout.CENTER);

txtView = new JTextField();

panel.setLayout(null);

panel.add(txtView);

final JButton btn1 = new JButton();

btn1.addActionListener(new ActionListener() {

//加監聽

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“1”));

}

});

btn1.setText(“1”);

btn1.setBounds(0, 73, 59, 23);

panel.add(btn1);

final JButton btn2 = new JButton();

btn2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//文本顯示

txtView.setText(txtView.getText().concat(“2”));

}

});

btn2.setText(“2”);

btn2.setBounds(68, 73, 59, 23);

panel.add(btn2);

final JButton btn3 = new JButton();

btn3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“3”));

}

});

btn3.setText(“3”);

btn3.setBounds(133, 73, 59, 23);

panel.add(btn3);

final JButton btn4 = new JButton();

btn4.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“4”));

}

});

btn4.setText(“4”);

btn4.setBounds(0, 102, 59, 23);

panel.add(btn4);

final JButton btn5 = new JButton();

btn5.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“5”));

}

});

btn5.setText(“5”);

btn5.setBounds(65, 102, 59, 23);

panel.add(btn5);

final JButton btn6 = new JButton();

btn6.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“6”));

}

});

btn6.setText(“6”);

btn6.setBounds(133, 102, 59, 23);

panel.add(btn6);

final JButton btn7 = new JButton();

btn7.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“7”));

}

});

btn7.setText(“7”);

btn7.setBounds(0, 131, 59, 23);

panel.add(btn7);

final JButton btn8 = new JButton();

btn8.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“8”));

}

});

btn8.setText(“8”);

btn8.setBounds(65, 131, 59, 23);

panel.add(btn8);

final JButton btn9 = new JButton();

btn9.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“9”));

}

});

btn9.setText(“9”);

btn9.setBounds(133, 131, 59, 23);

panel.add(btn9);

final JButton btn0 = new JButton();

btn0.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(txtView.getText().concat(“0”));

}

});

btn0.setText(“0”);

btn0.setBounds(68, 160, 57, 23);

panel.add(btn0);

txtView = new JTextField();

txtView.setBounds(59, 24, 90, 21);

panel.add(txtView);

final JButton btnSend = new JButton();

btnSend.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//如果撥過號了,就不能再撥

if(txtView.getText().indexOf(“calling…”)==-1){

txtView.setText(txtView.getText().concat(“calling…”));

}

else{

return;

}

}

});

btnSend.setText(“Send”);

btnSend.setBounds(40, 189, 127, 23);

panel.add(btnSend);

final JButton btnclear = new JButton();

btnclear.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

txtView.setText(“”);

}

});

btnclear.setText(“Clear”);

btnclear.setBounds(40, 212, 127, 23);

panel.add(btnclear);

final JButton btnOff = new JButton();

btnOff.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

dispose();

}

});

btnOff.setText(“Off”);

btnOff.setBounds(40, 232, 127, 23);

panel.add(btnOff);

}

}

//這個程序不難的,好像沒什麼注釋可寫,你自己看看應該看得懂,如果哪

//里不明白,再問我吧,程序沒有問題,我運行過了~

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304902.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-01 11:06
下一篇 2025-01-01 11:06

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論