java實驗的心得體會
java實驗心得體會篇一:java實驗總結
1. 設計一個Person類,包含:姓名,年齡,性別。要求:該類至多隻能創建一男、一女兩個對象!
2. 設計一個測試類Test,創建若干個Person類對象,測試是否符合要求。 package test8;
class person {
String name;
int age;
char sex;
static int flag1 = 1, flag2 = 1;
private person(String n, int a, char s) {
name = n;
age = a;
sex = s;
if (s == 'm') {
flag1--;
}
if (s == 'f') {
flag2--;
}
}
public static person newperson(String n, int a, char s) {
if (s == 'm' && flag1 != 0) {
person p = new person(n, a, s);
return p;
} else if (s == 'f' && flag2 != 0) {
person p = new person(n, a, s);
return p;
} else {
return null;
}
}
public String toString() {
return ("name:" + name + " age:" + age + " sex:" + sex);
}
}
public class test {
public static void main(String[] args) {
person p1 , p2 , p3 ;
p1= erson("mary", 11, 'f');
p2=erson("tom", 14, 'm');
p3=erson("jane", 13, 'f');
tln(p1);
tln(p2);
tln(p3);
}
}
1. 設計一個數據單元類DataUnit, 它包含學號(Number)和姓名(Name)兩個數據成員。
2. 設計兩個線程,一個線程往數據單元裏寫信息,一個線程從數據單元裏讀信息。要求使用線程同步技術,使得每寫一次就往外讀一次。例如,寫和讀的數據序列為:
Write: 1, Name1
Read: 1, Name1
Write: 2, Name2
Read: 2, Name2
...
package test7;
class DataUnit{
int number;
String name;
int max;
boolean flag=false;
public DataUnit(int number, String name,int max){
=name;
=max;
}
public synchronized void in(){
if(flag){
try{
wait();
}
catch(Exception e){
}
}
tln("Write number:"+(++number)+"write name:"+(number));flag=true;
notify();
}
public synchronized void out(){
if(!flag){
try{
wait();
}
catch(Exception e){
}
}
tln("read number:"+(number)+"read name:"+(number));
flag=false;
notify();
}
}
class write extends Thread{
DataUnit x=null;
public write(DataUnit x){
this.x=x;
}
public void run(){
while(er<){
();
}
}
}
class read extends Thread{
DataUnit x=null;
public read(DataUnit x){
this.x=x;
}
public void run(){
while(er<=){
();
}
}
}
public class test7 {
public static void main(String[] args) {
DataUnit x=new DataUnit(0,"mary",10);
new write(x)t();
new read(x)t();
}
}
設計一個線程Thread類的子類DataThread, 使用DataThread構建兩個線程,分別輸出50以內的奇數和偶數,並使兩個線程併發執行。
package test6;
class datathread extends Thread{
private int number;
String flag;
public datathread(int num){
number=num;
if(number==-2)
flag="even";
else
flag="odd";
}
public void run(){
int result=number;
tln("thread "+flag+" starts!");
while(result+2<=50){
result=result+2;
tln("an "+flag+" number:"+result);
}
tln("thread "+flag+" ends!");
}
}
public class Main {
public static void main(String[] args) {
tln("main thread starts!");
datathread thread1=new datathread (-2);
datathread thread2=new datathread (-1);
t();
t();
tln("main thread ends!");
}
}
1. 設計一個學生Student類,包含學號(Sno),姓名(Name),所在系(Dept)等屬性。創建若干Student類的對象,添加到一個向量Vector中,並遍歷輸出該向量各元素值。
package test5;
import .*;
public class Student {
String sno;
String name;
String dept;
public Student(String no,String n,String p){
=no;
=n;
=p;
}
public String toString(){
return("sno:"+sno+" name:"+name+" dept:"+dept);
}
public static void main(String[] args) {
Student stu[];
stu=new Student[3];
stu[0]=new Student("001","Mary","SS");
stu[1]=new Student("002","Tom","CS");
stu[2]=new Student("003","Hellen","IS");
Vector v=new Vector();
for(int i=0;i<th;i++){
(stu[i]);
}
Iteratornum=ator();
while(ext()){
tln(());
}
}
}
2. 已知:哈希表HashTablehTable = new
HashTable()。編程遍歷hTable,要求寫出兩種方式。 package test5hash;
import .*;
import able;
public class Hash {
public static void main(String[] args) {
HashtablehTable = new Hashtable();(001, "a");
(002, "b");
(003, "c");
Iteratori = (Iterator)();
while(ext())
{
int j = ();
java實驗心得體會篇二:java上機實驗心得體會報告
北京聯合大學 信息學院
“面向對象程序設計”課
程上機實驗報告
題 目: JAVA上機實驗心得體會
姓名(學號):專 業: 計算機科學與技術
編 制 時 間: 2012年12月19日
版 本: 1.0.0
指 導 教 師:北京聯合大學-信息學院編制
實驗1 熟悉Java運行環境
實驗目的:熟悉JDK環境和操作,編寫簡單的Java應用程序。
心得體會:在該實驗中,我碰到的問題是JDK環境變量的設置。解決方法是通過查閲資料書和網上搜索相關解決方法及同學的有力幫助。
實驗2 選擇語句練習
實驗目的:正確理解並能夠熟練操作和使用Java的if和switch語句。
心得體會:我個人感覺有了C的編程基礎,if和switch這些簡單的流程控制語句運用起來比較輕鬆,實現簡單的邏輯運算也跟C非常相近,所以上手比較快。但是在這次程序中,首次涉及到了java程序的數據輸入,與C區別很大。但經過老師的講解和查閲相關資料,基本明白相關的使用規則和注意事項。在第二個小題中還涉及到了charAt()方法,經查閲JDK文檔,知道charAt()方法返回一個位於提供給它的參數索引處的字符,如: At(0)檢索str中的第一個字符,At(th()-1)檢索最後一個字符。我運用此方法解決了比較字符串間首字母異同的問題。
實驗3 迭代練習
實驗目的:正確理解並能夠熟練操作和使用Java的for、while、e語句。 心得體會:在該實驗中,我學會了為具體操作選擇最合適的循環語句及for、while、e語句的相互轉換使用。最重要的是,明白了JAVA程序中,定義方法中的局部變量時一定要賦初始值,否則編譯不能通過會報錯;但類中的成員變量則不一定需要。如我在實驗3main()方法定義的整型局部變量command,當不初始化則不能通過編譯。原因是局部變量不能有JVM自動賦給相關的默認值,而成員變量可以。
實驗4 方法的實現練習
實驗目的:聲明、定義和調用方法,理解實參和形參的含義。
心得體會:在該實驗中,我掌握如何寫方法、調用方法,並掌握如何向方法中傳遞信息和從方法中返回信息。方法聲明為非void(構造方法除外)則需要用return語句返回一個相應類型的返回值。
實驗5 簡單類型數組練習
實驗目的:學習創建簡單類型的數組,並能用循環語句處理數組。
心得體會:通過該實驗,我學會了如何讓建立簡單類型的數組,並掌握了將數組作為方法的傳入參數和返回值。在該實驗中,遇到的問題主要是如何將一個連續的多位數在存入數組時,每個數組元素只對應改多位數的一個組成數。我解決的方法如下:
for(i=0; i<6; i++){
n[i] = aa%10; //aa%10的結果是aa的末尾數,將多位數aa的末尾數賦給a[i] aa = (int)aa/10; //對aa/10的結果強制取整,去掉了aa的末尾數,以便對下一位數的存數。
}
實驗6 類和對象的練習
實驗目的:正確理解並能夠熟練操作和使用Java的類、對象和方法。
心得體會:我學會了如何建立類和對象,分別輸出其中包含的成員值;以及分別引用各方法,實現不同的操作。在該程序中,我進一步瞭解瞭如何定義成員方法和成員屬性以及相關方法的調用。特別是我掌握了利用構造方法對成員屬性賦初始值。值得一提的是,我在相應的程序中運用了toUpperCase方法,經查看JDK文檔知道該方法的作用是返回一個所有字母都被轉化為大寫字母字符串。
實驗7 類的實現
實驗目的:使用統一建模語言(UML)設計類,並實現類。
心得體會:通過該實驗,我學會了使用public、private控制訪問及其訪問權限;體會了static關鍵字的作用。並對JAVA程序中的類及面向對象的編程思想有了更進一步的瞭解。
實驗8 繼承的練習
實驗目的:正確理解並能夠熟練操作和使用Java類的繼承關係。
心得體會:理解了繼承的含義,並使用UML符號設計了繼承結構;掌握了用Java實現繼承關係;學會了區分方法重寫和方法重載;並深入理解了abstract 和 final修飾符的作用。用final標記的變量只能賦值一次,標記的類不可被繼承,方法不可被子類重寫。用關鍵字extends表繼承,例如子類A繼承了父類B則可寫作 class A extends B。在這些概念性(轉 載於: :java實驗心得體會)知識點弄明白後,在解決實際問題時,碰到了輸入年月日計算車齡的問題,我的解決辦法如下:
public int age(int year)
{int age;
int a1 = (int)(time/10000); //(int)time/10000是將8位數表示的生產年月日強制轉換成四位數表示的年
}
int a2 = (int)(year/10000); //將當前年月日轉換為年 age = a2 - a1 +1;//計算車齡 return age;
實驗9 抽象類、接口練習
實驗目的:綜合運用接口,類的知識。
心得體會:在該實驗中,我掌握了接口定義,以及類實現接口。接口用interface關鍵字定義,在接口中,可以用abstract是修飾方法的,也可以去掉abstract,編譯時會默認為抽象方法。類實現接口可用implements表示,例如class Circle implements Shape表示,Circle類實現了接口Shape。
實驗10 多態練習
實驗目的:理解並使用面向對象的特徵:多態。
心得體會:在實驗10中,我基本掌握了多態的句柄、多態方法的定義。在改程序中,我遇到了要求隨機產生一個圖形的難題,通過網上查閲資料,利用系統函數om()經一系列的運算處理來隨機產生一個圖形解決了該難題,具體的程序如下:
public static void main(String[] args)
{
} Circle cir = new Circle(9); Square squ = new Square(4); Shape shape; int r; r = (int)(om()*2);//用om()方法產生0.00到if(r == 0) shape = cir; else shape = squ; Shape(shape); //同一條語句產生不同的執行結果,多態1.00的隨機數,乘2取整後非0即1 性。
實驗11 多線程處理
實驗目的:理解線程的基本概念。
心得體會:通過該實驗,基本能夠理解線程的運行了。學會調用Thread類中的系統函數以及掌握這些函數的作用是難點, setName()是設置線程名字,start()是開闢一條新線程,entThread()ame()是獲得正在執行的線程的名字,entThread()d()是thread類中返回該線程的標識符的方法,entThread()riority()是thread類中返回線程的優先級的方法。
實驗12 I/O及文件處理
實驗目的:掌握並使用Java中的I/O和文件。
心得體會:對於該實驗,由於比較難,只是基本掌握了文件讀寫的方法和規則,還有待17周JAVA實訓時繼續攻堅克難。
結語:在這一系列的實驗中,我基本掌握了Java的編程規則、知識要點和一些小技巧,特別是對面向對象的編程思想和風格有了進一步的認識和體會。同時,因正確的編出程序而帶來的成就感讓我對編程更加感興趣。對於在這些實驗過程中,請教老師、同學互助、查閲資料等基本的學習方式,使我更加領悟到集體和團隊的力量,也樹立了敢於攻堅的信心。
java實驗心得體會篇三:JAVA實訓心得體會
JAVA實訓心得
在本學期的二週時間內,我們在學校機房進行了為期二週的JAVA實訓。現在即將結束了,回首本學期的java學習,重點還是在學習概念等一些常識性的東西,也學到平常在課堂中沒有學到的東西,在JAVA API中又多認識了幾種類,使我對JAVA產生了濃厚的.興趣。兩週的時間説長也不長,在這兩週中,我們的實訓任務是倉庫管理系統,在演示過程中,並沒有覺得它有很難,但在實際編程過程中,卻遇到了各種各樣的錯誤,這也多虧了老師的指點和班級同學的幫忙,使我一步步克服了實訓過程中遇到的困難。雖然我所做的系統並沒有實現所有功能,但是我覺得自己進步了,很多原來都不懂的東西現在都已經瞭解了,也培養了我的團隊合作精神,讓我感受到了集體的温暖。實訓的過程與課堂上的講課比,更為有趣,因為可以真正的自己動手操作,使我對老師上課所講的內容有了更深一步的瞭解,使我在以後的編程中可以靈活運用。我期待以後有更多類似的實訓,使我們可以多掌握一項技能,也可以讓我們在以後找工作中可以有更多的實踐經驗。學知識可不能憑自己的愛好和一時興趣,要一步一個腳印,認認真真,踏踏實實,理論與實踐相結合,在紮實掌握課本實例和內容之後,有一定的擴展閲讀和課外學習,充分全面的瞭解JAVA的應用和擴展運用。
在我所學的語言當中,我自認為JAVA是一門比較強大的面向對象的編程語言,不僅僅因為它的跨平台性,更多的是因為它的靈活多變
和實用性較強,可以説比較的經典和強悍。所以學好java語言有很大的用處,這次實訓,我們更多學到的是不懂就問和自己應該儘自己的全力去嘗試,哪怕失敗,只要自己儘自己的全力,和身邊同學一起探討而不是抄襲,團結合作,發揮團隊意識,最後在自己的努力下,終於運行成功,這種成就感美不可言,心情愉悦至極。
最後終於要結束了,大家都有種釋懷的感覺,當然我想我更多的是興奮和自己掌握了知識之後的飽滿感,學知識就像吃東西一樣,吃飽了就應該好好的消化。要不斷的温習和運用,做到舉一反三,將所學知識充分融入到平時的學習生活中去,為以後的工作做好堅實的基礎。感謝學校和老師能夠為我們提供這次機會,讓我們更好的掌握和了解JAVA這門語言!
-
做智慧教師心得
我們從一些事情上得到感悟後,馬上將其記錄下來,這樣可以幫助我們分析出現問題的原因,從而找出解決問題的辦法。相信許多人會覺得心得體會很難寫吧,下面是小編收集整理的做智慧教師心得,希望能夠幫助到大家。做智慧教師心得1參加工作十年,説長不長,説短不短,許多教學行...
-
標準化管理心得體會(5篇)
當我們受到啟發,對生活有了新的感悟時,通常就可以寫一篇心得體會將其記下來,通過寫心得體會,可以幫助我們總結積累經驗。那麼心得體會怎麼寫才能感染讀者呢?下面是小編整理的標準化管理心得體會,歡迎閲讀與收藏。標準化管理心得體會1一提到標準化管理,我們就會想到工...
-
實習會計心得體會(15篇)
我們心裏有一些收穫後,將其記錄在心得體會裏,讓自己銘記於心,這麼做可以讓我們不斷思考不斷進步。那麼心得體會到底應該怎麼寫呢?下面是小編幫大家整理的實習會計心得體會,僅供參考,大家一起來看看吧。實習會計心得體會1剛剛知道消息要開始模擬實習時,我還是很興奮的...
-
參觀國小心得體會優秀
我們從一些事情上得到感悟後,寫心得體會是一個不錯的選擇,這樣有利於培養我們思考的習慣。相信許多人會覺得心得體會很難寫吧,下面是小編為大家收集的參觀國小心得體會優秀,歡迎閲讀與收藏。參觀國小心得體會優秀14月15日,我有幸參加了去温嶺市xx國小參觀學習活動。...