本文目錄一覽:
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