- 相關(guān)推薦
java實(shí)驗(yàn)的心得體會
java實(shí)驗(yàn)心得體會篇一:java實(shí)驗(yàn)總結(jié)
1. 設(shè)計(jì)一個Person類,包含:姓名,年齡,性別。要求:該類至多只能創(chuàng)建一男、一女兩個對象!
2. 設(shè)計(jì)一個測試類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è)計(jì)一個數(shù)據(jù)單元類DataUnit, 它包含學(xué)號(Number)和姓名(Name)兩個數(shù)據(jù)成員。
2. 設(shè)計(jì)兩個線程,一個線程往數(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è)計(jì)一個線程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è)計(jì)一個學(xué)生Student類,包含學(xué)號(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實(shí)驗(yàn)心得體會篇二:java上機(jī)實(shí)驗(yàn)心得體會報(bào)告
北京聯(lián)合大學(xué) 信息學(xué)院
“面向?qū)ο蟪绦蛟O(shè)計(jì)”課
程上機(jī)實(shí)驗(yàn)報(bào)告
題 目: JAVA上機(jī)實(shí)驗(yàn)心得體會
姓名(學(xué)號):專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)
編 制 時 間: 2012年12月19日
版 本: 1.0.0
指 導(dǎo) 教 師:北京聯(lián)合大學(xué)-信息學(xué)院編制
實(shí)驗(yàn)1 熟悉Java運(yùn)行環(huán)境
實(shí)驗(yàn)?zāi)康模菏煜DK環(huán)境和操作,編寫簡單的Java應(yīng)用程序。
心得體會:在該實(shí)驗(yàn)中,我碰到的問題是JDK環(huán)境變量的設(shè)置。解決方法是通過查閱資料書和網(wǎng)上搜索相關(guān)解決方法及同學(xué)的有力幫助。
實(shí)驗(yàn)2 選擇語句練習(xí)
實(shí)驗(yàn)?zāi)康模赫_理解并能夠熟練操作和使用Java的if和switch語句。
心得體會:我個人感覺有了C的編程基礎(chǔ),if和switch這些簡單的流程控制語句運(yùn)用起來比較輕松,實(shí)現(xiàn)簡單的邏輯運(yùn)算也跟C非常相近,所以上手比較快。但是在這次程序中,首次涉及到了java程序的數(shù)據(jù)輸入,與C區(qū)別很大。但經(jīng)過老師的講解和查閱相關(guān)資料,基本明白相關(guān)的使用規(guī)則和注意事項(xiàng)。在第二個小題中還涉及到了charAt()方法,經(jīng)查閱JDK文檔,知道charAt()方法返回一個位于提供給它的參數(shù)索引處的字符,如: str.chatAt(0)檢索str中的第一個字符,str.charAt(str.length()-1)檢索最后一個字符。我運(yùn)用此方法解決了比較字符串間首字母異同的問題。
實(shí)驗(yàn)3 迭代練習(xí)
實(shí)驗(yàn)?zāi)康模赫_理解并能夠熟練操作和使用Java的for、while、do..while語句。 心得體會:在該實(shí)驗(yàn)中,我學(xué)會了為具體操作選擇最合適的循環(huán)語句及for、while、do..while語句的相互轉(zhuǎn)換使用。最重要的是,明白了JAVA程序中,定義方法中的局部變量時一定要賦初始值,否則編譯不能通過會報(bào)錯;但類中的成員變量則不一定需要。如我在實(shí)驗(yàn)3main()方法定義的整型局部變量command,當(dāng)不初始化則不能通過編譯。原因是局部變量不能有JVM自動賦給相關(guān)的默認(rèn)值,而成員變量可以。
實(shí)驗(yàn)4 方法的實(shí)現(xiàn)練習(xí)
實(shí)驗(yàn)?zāi)康模郝暶、定義和調(diào)用方法,理解實(shí)參和形參的含義。
心得體會:在該實(shí)驗(yàn)中,我掌握如何寫方法、調(diào)用方法,并掌握如何向方法中傳遞信息和從方法中返回信息。方法聲明為非void(構(gòu)造方法除外)則需要用return語句返回一個相應(yīng)類型的返回值。
實(shí)驗(yàn)5 簡單類型數(shù)組練習(xí)
實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)創(chuàng)建簡單類型的數(shù)組,并能用循環(huán)語句處理數(shù)組。
心得體會:通過該實(shí)驗(yàn),我學(xué)會了如何讓建立簡單類型的數(shù)組,并掌握了將數(shù)組作為方法的傳入?yún)?shù)和返回值。在該實(shí)驗(yàn)中,遇到的問題主要是如何將一個連續(xù)的多位數(shù)在存入數(shù)組時,每個數(shù)組元素只對應(yīng)改多位數(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é)果強(qiáng)制取整,去掉了aa的末尾數(shù),以便對下一位數(shù)的存數(shù)。
}
實(shí)驗(yàn)6 類和對象的練習(xí)
實(shí)驗(yàn)?zāi)康模赫_理解并能夠熟練操作和使用Java的類、對象和方法。
心得體會:我學(xué)會了如何建立類和對象,分別輸出其中包含的成員值;以及分別引用各方法,實(shí)現(xiàn)不同的操作。在該程序中,我進(jìn)一步了解了如何定義成員方法和成員屬性以及相關(guān)方法的調(diào)用。特別是我掌握了利用構(gòu)造方法對成員屬性賦初始值。值得一提的是,我在相應(yīng)的程序中運(yùn)用了toUpperCase方法,經(jīng)查看JDK文檔知道該方法的作用是返回一個所有字母都被轉(zhuǎn)化為大寫字母字符串。
實(shí)驗(yàn)7 類的實(shí)現(xiàn)
實(shí)驗(yàn)?zāi)康模菏褂媒y(tǒng)一建模語言(UML)設(shè)計(jì)類,并實(shí)現(xiàn)類。
心得體會:通過該實(shí)驗(yàn),我學(xué)會了使用public、private控制訪問及其訪問權(quán)限;體會了static關(guān)鍵字的作用。并對JAVA程序中的類及面向?qū)ο蟮木幊趟枷胗辛烁M(jìn)一步的了解。
實(shí)驗(yàn)8 繼承的練習(xí)
實(shí)驗(yàn)?zāi)康模赫_理解并能夠熟練操作和使用Java類的繼承關(guān)系。
心得體會:理解了繼承的含義,并使用UML符號設(shè)計(jì)了繼承結(jié)構(gòu);掌握了用Java實(shí)現(xiàn)繼承關(guān)系;學(xué)會了區(qū)分方法重寫和方法重載;并深入理解了abstract 和 final修飾符的作用。用final標(biāo)記的變量只能賦值一次,標(biāo)記的類不可被繼承,方法不可被子類重寫。用關(guān)鍵字extends表繼承,例如子類A繼承了父類B則可寫作 class A extends B。在這些概念性(轉(zhuǎn) 載于: :java實(shí)驗(yàn)心得體會)知識點(diǎn)弄明白后,在解決實(shí)際問題時,碰到了輸入年月日計(jì)算車齡的問題,我的解決辦法如下:
public int age(int year)
{int age;
int a1 = (int)(time/10000); //(int)time/10000是將8位數(shù)表示的生產(chǎn)年月日強(qiáng)制轉(zhuǎn)換成四位數(shù)表示的年
}
int a2 = (int)(year/10000); //將當(dāng)前年月日轉(zhuǎn)換為年 age = a2 - a1 +1;//計(jì)算車齡 return age;
實(shí)驗(yàn)9 抽象類、接口練習(xí)
實(shí)驗(yàn)?zāi)康模壕C合運(yùn)用接口,類的知識。
心得體會:在該實(shí)驗(yàn)中,我掌握了接口定義,以及類實(shí)現(xiàn)接口。接口用interface關(guān)鍵字定義,在接口中,可以用abstract是修飾方法的,也可以去掉abstract,編譯時會默認(rèn)為抽象方法。類實(shí)現(xiàn)接口可用implements表示,例如class Circle implements Shape表示,Circle類實(shí)現(xiàn)了接口Shape。
實(shí)驗(yàn)10 多態(tài)練習(xí)
實(shí)驗(yàn)?zāi)康模豪斫獠⑹褂妹嫦驅(qū)ο蟮奶卣鳎憾鄳B(tài)。
心得體會:在實(shí)驗(yàn)10中,我基本掌握了多態(tài)的句柄、多態(tài)方法的定義。在改程序中,我遇到了要求隨機(jī)產(chǎn)生一個圖形的難題,通過網(wǎng)上查閱資料,利用系統(tǒng)函數(shù)Math.random()經(jīng)一系列的運(yùn)算處理來隨機(jī)產(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的隨機(jī)數(shù),乘2取整后非0即1 性。
實(shí)驗(yàn)11 多線程處理
實(shí)驗(yàn)?zāi)康模豪斫饩程的基本概念。
心得體會:通過該實(shí)驗(yàn),基本能夠理解線程的運(yùn)行了。學(xué)會調(diào)用Thread類中的系統(tǒng)函數(shù)以及掌握這些函數(shù)的作用是難點(diǎn), setName()是設(shè)置線程名字,start()是開辟一條新線程,Thread.currentThread().getName()是獲得正在執(zhí)行的線程的名字,Thread.currentThread().getId()是thread類中返回該線程的標(biāo)識符的方法,Thread.currentThread().getPriority()是thread類中返回線程的優(yōu)先級的方法。
實(shí)驗(yàn)12 I/O及文件處理
實(shí)驗(yàn)?zāi)康模赫莆詹⑹褂肑ava中的I/O和文件。
心得體會:對于該實(shí)驗(yàn),由于比較難,只是基本掌握了文件讀寫的方法和規(guī)則,還有待17周JAVA實(shí)訓(xùn)時繼續(xù)攻堅(jiān)克難。
結(jié)語:在這一系列的實(shí)驗(yàn)中,我基本掌握了Java的編程規(guī)則、知識要點(diǎn)和一些小技巧,特別是對面向?qū)ο蟮木幊趟枷牒惋L(fēng)格有了進(jìn)一步的認(rèn)識和體會。同時,因正確的編出程序而帶來的成就感讓我對編程更加感興趣。對于在這些實(shí)驗(yàn)過程中,請教老師、同學(xué)互助、查閱資料等基本的學(xué)習(xí)方式,使我更加領(lǐng)悟到集體和團(tuán)隊(duì)的力量,也樹立了敢于攻堅(jiān)的信心。
java實(shí)驗(yàn)心得體會篇三:JAVA實(shí)訓(xùn)心得體會
JAVA實(shí)訓(xùn)心得
在本學(xué)期的二周時間內(nèi),我們在學(xué)校機(jī)房進(jìn)行了為期二周的JAVA實(shí)訓(xùn)。現(xiàn)在即將結(jié)束了,回首本學(xué)期的java學(xué)習(xí),重點(diǎn)還是在學(xué)習(xí)概念等一些常識性的東西,也學(xué)到平常在課堂中沒有學(xué)到的東西,在JAVA API中又多認(rèn)識了幾種類,使我對JAVA產(chǎn)生了濃厚的興趣。兩周的時間說長也不長,在這兩周中,我們的實(shí)訓(xùn)任務(wù)是倉庫管理系統(tǒng),在演示過程中,并沒有覺得它有很難,但在實(shí)際編程過程中,卻遇到了各種各樣的錯誤,這也多虧了老師的指點(diǎn)和班級同學(xué)的幫忙,使我一步步克服了實(shí)訓(xùn)過程中遇到的困難。雖然我所做的系統(tǒng)并沒有實(shí)現(xiàn)所有功能,但是我覺得自己進(jìn)步了,很多原來都不懂的東西現(xiàn)在都已經(jīng)了解了,也培養(yǎng)了我的團(tuán)隊(duì)合作精神,讓我感受到了集體的溫暖。實(shí)訓(xùn)的過程與課堂上的講課比,更為有趣,因?yàn)榭梢哉嬲淖约簞邮植僮鳎刮覍蠋熒险n所講的內(nèi)容有了更深一步的了解,使我在以后的編程中可以靈活運(yùn)用。我期待以后有更多類似的實(shí)訓(xùn),使我們可以多掌握一項(xiàng)技能,也可以讓我們在以后找工作中可以有更多的實(shí)踐經(jīng)驗(yàn)。學(xué)知識可不能憑自己的愛好和一時興趣,要一步一個腳印,認(rèn)認(rèn)真真,踏踏實(shí)實(shí),理論與實(shí)踐相結(jié)合,在扎實(shí)掌握課本實(shí)例和內(nèi)容之后,有一定的擴(kuò)展閱讀和課外學(xué)習(xí),充分全面的了解JAVA的應(yīng)用和擴(kuò)展運(yùn)用。
在我所學(xué)的語言當(dāng)中,我自認(rèn)為JAVA是一門比較強(qiáng)大的面向?qū)ο蟮木幊陶Z言,不僅僅因?yàn)樗目缙脚_性,更多的是因?yàn)樗撵`活多變
和實(shí)用性較強(qiáng),可以說比較的經(jīng)典和強(qiáng)悍。所以學(xué)好java語言有很大的用處,這次實(shí)訓(xùn),我們更多學(xué)到的是不懂就問和自己應(yīng)該盡自己的全力去嘗試,哪怕失敗,只要自己盡自己的全力,和身邊同學(xué)一起探討而不是抄襲,團(tuán)結(jié)合作,發(fā)揮團(tuán)隊(duì)意識,最后在自己的努力下,終于運(yùn)行成功,這種成就感美不可言,心情愉悅至極。
最后終于要結(jié)束了,大家都有種釋懷的感覺,當(dāng)然我想我更多的是興奮和自己掌握了知識之后的飽滿感,學(xué)知識就像吃東西一樣,吃飽了就應(yīng)該好好的消化。要不斷的溫習(xí)和運(yùn)用,做到舉一反三,將所學(xué)知識充分融入到平時的學(xué)習(xí)生活中去,為以后的工作做好堅(jiān)實(shí)的基礎(chǔ)。感謝學(xué)校和老師能夠?yàn)槲覀兲峁┻@次機(jī)會,讓我們更好的掌握和了解JAVA這門語言!
【java實(shí)驗(yàn)的心得體會】相關(guān)文章:
java語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告10篇12-08
java培訓(xùn)的心得體會04-01
java培訓(xùn)的心得體會12-21
java實(shí)習(xí)心得體會11-04
java培訓(xùn)心得體會05-07
java實(shí)訓(xùn)心得體會02-25
java實(shí)訓(xùn)心得體會03-08
JAVA實(shí)訓(xùn)心得體會12-29
Java與Java web有什么不同02-23
Java與Java web有什么不同01-22