一、實驗目的:
掌握Java類的結構、類的定義、方法和屬性的定義以及對象的實現;
掌握類及其成員修飾符的使用;掌握構造函數的使用;方法的參數傳遞和返回值的用法;
掌握類變量與實例變量,以及類方法與實例方法的區別。
二、實驗內容:
1. 定義一個學生類(Student),屬性有private的名字(name), public的年齡(age),專業(specialty)和封裝name屬性的方法:setName(),getName(),getspecialty()編寫Application,創建一個學生對象,設置name和age屬性值,然後調用一個方法(此方法將對象作爲參數傳遞,在方法中打印出學生的名字name和年齡age)。(學生類僅包含靜態成員變量和方法。)
2. 定義一個類Point,代表一個點,public屬性有x和y,方法有顯示點座標 show(),構造函數有兩個參數分別給x,y賦值,在main方法中構造兩個對象,再創建一方法(getMiddle)爲取兩個點構成線段的中點的座標,參數爲2個點對象,調用此方法後得到一個新的點,編寫Application,顯示該對象的座標值。
3. 定義一個複數(z=x+iy)類Complex,包含:
兩個屬性:實部x和虛部y
默認構造函數 Complex(),設置x=0,y=0
構造函數:Complex(int i,int j)
顯示覆數的方法:showComp()將其顯示爲如: 5+8i或5-8i 的形式。
求兩個複數的和的方法:(參數是兩個複數類對象,返回值是複數類對象)public Complex addComp(Complex C1,Complex C2)
求兩個複數的差的方法:(參數是兩個複數類對象,返回值是複數類對象)public Complex subComp(Complex C1,Complex C2)
求兩個複數的乘積的方法:(參數是兩個複數類對象,返回值是複數類對象,新複數實部=兩複數實部乘積-兩複數虛部乘積,新複數虛部=兩複數實部與虛部交叉乘積之和,)public Complex multiComp(Complex C1,Complex C2)
比較兩個複數是否相等的方法(參數是兩個複數類對象,返回值是boolean類型)public boolean equalComp(Complex C1,Complex C2)
在Application中測試該類的方法,實部x和虛部y可由main方法參數提供輸入。
三、實驗要求:
1. 正確地定義類、方法和屬性;
2. 學會方法的參數傳遞和返回值的用法;
3. 熟練使用類及其成員修飾符
4.使用構造函數創建類的對象;
5. 類變量與實例變量,以及類方法與實例方法的使用
6.程序應包括各個被調用方法的執行結果的顯示。
7.寫出實驗報告。要求記錄編譯和執行Java程序當中的系統錯誤信息提示,並給出解決辦法。(附源代碼、運行結果、和實驗的心得體會)。
四、實驗步驟:
1.(第1題)定義一個學生類(Student)及它的屬性和方法;定義主類和main(),在main()方法中創建學生對象,並通過對象調用它的方法setName(),getName(),輸出學生的名字name和年齡age。
2. (第2題) 定義類Point及它的屬性、方法和構造函數,定義主類和main(),在main()方法中創建兩個座標對象,,並通過對象調用getMiddle方法後得到一個新的點座標,調用show()顯示該對象的座標值。
3. (第3題)定義一個複數(z=x+iy)類Complex,及它的屬性、方法和構造函數;定義主類和main()方法,在main()方法中創建兩個複數類Complex對象,並通過複數類對象調用它們的屬性和方法,輸出方法執行結果。
五、自做實驗
1. 構造一個類來描述屏幕上的一個點,該類的構成包括點的x和y兩個座標,以及一些對點進行的操作,包括:取得點的座標值,對點的座標進行賦值,編寫應用程序生成該類的對象並對其進行操作。
2. 編寫實現:有一個三角形類Triangle,成員變量有底邊x和另一條邊y,和兩邊的夾角a(0<a<180),a爲靜態成員,成員方法有兩個:求面積s(無參數)和修改角度(參數爲角度)。
3. 編寫實現: 構造函數爲 Triangle(int xx,int yy,int aa) 參數分別爲x,y,a賦值 在main方法中構造兩個對象,求出其面積,然後使用修改角度的方法,修改兩邊的夾角,再求出面積值。(提示:求高的方法 h=y*Math.sin(a) )
注意:構造方法用於對成員變量初始化,無參數的構造方法將成員變量初始化爲0值。
程序代碼:
1,
public class Student {
private static String name;
public static int age;
public static String specially;
public Student(String name,int age)
{
Student.name=name;
Student.age=age;
}
public static void setName(String name)
{
Student.name=name;
}
public static String getName()
{
return name;
}
public static String getSpecially()
{
return specially;
}
public static void print(Student stu)
{
System.out.print("學生的姓名:"+Student.getName()+"\n"+"學生的年齡:"+Student.age);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu=new Student("李明",20);
Student.print(stu);
}
}
2,
public class Point {
int x;
int y;
public Point(int x,int y)
{
this.x=x;
this.y=y;
}
public void show()
{
System.out.println("("+x+","+y+")");
}
public void getMiddle(Point p1,Point p2)
{
x=(p1.x+p2.x)/2;
y=(p1.y+p2.y)/2;
System.out.println("("+x+","+y+")");
}
public static void main(String args[])
{
Point pt1=new Point(2,3);
Point pt2=new Point(6,9);
pt1.show();
pt2.show();
pt1.getMiddle(pt1,pt2);
}
}
3,
import javax.swing.JOptionPane;
public class Complex {
int x;
int y;
public Complex()
{
this.x=0;
this.y=0;
}
public Complex(int x,int y)
{
this.x=x;
this.y=y;
}
public void showComp()
{
System.out.println("顯示覆數:"+this.x+"+"+this.y+"i"+".");
}
public Complex addComp(Complex c1,Complex c2)
{
Complex cx1 =new Complex();
cx1.x=c1.x+c2.x;
cx1.y=c1.y+c2.y;
return cx1;
}
public Complex subComp(Complex c1,Complex c2)
{
Complex cx2 =new Complex();
cx2.x=c1.x-c2.x;
cx2.y=c1.y-c2.y;
return cx2;
}
public Complex multiComp(Complex c1,Complex c2)
{
Complex cx3=new Complex();
cx3.x=c1.x*c2.x-c1.y*c2.y;
cx3.y=c1.x*c2.y+c2.x*c1.y;
return cx3;
}
public boolean equalComp(Complex c1,Complex c2)
{
if(c1.x==c2.x&&c1.y==c2.y)
{
System.out.println("兩個複數相等!");
return true;
}
else
{
System.out.println("兩個複數不相等!");
return false;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String Nc1;
String Nc2;
String Nc3;
String Nc4;
int c1,c2,c3,c4;
Nc1=JOptionPane.showInputDialog("請輸入第一個複數的實部:");
c1=Integer.parseInt(Nc1);
Nc2=JOptionPane.showInputDialog("請輸入第一個複數的虛部:");
c2=Integer.parseInt(Nc2);
Nc3=JOptionPane.showInputDialog("請輸入第一個複數的實部:");
c3=Integer.parseInt(Nc3);
Nc4=JOptionPane.showInputDialog("請輸入第一個複數的虛部:");
c4=Integer.parseInt(Nc4);
Complex cm1=new Complex(c1,c2);
Complex cm2=new Complex(c3,c4);
cm1.showComp();
cm2.showComp();
cm1.addComp(cm1, cm2).showComp();
cm1.subComp(cm1, cm2).showComp();
cm1.multiComp(cm1, cm2).showComp();
cm1.equalComp(cm1,cm2);
}
}
五。
public class TriangleTest {
public static void main(String[] args) {
Triangle t1=new Triangle(3,4,90);
t1.print();
Triangle t2=new Triangle(5,6,90);
t2.print();
t2.reapetA(30);
t2.print();
}
}
class Point
{
int x;
int y;
public Point(int x,int y)
{
this.x=x;
this.y=y;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
}
class Triangle extends Point
{
static int aa;
double PI=3.1415926;
public Triangle(int xx,int yy,int aa)
{
super(xx,yy);
Triangle.aa=aa;
}
public float area()
{
return (float) ((x*y*Math.sin(PI*aa/180))/2);
}
public int reapetA(int a)
{
Triangle.aa=a;
return Triangle.aa;
}
public void print()
{
System.out.println("三角形的面積:"+area());
}
}
Java第三次實驗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Java第三週作業(2)
課堂練習4: 編寫代碼模擬手機與SIM卡的組合關係。 要求: SIM卡類負責創建SIM卡; Phone類負責創建手機; 手機可以組合一個SIM卡;
Miss_You123123
2020-06-25 09:43:01
lesson8:集合框架作業2
搬运工、
2020-06-17 09:19:15
lesson7:gui: 編寫一個JFrame窗口
代碼:import java.awt.BorderLayout; import java.awt.FlowLayout; import ja
搬运工、
2020-06-17 09:19:15
lesson 11:使用TCP協議編寫一個網絡程序,設置服務器端的監聽端口是8002,當與客戶端建立連接後,服務器端向客戶端發送數據“Hello, world”,客戶端收到數據後打印輸出。
搬运工、
2020-06-17 09:19:15
作業3:求1+2!+3!+...+20!的和
搬运工、
2020-06-17 09:19:15
作業4: 求一個n階方陣對角線元素之和。
搬运工、
2020-06-17 09:19:15
lesson 6:寫一個方法void triangle(int a,int b,int c),判斷三個參數是否能構成一個三角形。
題目: 寫一個方法void triangle(int a,int b,int c),判斷三個參數是否能構成一個三角形。如果不能則拋出異常Illega
搬运工、
2020-06-17 09:19:15
上課內容及作業。File類的常用方法的使用、遞歸遍歷目錄及其子目錄下的文件、使用delete()方法刪除目錄
qq_45766098
2020-05-21 20:51:56
Java初學者作業——編寫JAVA程序,要求輸入技術部門5位員工的理論成績和實操成績,計算並輸出各位員工的最終評測成績。
明金同学
2020-03-12 10:08:53
Java初學者作業——編寫JAVA程序,在控制檯中輸入六位員工的姓名,通過隨機點名方式,輸出當選組長的員工姓名。
明金同学
2020-03-12 10:08:53
Java初學者作業——爲某超市設計管理系統,需要在控制檯展示系統菜單,菜單之間可以完成跳轉。
明金同学
2020-03-12 10:08:53
Java初學者作業——編寫JAVA程序,在控制檯輸入一位學生的英語考試成績,根據評測規則,輸出對應的成績等級。定義方法實現學生成績的評測功能。
明金同学
2020-03-12 10:08:53
Java初學者作業——定義英雄類(Hero),英雄類中的屬性包括:姓名、攻擊力、防禦力、生命值和魔法值;方法包括:攻擊、介紹。
明金同学
2020-03-06 12:59:12
Java初學者作業——完成對已定義類(Admin)的對象的創建。並完成屬性的賦值和方法的調用。
明金同学
2020-03-06 12:59:12
Java初學者作業——定義管理員類(Admin),管理員類中的屬性包括:姓名、賬號、密碼、電話;方法包括:登錄、顯示自己的信息。
明金同学
2020-03-06 12:59:12