Java面向?qū)ο?/p>
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、做網(wǎng)站、平湖網(wǎng)絡(luò)推廣、小程序制作、平湖網(wǎng)絡(luò)營銷、平湖企業(yè)策劃、平湖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供平湖建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
1. super()與this()的區(qū)別?
This():當(dāng)前類的對象,super父類對象。
Super():在子類訪問父類的成員和行為,必須受類繼承規(guī)則的約束
而this他代表當(dāng)前對象,當(dāng)然所有的資源都可以訪問.
在構(gòu)造函數(shù)中,如果第一行沒有寫super(),編譯器會自動插入.但是如果父類沒有不帶參數(shù)的構(gòu)造函數(shù),或這個函數(shù)被私有化了(用private修飾).此時你必須加入對父類的實例化構(gòu)造.而this就沒有這個要求,因為它本身就進(jìn)行實例化的構(gòu)造.
而在方法中super和this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時的區(qū)別?
Public:不同包、 同一包、 類內(nèi)都可用
Private: 類內(nèi)
Protected:不同包的子類、同一包、 類內(nèi)都可用
不寫時: 同一包內(nèi)、類內(nèi)
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i 5; i++) {
for(int j = 5; j i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委托機(jī)制和垃圾回收機(jī)制
Java事件委托機(jī)制的概念,一個源產(chǎn)生一個事件并將它送到一個或多個監(jiān)聽器那里。在這種方案中,監(jiān)聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監(jiān)聽器將處理這個事件,然后返回。
垃圾回收機(jī)制垃圾收集是將分配給對象但不再使用的內(nèi)存回收或釋放的過程。如果一個對象沒有指向它的引用或者其賦值為null,則次對象適合進(jìn)行垃圾回收
5. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
用break; return 方法。
6. 什么是java序列化,如何實現(xiàn)java序列化?(寫一個實例)
序列化:處理對象流的機(jī)制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化。可以對流化后的對象進(jìn)行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進(jìn)行讀寫操作時所引發(fā)的問題。
序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
7. 一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?
可以。如果這個類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)
快速排序的偽代碼。
9. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
重寫Override,子類覆蓋父類的方法,將子類傳與父類的引用調(diào)用的還是子類的方法。
重載Overloading 一個類多個方法,名稱相同,參數(shù)個數(shù)類型不同。
兩者都是Java多態(tài)性的不同表現(xiàn)。
Overloaded的方法是可以改變返回值的類型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+”88”+8+8);
}
} 168888
(方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型。)
10. Final類有什么特點?
屬性常量 方法不可以overridding 類不可以繼承
11. 繼承時候類的執(zhí)行順序問題,一般都是選擇題,問你將會打印出什么?
答:父類:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結(jié)果:
C:java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 內(nèi)部類的實現(xiàn)方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
輸出結(jié)果:
C:java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA實現(xiàn)一種排序,JAVA類實現(xiàn)序列化的方法(二種)?
14. 如在COLLECTION框架中,實現(xiàn)比較要實現(xiàn)什么樣的接口?
15. 用插入法進(jìn)行排序代碼如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;inum ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;ial.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;jMaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;ial.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA類實現(xiàn)序例化的方法是實現(xiàn)java.io.Serializable接口
Collection框架中實現(xiàn)比較要實現(xiàn)Comparable 接口和 Comparator 接口
16. 編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個,如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(knum){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java編程,打印昨天的當(dāng)前時刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件讀寫,實現(xiàn)一個計數(shù)器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是編碼的原因,如果直接寫入int的話,將出現(xiàn)java編碼和windows編碼的混亂,因此此處寫入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的運(yùn)行結(jié)果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b
ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b2b
}
}注:類的static 代碼段,可以看作是類首次加載(被虛擬機(jī)加載)執(zhí)行的代碼,而對于類的加載,首先要執(zhí)行其基類的構(gòu)造,再執(zhí)行其本身的構(gòu)造
18、抽象類和接口的區(qū)別?
(1)接口可以被多重implements,抽象類只能被單一extends(2)接口只有定義,抽象類可以有定義和實現(xiàn)(3)接口的字段定義默認(rèn)為:publicstatic final, 抽象類字段默認(rèn)是"friendly"(本包可見)
當(dāng)功能需要累積時用抽象類,不需要累積時用接口。
19、什么是類的反射機(jī)制?
通過類(Class對象),可以得出當(dāng)前類的fields、method、construtor、interface、superClass、modified等,同是可以通過類實例化一個實例、設(shè)置屬性、喚醒方法。Spring中一切都是返射、struts、hibernate都是通過類的返射進(jìn)行開發(fā)的。
20、類的返射機(jī)制中的包及核心類?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三個過程是什么?
①對象.getClass()②類.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何喚起類中的一個方法?
①產(chǎn)生一個Class數(shù)組,說明方法的參數(shù)②通過Class對象及方法參數(shù)得到Method③通過method.invoke(實例,參數(shù)值數(shù)組)喚醒方法
23、如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
24、如何將數(shù)字轉(zhuǎn)換為字符?
1+”” 1.0+””
25、如何去小數(shù)點前兩位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小時分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得從1970年到現(xiàn)在的毫秒數(shù)
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何獲取某個日期是當(dāng)月的最后一天?
當(dāng)前日期加一天,若當(dāng)前日期與結(jié)果的月份不相同,就是最后一天。
取下一個月的第一天,下一個月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
}else{
System.out.println("不是取后一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期轉(zhuǎn)化為字符串
System.out.println(str);
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //將字符串轉(zhuǎn)化為日期
30、編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
應(yīng)該是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));
很詳細(xì)的幫你寫下,呵呵,所以要給分哦!
1、
(1)源程序如下:
public class One {
public static void main(String[] args) {
String name = "張三";
int age = 23;
char sex = '男';
String myclass = "某某專業(yè)2班";
System.out.println("姓名:" + name);
System.out.println("姓名:" + age);
System.out.println("姓名:" + sex);
System.out.println("姓名:" + myclass);
}
}
(2)
編寫完程序的后綴名是.java,如本題,文件名就是One.java。
開始\運(yùn)行\(zhòng)cmd,進(jìn)入“命令提示符窗口”,然后用javac編譯器編譯.java文件,語句:javac One.java。
(3)
編譯成功后,生成的文件名后綴是.class,叫做字節(jié)碼文件。再用java解釋器來運(yùn)行改程序,語句:java One
2、編寫程序,輸出1到100間的所有偶數(shù)
(1)for語句
public class Two1 {
public static void main(String[] args) {
for(int i=2;i=100;i+=2)
System.out.println(i);
}
}
(2)while語句
public class Two2 {
public static void main(String[] args) {
int i = 2;
while (i = 100) {
System.out.println(i);
i += 2;
}
}
}
(3)do…while語句
public class Two3 {
public static void main(String[] args) {
int i = 2;
do {
System.out.println(i);
i += 2;
}while(i=100);
}
}
3、編寫程序,從10個數(shù)當(dāng)中找出最大值。
(1)for循環(huán)
import java.util.*;
public class Three1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
for (int i = 0; i 10; i++) {
System.out.print("輸入第" + (i + 1) + "個數(shù):");
number = input.nextInt();
if (max number)
max = number;
}
System.out.println("最大值:" + max);
}
}
(2)while語句
import java.util.*;
public class Three2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
while (i 10) {
System.out.print("輸入第" + (i + 1) + "個數(shù):");
number = input.nextInt();
if (max number)
max = number;
i++;
}
System.out.println("最大值:" + max);
}
}
(3)do…while語句
import java.util.*;
public class Three3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
do {
System.out.print("輸入第" + (i + 1) + "個數(shù):");
number = input.nextInt();
if (max number)
max = number;
i++;
}while(i10);
System.out.println("最大值:" + max);
}
}
4、編寫程序,計算從1到100之間的奇數(shù)之和。
(1)for循環(huán)
public class Four1 {
public static void main(String[] args) {
int sum=0;
for(int i = 1;i=100;i+=2){
sum+=i;
}
System.out.println("1~100間奇數(shù)和:" + sum);
}
}
(2)while語句
public class Four2 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i = 100) {
sum += i;
i += 2;
}
System.out.println("1~100間奇數(shù)和:" + sum);
}
}
(3)do…while語句
public class Four3 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
do {
sum += i;
i += 2;
} while (i = 100);
System.out.println("1~100間奇數(shù)和:" + sum);
}
}
5、
(1)什么是類的繼承?什么是父類?什么是子類?舉例說明。
繼承:是面向?qū)ο筌浖夹g(shù)當(dāng)中的一個概念。如果一個類A繼承自另一個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。繼承可以使得子類具有父類的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。另外,為子類追加新的屬性和方法也是常見的做法。繼承需要關(guān)鍵字extends。舉例:
class A{}
class B extends A{}
//成員我就不寫了,本例中,A是父類,B是子類。
(2)編寫一個繼承的程序。
class Person {
public String name;
public int age;
public char sex;
public Person(String n, int a, char s) {
name = n;
age = a;
sex = s;
}
public void output1() {
System.out.println("姓名:" + name + "\n年齡:" + age + "\n性別:" + sex);
}
}
class StudentPerson extends Person {
String school, department, subject, myclass;
public StudentPerson(String sc, String d, String su, String m, String n,
int a, char s) {
super(n, a, s);
school = sc;
department = d;
subject = su;
myclass = m;
}
public void output2() {
super.output1();
System.out.println("學(xué)校:" + school + "\n系別:" + department + "\n專業(yè):"
+ subject + "\n班級:" + myclass);
}
}
public class Five2 {
public static void main(String[] args) {
StudentPerson StudentPersonDemo = new StudentPerson("某某大學(xué)", "某某系別",
" 某專業(yè)", "某某班級", " 張三", 23, '男');
StudentPersonDemo.output2();
}
}
第一題:pre t="code" l="java"
public class People
{
private String name;
public String speak(){
return "";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
public class American extends People
{
private String name;
@Override
public String speak()
{
return "i’m speak English";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
public class Chinese extends People
{
private String name;
@Override
public String speak()
{
return "我說中國話";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
import java.util.HashMap;
import java.util.Map;
public class Demo01
{
public static Map?, ? recruit(People[] people)
{
MapString, String resultMap = new HashMapString, String();
for (People p : people)
{
if ("我說中國話".equals(p.speak()))
resultMap.put(p.getName(), "中國人");
else
resultMap.put(p.getName(), "美國人");
}
return resultMap;
}
public static void main(String[] args)
{
Chinese chinese01 = new Chinese();
chinese01.setName("小明");
Chinese chinese02 = new Chinese();
chinese02.setName("小紅");
American american = new American();
american.setName("Tom");
People[] peoples = new People[] { chinese01, chinese02, american };
MapString, String resultMap = new HashMapString, String(3);
resultMap = (MapString, String) recruit(peoples);
for (Map.EntryString, String entry : resultMap.entrySet())
{
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
}
}
/*
運(yùn)行結(jié)果
Tom:美國人
小明:中國人
小紅:中國人
*/ 第二題:pre t="code" l="java"public class Engineer
{
private String name;
public String writerCode()
{
return "";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
public class JavaEngineer extends Engineer
{
private String name;
@Override
public String writerCode()
{
return "在寫Java代碼";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
public class iOSEngineer extends Engineer
{
private String name;
@Override
public String writerCode()
{
return "在寫iOS代碼";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
import java.util.HashMap;
import java.util.Map;
public class Demo02
{
public static Map?, ? recruit(Engineer[] Engineer)
{
MapString, String resultMap = new HashMapString, String();
for (Engineer e : Engineer)
{
if ("在寫Java代碼".equals(e.writerCode()))
resultMap.put(e.getName(), "Java工程師");
else
resultMap.put(e.getName(), "iOS工程師");
}
return resultMap;
}
public static void main(String[] args)
{
JavaEngineer JavaEngineer01 = new JavaEngineer();
JavaEngineer01.setName("Sunny");
JavaEngineer JavaEngineer02 = new JavaEngineer();
JavaEngineer02.setName("Jain");
iOSEngineer iOSEngineer = new iOSEngineer();
iOSEngineer.setName("Tony");
Engineer[] Engineers = new Engineer[] { JavaEngineer01, JavaEngineer02, iOSEngineer };
MapString, String resultMap = new HashMapString, String(3);
resultMap = (MapString, String) recruit(Engineers);
for (Map.EntryString, String entry : resultMap.entrySet())
{
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
}
}
/*
運(yùn)行結(jié)果:
Sunny:Java工程師
Jain:Java工程師
Tony:iOS工程師
*/
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?LoginFrame?extends?JFrame?implements?ActionListener?{
JTextField?jtf;//文本框
JPasswordField?jpf;//密碼框
public?LoginFrame()?{
JPanel?jpCenter?=?new?JPanel(new?GridLayout(2,?2));//2行2列,存放標(biāo)簽和輸入框密碼框
JLabel?jl1?=?new?JLabel("用戶名:");
jtf?=?new?JTextField(8);
JLabel?jl2?=?new?JLabel("密碼:");
jpf?=?new?JPasswordField(8);
jpf.setEchoChar('*');
jpCenter.add(jl1);
jpCenter.add(jtf);
jpCenter.add(jl2);
jpCenter.add(jpf);
JPanel?jp3?=?new?JPanel();//存放按鈕
JButton?jbLogin?=?new?JButton("登錄");
jbLogin.addActionListener(this);
JButton?jbCancel?=?new?JButton("取消");
jbCancel.addActionListener(this);
jp3.add(jbLogin);
jp3.add(jbCancel);
add(jpCenter);
add(jp3);
setLayout(new?FlowLayout());//窗體布局
setTitle("登錄");//窗體標(biāo)題
setSize(260,?160);//大小
setLocationRelativeTo(null);//居中
setResizable(false);//不能縮放
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關(guān)閉時默認(rèn)退出程序
setVisible(true);//可見
}
public?static?void?main(String[]?args)?{
new?LoginFrame();?//創(chuàng)建窗體
}
public?void?actionPerformed(ActionEvent?e)?{
String?cmd?=?e.getActionCommand();//得到點擊按鈕的文字
if?(cmd.equals("取消"))?{//如果是取消按鈕,那么做下面的事情(題目沒有要求,所以下面的代碼可以刪除)
jtf.setText("");
jpf.setText("");
JOptionPane.showMessageDialog(this,?"提示下都是123喲~");
jtf.requestFocus();
}
//如果是登錄按鈕,
if?(cmd.equals("登錄"))?{
String?id?=?jtf.getText().trim();//取得文本框文字
String?key?=?new?String(jpf.getPassword()).trim();//取得密碼框的信息
//如果密碼和用戶名都不是123
if?(!id.equals("123")??!key.equals("123"))?{
//提示用戶
JOptionPane.showMessageDialog(this,?"輸入錯誤,請重新輸入",?"錯誤",?JOptionPane.ERROR_MESSAGE);
jtf.setText("");//清空文本框
jpf.setText("");//清空密碼框
jtf.requestFocus();//文本框獲得焦點
}?else?if?(id.equals("123")??!key.equals("123"))?{//用戶名123,密碼不對的?情況
JOptionPane.showMessageDialog(this,?"輸入錯誤,請重新輸入",?"錯誤",?JOptionPane.ERROR_MESSAGE);
jpf.setText("");
jpf.requestFocus();
//題目沒有說明當(dāng)密碼正確,用戶名不正確的時候,該怎么處理,所以,下面的else?if代碼也可以刪除
}else?if(key.equals("123")!id.equals("123")){
JOptionPane.showMessageDialog(this,?"輸入錯誤,請重新輸入",?"錯誤",?JOptionPane.ERROR_MESSAGE);
jtf.setText("");
jtf.requestFocus();
}
}
}
}