- 相關(guān)推薦
java實驗的心得體會
java實驗心得體會篇一:java實驗總結(jié)
1. 設(shè)計一個Person類,包含:姓名,年齡,性別。要求:該類至多只能創(chuàng)建一男、一女兩個對象!
2. 設(shè)計一個測試類Test,創(chuàng)建若干個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= person.newperson("mary", 11, 'f');
p2=person.newperson("tom", 14, 'm');
p3=person.newperson("jane", 13, 'f');
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
}
}
1. 設(shè)計一個數(shù)據(jù)單元類DataUnit, 它包含學號(Number)和姓名(Name)兩個數(shù)據(jù)成員。
2. 設(shè)計兩個線程,一個線程往數(shù)據(jù)單元里寫信息,一個線程從數(shù)據(jù)單元里讀信息。要求使用線程同步技術(shù),使得每寫一次就往外讀一次。例如,寫和讀的數(shù)據(jù)序列為:
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){
this.name=name;
this.max=max;
}
public synchronized void in(){
if(flag){
try{
wait();
}
catch(Exception e){
}
}
System.out.println("Write number:"+(++number)+"write name:"+(number));flag=true;
notify();
}
public synchronized void out(){
if(!flag){
try{
wait();
}
catch(Exception e){
}
}
System.out.println("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(x.number<x.max){
x.in();
}
}
}
class read extends Thread{
DataUnit x=null;
public read(DataUnit x){
this.x=x;
}
public void run(){
while(x.number<=x.max){
x.out();
}
}
}
public class test7 {
public static void main(String[] args) {
DataUnit x=new DataUnit(0,"mary",10);
new write(x).start();
new read(x).start();
}
}
設(shè)計一個線程Thread類的子類DataThread, 使用DataThread構(gòu)建兩個線程,分別輸出50以內(nèi)的奇數(shù)和偶數(shù),并使兩個線程并發(fā)執(zhí)行。
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;
System.out.println("thread "+flag+" starts!");
while(result+2<=50){
result=result+2;
System.out.println("an "+flag+" number:"+result);
}
System.out.println("thread "+flag+" ends!");
}
}
public class Main {
public static void main(String[] args) {
System.out.println("main thread starts!");
datathread thread1=new datathread (-2);
datathread thread2=new datathread (-1);
thread1.start();
thread2.start();
System.out.println("main thread ends!");
}
}
1. 設(shè)計一個學生Student類,包含學號(Sno),姓名(Name),所在系(Dept)等屬性。創(chuàng)建若干Student類的對象,添加到一個向量Vector中,并遍歷輸出該向量各元素值。
package test5;
import java.util.*;
public class Student {
String sno;
String name;
String dept;
public Student(String no,String n,String p){
this.sno=no;
this.name=n;
this.dept=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<stu.length;i++){
v.add(stu[i]);
}
Iteratornum=v.iterator();
while(num.hasNext()){
System.out.println(num.next());
}
}
}
2. 已知:哈希表HashTablehTable = new
HashTable()。編程遍歷hTable,要求寫出兩種方式。 package test5hash;
import java.util.*;
import java.lang.Iterable;
public class Hash {
public static void main(String[] args) {
HashtablehTable = new Hashtable();hTable.put(001, "a");
hTable.put(002, "b");
hTable.put(003, "c");
Iteratori = (Iterator)hTable.keys();
while(i.hasNext())
{
int j = i.next();
java實驗心得體會篇二:java上機實驗心得體會報告
北京聯(lián)合大學 信息學院
“面向?qū)ο蟪绦蛟O(shè)計”課
程上機實驗報告
題 目: JAVA上機實驗心得體會
姓名(學號):專 業(yè): 計算機科學與技術(shù)
編 制 時 間: 2012年12月19日
版 本: 1.0.0
指 導 教 師:北京聯(lián)合大學-信息學院編制
實驗1 熟悉Java運行環(huán)境
實驗目的:熟悉JDK環(huán)境和操作,編寫簡單的Java應用程序。
心得體會:在該實驗中,我碰到的問題是JDK環(huán)境變量的設(shè)置。解決方法是通過查閱資料書和網(wǎng)上搜索相關(guān)解決方法及同學的有力幫助。
實驗2 選擇語句練習
實驗目的:正確理解并能夠熟練操作和使用Java的if和switch語句。
心得體會:我個人感覺有了C的編程基礎(chǔ),if和switch這些簡單的流程控制語句運用起來比較輕松,實現(xiàn)簡單的邏輯運算也跟C非常相近,所以上手比較快。但是在這次程序中,首次涉及到了java程序的數(shù)據(jù)輸入,與C區(qū)別很大。但經(jīng)過老師的講解和查閱相關(guān)資料,基本明白相關(guān)的使用規(guī)則和注意事項。在第二個小題中還涉及到了charAt()方法,經(jīng)查閱JDK文檔,知道charAt()方法返回一個位于提供給它的參數(shù)索引處的字符,如: str.chatAt(0)檢索str中的第一個字符,str.charAt(str.length()-1)檢索最后一個字符。我運用此方法解決了比較字符串間首字母異同的問題。
實驗3 迭代練習
實驗目的:正確理解并能夠熟練操作和使用Java的for、while、do..while語句。 心得體會:在該實驗中,我學會了為具體操作選擇最合適的循環(huán)語句及for、while、do..while語句的相互轉(zhuǎn)換使用。最重要的是,明白了JAVA程序中,定義方法中的局部變量時一定要賦初始值,否則編譯不能通過會報錯;但類中的成員變量則不一定需要。如我在實驗3main()方法定義的整型局部變量command,當不初始化則不能通過編譯。原因是局部變量不能有JVM自動賦給相關(guān)的默認值,而成員變量可以。
實驗4 方法的實現(xiàn)練習
實驗目的:聲明、定義和調(diào)用方法,理解實參和形參的含義。
心得體會:在該實驗中,我掌握如何寫方法、調(diào)用方法,并掌握如何向方法中傳遞信息和從方法中返回信息。方法聲明為非void(構(gòu)造方法除外)則需要用return語句返回一個相應類型的返回值。
實驗5 簡單類型數(shù)組練習
實驗目的:學習創(chuàng)建簡單類型的數(shù)組,并能用循環(huán)語句處理數(shù)組。
心得體會:通過該實驗,我學會了如何讓建立簡單類型的數(shù)組,并掌握了將數(shù)組作為方法的傳入?yún)?shù)和返回值。在該實驗中,遇到的問題主要是如何將一個連續(xù)的多位數(shù)在存入數(shù)組時,每個數(shù)組元素只對應改多位數(shù)的一個組成數(shù)。我解決的方法如下:
for(i=0; i<6; i++){
n[i] = aa%10; //aa%10的結(jié)果是aa的末尾數(shù),將多位數(shù)aa的末尾數(shù)賦給a[i] aa = (int)aa/10; //對aa/10的結(jié)果強制取整,去掉了aa的末尾數(shù),以便對下一位數(shù)的存數(shù)。
}
實驗6 類和對象的練習
實驗目的:正確理解并能夠熟練操作和使用Java的類、對象和方法。
心得體會:我學會了如何建立類和對象,分別輸出其中包含的成員值;以及分別引用各方法,實現(xiàn)不同的操作。在該程序中,我進一步了解了如何定義成員方法和成員屬性以及相關(guān)方法的調(diào)用。特別是我掌握了利用構(gòu)造方法對成員屬性賦初始值。值得一提的是,我在相應的程序中運用了toUpperCase方法,經(jīng)查看JDK文檔知道該方法的作用是返回一個所有字母都被轉(zhuǎn)化為大寫字母字符串。
實驗7 類的實現(xiàn)
實驗目的:使用統(tǒng)一建模語言(UML)設(shè)計類,并實現(xiàn)類。
心得體會:通過該實驗,我學會了使用public、private控制訪問及其訪問權(quán)限;體會了static關(guān)鍵字的作用。并對JAVA程序中的類及面向?qū)ο蟮木幊趟枷胗辛烁M一步的了解。
實驗8 繼承的練習
實驗目的:正確理解并能夠熟練操作和使用Java類的繼承關(guān)系。
心得體會:理解了繼承的含義,并使用UML符號設(shè)計了繼承結(jié)構(gòu);掌握了用Java實現(xiàn)繼承關(guān)系;學會了區(qū)分方法重寫和方法重載;并深入理解了abstract 和 final修飾符的作用。用final標記的變量只能賦值一次,標記的類不可被繼承,方法不可被子類重寫。用關(guān)鍵字extends表繼承,例如子類A繼承了父類B則可寫作 class A extends B。在這些概念性(轉(zhuǎn) 載于: :java實驗心得體會)知識點弄明白后,在解決實際問題時,碰到了輸入年月日計算車齡的問題,我的解決辦法如下:
public int age(int year)
{int age;
int a1 = (int)(time/10000); //(int)time/10000是將8位數(shù)表示的生產(chǎn)年月日強制轉(zhuǎn)換成四位數(shù)表示的年
}
int a2 = (int)(year/10000); //將當前年月日轉(zhuǎn)換為年 age = a2 - a1 +1;//計算車齡 return age;
實驗9 抽象類、接口練習
實驗目的:綜合運用接口,類的知識。
心得體會:在該實驗中,我掌握了接口定義,以及類實現(xiàn)接口。接口用interface關(guān)鍵字定義,在接口中,可以用abstract是修飾方法的,也可以去掉abstract,編譯時會默認為抽象方法。類實現(xiàn)接口可用implements表示,例如class Circle implements Shape表示,Circle類實現(xiàn)了接口Shape。
實驗10 多態(tài)練習
實驗目的:理解并使用面向?qū)ο蟮奶卣鳎憾鄳B(tài)。
心得體會:在實驗10中,我基本掌握了多態(tài)的句柄、多態(tài)方法的定義。在改程序中,我遇到了要求隨機產(chǎn)生一個圖形的難題,通過網(wǎng)上查閱資料,利用系統(tǒng)函數(shù)Math.random()經(jīng)一系列的運算處理來隨機產(chǎn)生一個圖形解決了該難題,具體的程序如下:
public static void main(String[] args)
{
} Circle cir = new Circle(9); Square squ = new Square(4); Shape shape; int r; r = (int)(Math.random()*2);//用Math.random()方法產(chǎn)生0.00到if(r == 0) shape = cir; else shape = squ; shape.testShape(shape); //同一條語句產(chǎn)生不同的執(zhí)行結(jié)果,多態(tài)1.00的隨機數(shù),乘2取整后非0即1 性。
實驗11 多線程處理
實驗目的:理解線程的基本概念。
心得體會:通過該實驗,基本能夠理解線程的運行了。學會調(diào)用Thread類中的系統(tǒng)函數(shù)以及掌握這些函數(shù)的作用是難點, setName()是設(shè)置線程名字,start()是開辟一條新線程,Thread.currentThread().getName()是獲得正在執(zhí)行的線程的名字,Thread.currentThread().getId()是thread類中返回該線程的標識符的方法,Thread.currentThread().getPriority()是thread類中返回線程的優(yōu)先級的方法。
實驗12 I/O及文件處理
實驗目的:掌握并使用Java中的I/O和文件。
心得體會:對于該實驗,由于比較難,只是基本掌握了文件讀寫的方法和規(guī)則,還有待17周JAVA實訓時繼續(xù)攻堅克難。
結(jié)語:在這一系列的實驗中,我基本掌握了Java的編程規(guī)則、知識要點和一些小技巧,特別是對面向?qū)ο蟮木幊趟枷牒惋L格有了進一步的認識和體會。同時,因正確的編出程序而帶來的成就感讓我對編程更加感興趣。對于在這些實驗過程中,請教老師、同學互助、查閱資料等基本的學習方式,使我更加領(lǐng)悟到集體和團隊的力量,也樹立了敢于攻堅的信心。
java實驗心得體會篇三:JAVA實訓心得體會
JAVA實訓心得
在本學期的二周時間內(nèi),我們在學校機房進行了為期二周的JAVA實訓,F(xiàn)在即將結(jié)束了,回首本學期的java學習,重點還是在學習概念等一些常識性的東西,也學到平常在課堂中沒有學到的東西,在JAVA API中又多認識了幾種類,使我對JAVA產(chǎn)生了濃厚的興趣。兩周的時間說長也不長,在這兩周中,我們的實訓任務是倉庫管理系統(tǒng),在演示過程中,并沒有覺得它有很難,但在實際編程過程中,卻遇到了各種各樣的錯誤,這也多虧了老師的指點和班級同學的幫忙,使我一步步克服了實訓過程中遇到的困難。雖然我所做的系統(tǒng)并沒有實現(xiàn)所有功能,但是我覺得自己進步了,很多原來都不懂的東西現(xiàn)在都已經(jīng)了解了,也培養(yǎng)了我的團隊合作精神,讓我感受到了集體的溫暖。實訓的過程與課堂上的講課比,更為有趣,因為可以真正的自己動手操作,使我對老師上課所講的內(nèi)容有了更深一步的了解,使我在以后的編程中可以靈活運用。我期待以后有更多類似的實訓,使我們可以多掌握一項技能,也可以讓我們在以后找工作中可以有更多的實踐經(jīng)驗。學知識可不能憑自己的愛好和一時興趣,要一步一個腳印,認認真真,踏踏實實,理論與實踐相結(jié)合,在扎實掌握課本實例和內(nèi)容之后,有一定的擴展閱讀和課外學習,充分全面的了解JAVA的應用和擴展運用。
在我所學的語言當中,我自認為JAVA是一門比較強大的面向?qū)ο蟮木幊陶Z言,不僅僅因為它的跨平臺性,更多的是因為它的靈活多變
和實用性較強,可以說比較的經(jīng)典和強悍。所以學好java語言有很大的用處,這次實訓,我們更多學到的是不懂就問和自己應該盡自己的全力去嘗試,哪怕失敗,只要自己盡自己的全力,和身邊同學一起探討而不是抄襲,團結(jié)合作,發(fā)揮團隊意識,最后在自己的努力下,終于運行成功,這種成就感美不可言,心情愉悅至極。
最后終于要結(jié)束了,大家都有種釋懷的感覺,當然我想我更多的是興奮和自己掌握了知識之后的飽滿感,學知識就像吃東西一樣,吃飽了就應該好好的消化。要不斷的溫習和運用,做到舉一反三,將所學知識充分融入到平時的學習生活中去,為以后的工作做好堅實的基礎(chǔ)。感謝學校和老師能夠為我們提供這次機會,讓我們更好的掌握和了解JAVA這門語言!
【java實驗的心得體會】相關(guān)文章:
java培訓的心得體會04-01
java培訓的心得體會12-21
java實習心得體會11-04
java培訓心得體會05-07
java實訓心得體會02-25
java實訓心得體會03-08
JAVA實訓心得體會12-29
Java與Java web有什么不同02-23
Java與Java web有什么不同01-22