在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過文章可以把我們那些零零散散的思想,聚集在一塊。范文怎么寫才能發(fā)揮它最大的作用呢?下面是小編幫大家整理的優(yōu)質(zhì)范文,僅供參考,大家一起來看看吧。
java編程思想篇一
計算機3班
竇金霞
20104773
最近幾周一直在弄程序,說實話真的很累,但累中也有成功的快樂。我覺得學(xué)到了很多東西,這是只看課本知識所不能學(xué)到的。
說實話,以前我一直沒學(xué)過java雖然我也知道java的重要性,可是即使上課聽了,不實踐還是掌握不了。因為種種原因,今年我沒有買筆記本。沒有機器,僅僅靠每周一次的上機練習(xí)是絕對不夠的。所以我就插空調(diào)程序,在舍友們不用的時候自己再接她們的電腦調(diào)。
調(diào)上一個web版的通訊錄程序時我已經(jīng)感覺到學(xué)的很吃力,好多東西都不懂。這次做的這個學(xué)生成績管理系統(tǒng)更復(fù)雜了,所以一開始調(diào)的時候感覺特別吃力.所以我告訴自己不能放棄,慢慢來,就這樣我從最基本的sql語句session對象開始學(xué)起,我覺得我還有太多不懂得所以要比別人付出更多的努力。就這樣我一點一點的學(xué)著??
說心里話,在做上一個web版的通訊錄時,我就感覺到成功的喜悅。好多地方我都是一點一點的問的,在問的過程中,我也學(xué)會了很多,像:servlet和jsp之間跳不過去時有兩種解決辦法,;二是將servlet中的throws exception改成try catch以捕捉異常;我還學(xué)到了集中查找錯誤的方法,可以加上兩個雙斜杠“//”將具體的方法屏蔽掉,一檢查是方法錯誤還是servlet錯誤,n()將獲得的數(shù)據(jù)輸出,用來檢查數(shù)據(jù)傳輸過程有沒有錯誤等等。
雖然在別人看來,這些方法可能都很常規(guī),但是確實我自己學(xué)會的,我覺得很有成就感。我已經(jīng)做好計劃了,暑假的時候去買本本用自己的本本練習(xí)一下java,雖然下學(xué)期不學(xué)java了,但是我對java的熱情不會因為這個而削減的!
做完這個學(xué)生成績管理系統(tǒng)后,我覺得我對java的看法已經(jīng)改變了。一前總以為java很繁瑣很難,聽同學(xué)說java不好學(xué),開始又有一些聽不懂,所以一直很畏懼java。但真正做了這個系統(tǒng)以后我才感覺到其實任何事都沒有難與不難之分,只要你肯努力的去做,世上無難事只怕有心人!
我現(xiàn)在對java學(xué)習(xí)充滿了熱情,我知道我還有很多的不足
還有很多需要努力的地方,所以我的java之旅將繼續(xù)進行??
java編程思想篇二
《java編程》
計算器
班級:****** 姓名:******
學(xué)號: ******* 指導(dǎo)老師:******
實驗名稱:java計算器
1實驗?zāi)康? java編程語言在編程方面的具體應(yīng)用,以及使用面向?qū)ο蠓椒?對小應(yīng)用程序進行需求分
析、概要設(shè)計、詳細設(shè)計,最后使用java編程實現(xiàn)的全過程。
2實驗意義:
在編程我們使用的java語言,是目前比較流行的編程語言。在當(dāng)今這個時代,java語言在編程方面的優(yōu)勢使得編程有了更好的選擇。java語言最大的特點是具有跨平臺性,使其不受平臺不同的影響,得到了廣泛的應(yīng)用。實訓(xùn)性質(zhì)
本課程是計算機信息管理專業(yè)的一門實踐性課程,是《java編程》課程的實踐性教學(xué)環(huán)節(jié)。實訓(xùn)目標(biāo)
⑴綜合應(yīng)用java程序設(shè)計的知識解決實際問題。
⑵學(xué)會在應(yīng)用程序的設(shè)計過程中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法。⑶學(xué)會應(yīng)用jdbc創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。
⑷學(xué)會開發(fā)基于swing的應(yīng)用程序及多文檔應(yīng)用程序的設(shè)計。實訓(xùn)任務(wù)
用java語言開發(fā)工具(例如jdk、jcreator、netbeans等)制作一個簡單的可運行的完整的應(yīng)用程序或小型系統(tǒng),并編制出各階段必要的文檔。
將創(chuàng)建一個計算器,可以進行常用的加減乘除算術(shù)運算。本實例的知識點有:窗口布局器gridlayout的應(yīng)用,對按鈕消息的監(jiān)聽和響應(yīng)。
6實訓(xùn)條件
<軟件:>windows xp,netbeans ide 6.52 7開發(fā)背景: java是由sun microsystems公司于1995年5月推出的java程序設(shè)計語言(以下簡稱java語言)和java平臺的總稱。java語言是一個支持網(wǎng)絡(luò)計算的面向?qū)ο蟪绦蛟O(shè)計語言。java語言吸收了smalltalk語言和c++語言的優(yōu)點,并增加了其它特性,如支持并發(fā)程序設(shè)計、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。
8系統(tǒng)部分分析:
1)java語言是簡單的。java語言的語法與c語言和c++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用java。另一方面,java丟棄了c++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。
2)java語言是一個面向?qū)ο蟮摹ava語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。java語言全面支持動態(tài)綁定,而c++ 語言只對虛函數(shù)使用動態(tài)綁定
3)java語言是分布式的。java語言支持internet應(yīng)用的開發(fā),在基本的java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括url、urlconnection、socket、serversocket等。java的rmi(遠程方法激活)機制也是開發(fā)分布式應(yīng)用的重要手段。
4)java語言是健壯的。java的強類型機制、異常處理、廢料的自動收集等是java程序健壯性的重要保證。對指針的丟棄是java的明智選擇。java的安全檢查機制使得java更具健壯性。
5)java語言是安全的。java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,java提供了一個安全機制以防惡意代碼的攻擊。除了java語言具有的許多安全特性以外,java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機制(類classloader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制.6)java語言是體系結(jié)構(gòu)中立的。java程序(后綴為java的文件)在java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實現(xiàn)這個java平臺的任何系統(tǒng)中運行。
7)java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。java系統(tǒng)本身也具有很強的可移植性,java編譯器是用java實現(xiàn)的.8)java語言是解釋型的。如前所述,java程序在java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個java平臺的任何系統(tǒng)中運行。
9)java是高性能的。與那些解釋型的高級腳本語言相比,java的確是高性能的。事實上,java的運行速度隨著jit(just-in-time)編譯器技術(shù)的發(fā)展越來越接近于c++。
10)java語言是多線程的。在java語言中,線程是一種特殊的對象,它必須由thread類或其子(孫)類來創(chuàng)建。
11)java語言是動態(tài)的。java語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境。
目錄
課程設(shè)計題目 ……………………………… p1
課程設(shè)計簡介 ……………………………… p2
課程設(shè)計源代碼…………………………… p5
課程設(shè)計運行結(jié)果 ……………………… p15 課程設(shè)計心得體會 ………………………
p16
package computerpad;import .*;import .event.*;import .*;import .*;import list;import format;public class computerpad extends frame implements actionlistener {
numberbutton numberbutton[];
operationbutton oprationbutton[];
button 小數(shù)點按鈕,正負號按鈕,退格按鈕,求倒數(shù)按鈕,等號按鈕,清零按鈕;
panel panel;
jtextfield resultshow;
string 運算符號[]={“+”,“-”,“*”,“/”};
linkedlist 鏈表;
boolean 是否按下等號=false;
public computerpad()
{
super(“計算器”);
鏈表=new linkedlist();
numberbutton=new numberbutton[10];
for(int i=0;i<=9;i++)
{
numberbutton[i]=new numberbutton(i);
numberbutton[i].addactionlistener(this);
}
oprationbutton=new operationbutton[4];
for(int i=0;i<4;i++)
{
oprationbutton[i]=new operationbutton(運算符號[i]);
oprationbutton[i].addactionlistener(this);
}
小數(shù)點按鈕=new button(“.”);
正負號按鈕
=new button(“+/-”);
等號按鈕=new button(“=”);
求倒數(shù)按鈕=new button(“1/x”);
退格按鈕=new button(“退格”);
清零按鈕=new button(“c”);
eground();
eground();
eground();
eground();
eground();
eground();
ionlistener(this);
ionlistener(this);
ionlistener(this);
ionlistener(this);
ionlistener(this);
ionlistener(this);
resultshow=new jtextfield(10);
izontalalignment();
eground();
t(new font(“timesroman”,,14));
der(new softbevelborder(d));
kground();
table(false);
panel=new panel();
out(new gridlayout(4,5));
(numberbutton[1]);
(numberbutton[2]);
(numberbutton[3]);
(oprationbutton[0]);
(清零按鈕);
(numberbutton[4]);
(numberbutton[5]);
(numberbutton[6]);
(oprationbutton[1]);
(退格按鈕);
(numberbutton[7]);
(numberbutton[8]);
(numberbutton[9]);
(oprationbutton[2]);
(求倒數(shù)按鈕);
(numberbutton[0]);
(正負號按鈕);
(小數(shù)點按鈕);
(oprationbutton[3]);
(等號按鈕);
add(panel,);
add(resultshow,);
addwindowlistener(new windowadapter()
{ public void windowclosing(windowevent e)
{
(0);
}
});
setvisible(true);
setbounds(100,50,240,180);
setresizable(false);
validate();
} public void actionperformed(actionevent e)
{
if(rce()instanceof numberbutton)
{
numberbutton b=(numberbutton)rce();
if(()==0)
{
int number=ber();
(“"+number);
t(”“+number);
是否按下等號=false;
}
else if(()==1&&是否按下等號==false)
{
int number=ber();
string num=(string)first();
string s=(”“+number);
(0,s);
t(s);
}
else if(()==1&&是否按下等號==true)
{
int number=ber();
first();
(”“+number);
是否按下等號=false;
t(”“+number);
}
else if(()==2)
{
int number=ber();
(”“+number);
t(”“+number);
}
else if(()==3)
{
int number=ber();
string num=(string)t();
string s=(”“+number);
(2,s);
t(s);
}
}
else if(rce()instanceof operationbutton)
{
operationbutton b=(operationbutton)rce();
if(()==1)
{
string fuhao=運算符號();
(fuhao);
}
else if(()==2)
{
string fuhao=運算符號();
(1,fuhao);
}
else if(()==3)
{
string fuhao=運算符號();
string number1=(string)first();
string number2=(string)t();
string 運算符號=(string)(1);
try
{
double n1=ouble(number1);
double n2=ouble(number2);
double n=0;
if((”+“))
{
n=n1+n2;
}
else if((”-“))
{
n=n1-n2;
}
else if((”*“))
{
n=n1*n2;
}
else if((”/“))
{
n=n1/n2;
}
();
(”“+n);
(fuhao);
t(”“+n);
}
catch(exception ee)
{
}
}
}
else if(rce()==等號按鈕)
{
是否按下等號=true;
if(()==1||()==2)
{
string num=(string)first();
t(”“+num);
}
else if(()==3)
{
string number1=(string)first();
string number2=(string)t();
string 運算符號=(string)(1);
try
{
double n1=ouble(number1);
double n2=ouble(number2);
double n=0;
if((”+“))
{
n=n1+n2;
}
else if((”-“))
{
n=n1-n2;
}
else if((”*“))
{
n=n1*n2;
}
else if((”/“))
{
n=n1/n2;
}
t(”“+n);
(0,”“+n);
last();
last();
}
catch(exception ee)
{
}
}
}
else if(rce()==小數(shù)點按鈕)
{
if(()==0)
{
是否按下等號=false;
}
else if(()==1)
{
string dot=el();
string num=(string)first();
string s=null;
if(f(dot)==-1)
{
s=(dot);
(0,s);
}
else
{
s=num;
}
(0,s);
t(s);
}
else if(()==3)
{
string dot=el();
string num=(string)t();
string s=null;
if(f(dot)==-1)
{
s=(dot);
(2,s);
}
else
{
s=num;
}
t(s);
}
}
else if(rce()==退格按鈕)
{
if(()==1)
{
string num=(string)first();
if(()>=1)
{
num=ing(0,()-1);
(0,num);
t(num);
}
else
{
last();
t(”0“);
}
}
else if(()==3)
{
string num=(string)t();
if(()>=1)
{ num=ing(0,()-1);
(2,num);
t(num);
}
else
{
last();
t(”0“);
}
}
}
else if(rce()==正負號按鈕)
{
if(()==1)
{
string number1=(string)first();
try
{
double d=ouble(number1);
d=-1*d;
string str=f(d);
(0,str);
t(str);
}
catch(exception ee)
{
}
}
else if(()==3)
{
string number2=(string)t();
try
{
double d=ouble(number2);
d=-1*d;
string str=f(d);
(2,str);
t(str);
}
catch(exception ee){
}
}
}
else if(rce()==求倒數(shù)按鈕)
{
if(()==1||()==2)
{
string number1=(string)first();
try
{
double d=ouble(number1);
d=1.0/d;
string str=f(d);
(0,str);
t(str);
}
catch(exception ee){
}
}
else if(()==3)
{
string number2=(string)t();
try
{
double d=ouble(number2);
d=1.0/d;
string str=f(d);
(0,str);
t(str);
}
catch(exception ee){
}
}
}
else if(rce()==清零按鈕)
{
是否按下等號=false;
t(”0“);
();
}
} public static void main(string args[])
{
new computerpad();
}
}
package computerpad;import .*;import .event.*;import .*;public class numberbutton extends button {
int number;
public numberbutton(int number)
{
super(”"+number);
=number;
setforeground();
}
public int getnumber()
{
return number;
} }
import .*;import .event.*;import .*;public class operationbutton extends button {
string 運算符號;
public operationbutton(string s)
{
super(s);
運算符號=s;
setforeground();
}
public string get運算符號()
{
return 運算符號;
} } 14 java實訓(xùn)心得:
未接觸java之前,聽人說java這門語言如何的強大和難以入門,但學(xué)習(xí)之后,給我的感覺卻是語言沒有所謂的難于不難,關(guān)鍵是自己有沒有真正投入去學(xué),有沒有花時間去學(xué)。java是一門很好的語言,經(jīng)過周圍人對java的宣傳,我一開始不敢去學(xué)習(xí)這門語言,因為一門高級語言總是讓人想到一開始的學(xué)習(xí)會很難,但是后來在自己的努力和老師同學(xué)的幫助下,我加入了java學(xué)習(xí)者的行列。
老師把我們帶進了門,那么,以后漫長的深入學(xué)習(xí)還是要靠自己。經(jīng)常性的編寫一些程序,或則去看懂、研究透別人編寫的程序?qū)τ谖覀兇蚝没A(chǔ)是非常有利的。讓我們懷著對java的一腔熱情,用自己的刻苦努力去把java學(xué)好。將來,用自己的成績?nèi)セ貓笥卸饔谖覀兊纳鐣⒓胰撕团笥选?/p>
java編程思想篇三
in the following code, which is the earliest statement, where the object originally held in e, may be garbage collected:
class test {
static void main(string args []){
ee e = new employee(“bob”, 48);
atepay();
n(etails());
6.e = null;
7.e = new employee(“denise”, 36);
atepay();
n(etails());
10.}
11.}
only one:
in the following code, which is the earliest statement, where the object originally held in e, may be garbage collected:
class test {
static void main(string args []){
ee e = new employee(“bob”, 48);
atepay();
n(etails());
6.e = null;
7.e = new employee(“denise”, 36);
atepay();
n(etails());
10.}
11.}
only one:
10
11
7
8
2:exhibit :
class test(e static int j = 0;
e static boolean methodb(int k)(5.j += k;
true;
6.)
static void methoda(int i){
n b:
10.b = i < 10 | methodb(4);
11.b = i < 10 || methodb(8);
12.)
static void main(string args[] }(a(0);
n(j);
17.)
18.)
what is the result?
program prints “0”
program prints “4”
program prints “8”
program prints “12”
3:what is written to the standard output given the following statement:n(4|7);
select the right answer:
a.4
b.5
c.6
d.7
4:
select valid identifier of java:
select valid identifier of java:
a.%passwd
b.3d_game
c.$charge
5:設(shè)有變量說明語句int a=1,b=0;
則執(zhí)行以下程序段的輸出結(jié)果為()。
switch(a)
{
case 1:
switch(b)
{
case 0:printf(“**0**”);break;
case 1:printf(“**1**”);break;
}
case 2:printf(“**2**”);break;
}
printf(“ ”);
a.**0**
b.**0****2**
c.**0****1****2**
d.有語法錯誤
6:in the following pieces of code, which one will compile without any error?
buffer sb1 = “abcd”;
n b = new boolean(“abcd”);
c.c: byte b = 255;
fl = 1.2;
7:
what is the result when you compile and run the following code?
public class throwsdemo
{
static void throwmethod()
{
n(“inside throwmethod.”);
throw new illegalaccessexception(“demo”);
}
public static void main(string args[])
{
try
{
throwmethod();
}
catch(illegalaccessexception e)
{
n(“caught ” + e);
}
}
}
choices:
what is the result when you compile and run the following code?
public class throwsdemo
{
static void throwmethod()
{
n(“inside throwmethod.”);
throw new illegalaccessexception(“demo”);
}
public static void main(string args[])
{
try
{
throwmethod();
}
catch(illegalaccessexception e)
{
n(“caught ” + e);
}
}
}
choices:
ation error
e error
e successfully, nothing is ed by caught:laccessexcption: demo
8:which of the following statements are not legal?
l = 4990;
i = 4l;
d = 34.4;
t = 0.9f.9:
give the following java class:
public class example{
public static void main(string args[]){
static int x[] = new int[15];
n(x[5]);
}
}
which statement is corrected?
give the following java class:
public class example{
public static void main(string args[]){
static int x[] = new int[15];
n(x[5]);
}
}
which statement is corrected?
compile, some error will run, some error will is is null.10:下面關(guān)于變量及其范圍的陳述哪些是錯的。
a.實例變量是類的成員變量。
b.實例變量用關(guān)鍵字static聲明。
c.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建
d.局部變量在使用前必須被初始化。
11:
public class x{
public object m(){
object o = new float(3.14f);//line 3
object [] oa = new object[1];//line 4
oa[0] = o;//line 5
o=null;//line 6
return oa[0];//line 7
}
}
when is the float object, created in line 3,eligible for garbage collection?
public class x{
public object m(){
object o = new float(3.14f);//line 3
object [] oa = new object[1];//line 4
oa[0] = o;//line 5
o=null;//line 6
return oa[0];//line 7
}
}
when is the float object, created in line 3,eligible for garbage collection?
after line after line 6
after line 7(that is,as the method returns)
in this method
12:
which is the most appropriate code snippet that can be inserted at line 18 in the following code?
(assume that the code is compiled and run with assertions enabled)
.*;
class asserttest
4.{
e hashmap cctld;
asserttest()
8.{
= new hashmap();
(“in”, “india”);
(“uk”, “united kingdom”);
(“au”, “australia”);
13.// more code...14.}
15.// other methods.... string getcountry(string countrycode)
17.{
18.// what should be inserted here?
country =(string)(countrycode);
country;
21.}
22.}
which is the most appropriate code snippet that can be inserted at line 18 in the following code?
(assume that the code is compiled and run with assertions enabled)
.*;
class asserttest
4.{
e hashmap cctld;
asserttest()
8.{
= new hashmap();
(“in”, “india”);
(“uk”, “united kingdom”);
(“au”, “australia”);
13.// more code...14.}
15.// other methods.... string getcountry(string countrycode)
17.{
18.// what should be inserted here?
country =(string)(countrycode);
country;
21.}
22.}
countrycode!= null;
countrycode!= null : “country code can not be null”;
cctld!= null : “no country code data is available”;
cctld : “no country code data is available”;
13:
give the following code:
public class example{
public static void main(string args[]){
int l=0;
do{
n(“doing it for l is:”+l);
}while(—l>0)
n(“finish”);
}
}
which well be output:
give the following code:
public class example{
public static void main(string args[]){
int l=0;
do{
n(“doing it for l is:”+l);
}while(—l>0)
n(“finish”);
}
}
which well be output:
it for l is 3
it for l is 1
it for l is 2
it for l is 0
14:which statements about java code security are not true?
bytecode verifier loads all classes needed for the execution of a ing code is performed by the runtime runtime the bytecodes are loaded, checked and run in an interpreter. class loader adds security by separating the namespaces for the classes of the local file system from those imported from network sources.15:a class design requires that a member variable should be accessible only by same package, which modifer word should be used?
ted
modifer
e
16:character流與byte流的區(qū)別是
a.每次讀入的字節(jié)數(shù)不同
b.前者帶有緩沖,后者沒有
c.前者是塊讀寫,后者是字節(jié)讀寫
d.二者沒有區(qū)別,可以互換使用
簡答題
17:找出兩個字符串中最大子字符串,如“abractyeyt”,“dgdsaeactyey”的最大子串為“actyet”
18:假設(shè)你有一個用1001個整數(shù)組成的數(shù)組,這些整數(shù)是任意排列的,但是你知道所有的整數(shù)都在1到1000(包括1000)之間。此外,除一個數(shù)字出現(xiàn)兩次外,其他所有數(shù)字只出現(xiàn)一次。假設(shè)你只能對這個數(shù)組做一次處理,用一種算法找出重復(fù)的那個數(shù)字。如果你在運算中使用了輔助的存儲方式,那么你能找到不用這種方式的算法嗎?
19:到底在哪里使用cascade=“...”?
20:使用tomcat部署應(yīng)用程序 emoryerror 嗎?如何解決的。
21:請寫一個java程序?qū)崿F(xiàn)數(shù)據(jù)庫緩沖池的功能?
22:有200個正整數(shù),且每個數(shù)均在1000至9999之間。請編制函數(shù),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組bb中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行降序排列。
23:anonymous inner class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
24:找出字符串a(chǎn)中包含的字符可以進行的所有不同組合。例如:abccd中,ab,ac,bc,cc,abd等都是可能的組合。
25:下面的代碼在絕大部分時間內(nèi)都運行得很正常,請問在什么情況下會出現(xiàn)問題?問題的根源在哪里?
import .linkedlist;
public class stack {
linkedlist list = new linkedlist();
public synchronized void push(object x){
synchronized(list){
t(x);
notify();
}
}
public synchronized object pop()
throws exception {
synchronized(list){
if(()<= 0){
wait();
}
return last();
}
}
}
java編程思想篇四
1.什么是gui?
a)gui是graphics user interface的全稱,意思是圖形用戶界面.2.為什么需要gui?
a)圖形用戶界面能夠讓最終用戶通過鼠標(biāo)拖動、單擊等動作就可以操作整個應(yīng)用,從而提高應(yīng)用的用戶體驗效果,
a)awt是sun公司提供的一個基本的gui類庫,被稱為抽象工具集(abstract
window-toolkit),它為java應(yīng)用程序提供了基本的組件.b)awt組件需要調(diào)用運行平臺的圖形界面來創(chuàng)建和平臺一致的對等體,所以awt只
能使用所有平臺都支持的公共組件,因此awt只能夠提供一些 的主要組成部分
a)component,代表一個具體圖形表示能力的對象,可以在屏幕上顯示,并與用戶交互.通常我們把它稱為”組件”.b)menucomponent,r,,em,代表一個菜單項.c)container,代表一個awt組件容器,可以盛裝其他commponent組件,它繼承自
component抽象類,,,,代表一個對話框
a)filedialog代表一個文件對話框,,可容納其他組件,但不能獨立存在,必須被添加到其他容器中.ii.scrollpane,帶滾動條的容器.d)layoutmanager,布局管理器,yout,流式布局,layout,邊框布局,只能盛裝5個組件,yout,網(wǎng)格布局,glayout,網(wǎng)格包布局,一種較為復(fù)雜的布局管理器,yout,卡片布局,以時間來管理容器內(nèi)的組件,將組件看作是一張張卡片,每次顯示最外面一張卡片(組件).boxlayou,箱式布局, 的事件
a)應(yīng)用程序響應(yīng)用戶的某個動作或請求,如用戶單擊了一下鼠標(biāo),用戶請求關(guān)閉應(yīng)用
程序窗口等.b)awt編程中,所有事件的處理都必須交給特定的對象來完成,我們將這個特定的對
象稱為事件監(jiān)聽器.c)awt的事件處理機制是一種委派式的事件處理方式,通過將某個事件監(jiān)聽器注冊
到用戶指定的組件,當(dāng)用戶進行某個操作并觸發(fā)指定事件時,應(yīng)用程序會自動產(chǎn)生一個事件(event)對象并作為參數(shù)傳給事件監(jiān)聽器中的事件處理器,然后由事件監(jiān)
聽器通知事件處理器來響應(yīng)用戶,完成用戶的請求.d)不同的事件需要不同的事件監(jiān)聽器,不同的監(jiān)聽器需要實現(xiàn)不同的監(jiān)聽器接口.e)事件監(jiān)聽器接口:為某個特定事件定義了響應(yīng)用戶請求的方法,當(dāng)用戶將某個事件
監(jiān)聽器注冊到指定組件上以響應(yīng)特定的事件時,則該事件監(jiān)聽器必須實現(xiàn)對應(yīng)的事件監(jiān)聽器接口才能對用戶的請求進行有效處理.例如,用戶點擊了鼠標(biāo)右鍵,希望打開某個應(yīng)用程序的右鍵菜單,則注冊到該應(yīng)用程序上的事件監(jiān)聽器必須實現(xiàn)鼠標(biāo)事件監(jiān)聽器接口,并實現(xiàn)該接口內(nèi)部某些方法來完成用戶的請求.f)事件適配器,很多時候,我們只需要實現(xiàn)某個事件監(jiān)聽器接口中個別方法就能完成應(yīng)用程序的實際需求,但實現(xiàn)該事件監(jiān)聽器接口的類必須實現(xiàn)該接口中所有的抽象方法,這會造成代碼的冗余.而事件適配器可以幫我們解決這個問題,事件適配器實現(xiàn)了所有的擁有多個抽象方法的事件監(jiān)聽器接口,并空實現(xiàn)了這些接口中所有的抽象方法,所謂空實現(xiàn),就是方法中沒有任何實現(xiàn)代碼,因此,我們可以通過繼承對應(yīng)事件監(jiān)聽器接口的事件適配器抽象類,并實現(xiàn)我們感興趣的方法來完成應(yīng)用需求即可.g)java事件處理過程中主要涉及的三類對象
i.事件源,.事件,通常指用戶的某個操作,如單擊了一下鼠標(biāo),.事件監(jiān)聽器,負責(zé)監(jiān)聽事件源上所發(fā)生的事件,并作出響應(yīng).h)awt事件監(jiān)聽器的實現(xiàn)形式
.內(nèi)部類形式 頂級類形式
iii.類本身作為事件監(jiān)聽器
iv.匿名內(nèi)部類形式
v.注:繪圖
a)awt繪圖的實現(xiàn)過程.i.重寫畫布類的paint方法,.調(diào)用component類的repaint方法繪制圖形.b)awt實現(xiàn)繪圖主要涉及的對象
.c)component類的子類canvas類,cs,代表一個畫筆,類代表了位圖,它的一個主要的實現(xiàn)類bufferedimage是可以訪問圖形數(shù)據(jù)
緩沖區(qū),并可以返回一個graphics對象來繪制該buuferedimage.d)的優(yōu)缺點
a)awt在許多非桌面環(huán)境,如嵌入式設(shè)備中有著自己的優(yōu)勢,它的主要優(yōu)點如下:.iv.更少的內(nèi)存:對運行在有限環(huán)境中的gui程序的開發(fā),是合適的。2.更少的啟動事件:由于awt組件是本地由操作系統(tǒng)實現(xiàn)的。絕大多數(shù)的二進制代碼已經(jīng)在如系統(tǒng)啟動的時候被預(yù)裝載了,這降低了它的啟動事件。3.更好的響應(yīng):由于本地組件由操作系統(tǒng)渲染。4.成熟穩(wěn)定的:能夠正常工作并很少使你的程序崩潰。
b)同樣它也有不少的缺點
.更少組件類型:表和樹這些重要的組件缺失了。它們是桌面應(yīng)用程序中普遍使用的。2.缺乏豐富的組件特征:按鈕不支持圖片。3.無擴展性:awt的組件是本地組件。jvm中的awt類實例實際只是包含本地
組件的引用。唯一的擴展點是awt的canvas組件,可以從零開始創(chuàng)建自定義組
件。然而無法繼承和重用一個已有的awt組件
總結(jié):awt是sun不推薦使用的工具集,實際開發(fā)中很少使用awt而是使用sun公司
和netscape公司共同開發(fā)的一個新的用戶界面庫-swing來開發(fā)gui應(yīng)用程序,awt是圖形用戶界面編程的基礎(chǔ),它的布局管理、事件機制、剪貼板操作等內(nèi)容仍然適用于swing gui編程.
java編程思想篇五
【程序1】
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....【程序2】
題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。
1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。
【程序3】
題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。
【程序4】
題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
程序分析:對n進行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:
(1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。
(2)如果n<>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。
【程序5】
題目:利用條件運算符的嵌套來完成此題:學(xué)習(xí)成績>=90分的同學(xué)用a表示,60-89分之間的用b表示,60分以下的用c表示。
1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
【程序6】
題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。
1.程序分析:利用輾除法。
【程序7】
題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。
1.程序分析:利用while語句,條件為輸入的字符不為'n'.【程序8】
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。
1.程序分析:關(guān)鍵是計算出每一項的值。
【程序9】
題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程 找出1000以內(nèi)的所有完數(shù)。
【程序10】
題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經(jīng)過多少米?第10次反彈多高?
【程序11】
題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?
1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。
【程序12】
題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(i)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤i,求應(yīng)發(fā)放獎金總數(shù)?
1.程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。
【程序13】
題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析:
【程序14】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1.程序分析:以3月5日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。
【程序15】
題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
【程序16】
題目:輸出9*9口訣。
1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
【程序17】
題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思維的方法,從后往前推斷。
【程序18】
題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。
1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。
【程序19】
題目:打印出如下圖案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把圖形分成兩部分來看待,前四行一個規(guī)律,后三行一個規(guī)律,利用雙重 for循環(huán),第一層控制行,第二層控制列。
【程序20】
題目:有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。
1.程序分析:請抓住分子與分母的變化規(guī)律。
【程序21】
題目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加變成了累乘。
【程序22】
題目:利用遞歸方法求5!。
1.程序分析:遞歸公式:fn=fn_1*4!
【程序23】
題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。
【程序24】
題目:給一個不多于5位的正整數(shù),要求:
一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。
【程序25】
題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。
【程序26】
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù) 判斷第二個字母。
1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。
【程序27】
題目:求100之內(nèi)的素數(shù)
【程序28】
題目:對10個數(shù)進行排序
1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,下次類推,即用第二個元素與后8個進行比較,并進行交換。
【程序29】
題目:求一個3*3矩陣對角線元素之和
1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。
【程序30】
題目:有一個已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。
1.程序分析:首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個位置。
【程序31】
題目:將一個數(shù)組逆序輸出。
1.程序分析:用第一個與最后一個交換。
【程序32】
題目:取一個整數(shù)a從右端開始的4~7位。
程序分析:可以這樣考慮:
(1)先使a右移4位。
(2)設(shè)置一個低4位全為1,其余全為0的數(shù)??捎脋(~0<<4)
(3)將上面二者進行&運算。
【程序33】
題目:打印出楊輝三角形(要求打印出10行如下圖)
1.程序分析:2 13 3 14 6 4 15 10 10 5 1
【程序34】
題目:輸入3個數(shù)a,b,c,按大小順序輸出。
1.程序分析:利用指針方法。
【程序35】
題目:輸入數(shù)組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數(shù)組。
【程序36】
題目:有n個整數(shù),使其前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面的m個數(shù)
【程序37】
題目:有n個人圍成一圈,順序排號。從第一個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。
【程序38】
題目:寫一個函數(shù),求一個字符串的長度,在main函數(shù)中輸入字符串,并輸出其長度。
【程序39】
題目:編寫一個函數(shù),輸入n為偶數(shù)時,調(diào)用函數(shù)求1/2+1/4+...+1/n,當(dāng)輸入n為奇數(shù)時,調(diào)用函數(shù)1/1+1/3+...+1/n(利用指針函數(shù))
【程序40】
題目:字符串排序。
【程序41】
題目:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?
【程序42】
題目:809*??=800*??+9*??+1 其中??代表的兩位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。
【程序43】
題目:求0—7所能組成的奇數(shù)個數(shù)。
【程序44】
題目:一個偶數(shù)總能表示為兩個素數(shù)之和。
【程序45】
題目:判斷一個素數(shù)能被幾個9整除
【程序46】
題目:兩個字符串連接程序
【程序47】
題目:讀取7個數(shù)(1—50)的整數(shù)值,每讀取一個值,程序打印出該值個數(shù)的*。
【程序48】
題目:某個公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。
【程序49】
題目:計算字符串中子串出現(xiàn)的次數(shù)
【程序50】
題目:有五個學(xué)生,每個學(xué)生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號,姓名,三門課成績),計算出平均成績,況原有的數(shù)據(jù)和計算出的平均分數(shù)存放在磁盤文件“stud”中。
【本文地址:http://aiweibaby.com/zuowen/2997341.html】