• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java教程
    Java標識符與關鍵字
    Java變量
    Java數據類型
    Java運算符
    Java控制語句
    Java方法
    Java面向對象
    Java對象的創建和使用
    Java封裝
    Java中static和this
    Java繼承
    Java方法覆蓋和多態
    Java super
    Java基礎練習題

    Java初學者練習題

     

     

    一、Java基礎練習題

     

    1、下載JDK,并安裝,然后配置環境變量path以及classpath,編寫HelloWorld程序輸出以下學生信息:

     

    2、學號,姓名,年齡,性別,家庭住址等。

     

    3、建議初學者,針對如上練習多寫一遍。

     

    下載JDK,并安裝,然后配置環境變量path以及classpath,編寫HelloWorld程序輸出以下學生信息:學號,姓名,年齡,性別,家庭住址等。

     

    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("學號 = 100000");
    		System.out.println("姓名 = 動力節點");
    		System.out.println("年齡 = 9");
    		System.out.println("性別 = 男");
    		System.out.println("住址 = 北京大興經濟技術開發區大族企業灣10號樓A座");
    	}
    }

     

     

    二、Java標識符與關鍵字練習題

     

    ● 熟記標識符的命名規則和規范。

     

    ● 分析以下單詞哪些是合法的標識符,哪些不合法:

     

    1、myName,字,My_name,Points,$points,_sys_ta,OK,_23b,_3_

     

    2、_3_(合法)

     

    3、_23b(合法)

     

    4、OK(合法)

     

    5、_sys_ta(合法)

     

    6、$points(合法)

     

    7、Points(合法)

     

    8、My_name(合法)

     

    9、字(合法)

     

    10、myName(合法)

     

    11、#name,25name,class,&time,if,Hello World

     

    12、Hello World(不合法:標識符不能含有空格)

     

    13、if(不合法:關鍵字不能做標識符)

     

    14、&time(不合法:標識符不能有&)

     

    15、class(不合法:關鍵字不能做標識符)

     

    16、25name(不合法:標識符不能以數字開始)

     

    17、#name(不合法:標識符不能有#)

     

     

    三、 Java變量練習題

     

    查閱相關資料,使用Java中的八種基本數據類型完成變量的聲明,給每一個變量賦值,并且重新賦值,并將所有變量輸出到控制臺。

     

    public class Chapter02 {
    	public static void main(String[] args) {
    		byte b = 127;
    		short s = 32767;
    		int i = 2147483647;
    		long l = 900L;
    		float f = 3.4f;
    		double d = 3.14;
    		boolean b1 = true;
    		char c = 'a';
    		
    		System.out.println(b);
    		System.out.println(s);
    		System.out.println(i);
    		System.out.println(l);
    		System.out.println(f);
    		System.out.println(d);
    		System.out.println(b1);
    		System.out.println(c);
    		
    		b = 1;
    		s = 1;
    		i = 1;
    		l = 1L;
    		f = 1.0f;
    		d = 1.0;
    		b1 = false;
    		c = '中';
    		
    		System.out.println(b);
    		System.out.println(s);
    		System.out.println(i);
    		System.out.println(l);
    		System.out.println(f);
    		System.out.println(d);
    		System.out.println(b1);
    		System.out.println(c);
    	}
    }

     

     

    四、Java數據類型練習題

     

    1、short s1 = 1; s1 = s1 + 1;有什么錯?

     

    s1是short類型,1是int類型,short和int混合運算的時候short會自動轉換為int類型,所以s1 + 1編譯器檢測出是int類型,int類型無法賦值給short類型的變量s1。這樣修改:s1 = (short)(s1 + 1);

     

    2、 char類型變量能不能儲存一個中文的漢字,為什么?

     

    java中的文字采用unicode編碼,一個中文占用2個字節,char類型在java中就是占用兩個字節,所以java中的char類型完全可以容納一個漢字。

     

    3、float f = 1.0有什么錯?

     

    1.0字面量被當做double類型處理,大容量double無法賦值給小容量float。這樣修改,兩種方案:第一種方案是1.0后面添加f/F。第二種方案是強制類型轉換:float f = (float)1.0;

     

    4、long a = 2147483648有什么錯?

     

    不是long類型存不下2147483648,而是java把2147483648當做int類型來處理,但本身已經超出int類型范圍。這樣修改:long a = 2147483648L;

     

    5、 int i = 0xffff有問題嗎?

     

    沒有問題:0xffff以0x開始表示十六進制表示方式,ffff轉換成十進制是:65535

     

    6、char c = 65536有問題嗎,為什么?

     

    65536已經超出char類型取值范圍,不能直接賦值,這樣修改:char c = (char)65536;

     

     

    五、Java運算符練習題

     

    練習以下程序并分析程序的執行結果。

     

    第1題:

     

    int x = 10;
    int a = x+ x++;
    System.out.println("a =" + a);
    System.out.println("x =" + x);
    int b = x + ++x;
    System.out.println("b =" + b);
    System.out.println("x =" + x);
    int c = x + x--;
    System.out.println("c =" + c);
    System.out.println("x =" + x);
    int d = x + --x;
    System.out.println("d =" + d);
    System.out.println("x =" + x);

     

    執行結果如下圖所示:

     

     

     

    第2題:

     

    int a = 15;
    int b = 2;
    double c = 2;
    System.out.println(a + "/" + b + "=" + (a / b));
    System.out.println(a + "%" + b + "=" + (a % b));
    System.out.println(a + "/" + c + "=" + (a / c));
    System.out.println(a + "%" + c + "=" + (a % c));

     

    執行結果如下圖所示:

     

     

    第3題:

     

    boolean x, y, z;
    int a = 15;
    int b = 2;
    x = a > b; // true;
    y = a < b; // false;
    z = a != b; // true;
    System.out.println("x =" + x);
    System.out.println("y =" + y);
    System.out.println("z =" + z);

     

    執行結果如下圖所示:

     

     

    第4題:

     

    int x;
    double y;
    x = (int) 22.5 + (int) 34.7;
    y = (double) x;
    System.out.println("x = " + x);
    System.out.println("y = " + y);

     

    執行結果如下圖所示:

     

     

    第5題:

     

    int i = 5;
    int j = 5;
    int m = 5;
    int n = 5;
    i++;
    j = j + 1;
    m--;
    n = n - 1;
    System.out.println(i);
    System.out.println(i++);
    System.out.println(++i);
    System.out.println(i--);
    System.out.println();
    System.out.println(j);
    System.out.println(j++);
    System.out.println(j--);
    System.out.println(--j);
    System.out.println();
    System.out.println(m);
    System.out.println(n);

     

    執行結果如下圖所示:

     

     

    第6題:

     

    int i = 0;
    int j = 0;
    System.out.println(i);
    System.out.println(j);
    i++;
    ++j;
    System.out.println(i);
    System.out.println(j);
    System.out.println("--------------------------");
    System.out.println(i++);
    System.out.println(++j);
    System.out.println("--------------------------");
    System.out.println(i);
    System.out.println(j);

     

    執行結果如下圖所示:

     

     

     

    六、Java控制語句練習題

     

    編寫java程序,用循環結構打印如下的數值列表:

     

    1 10 100 1000

     

    2 20 200 2000

     

    3 30 300 3000

     

    4 40 400 4000

     

    5 50 500 5000

     

    public class Test {
    	public static void main(String[] args) {
    		for(int i=1 ; i<=5 ; i++){
    			int temp = i;
    			for(int j=1; j<=4 ; j++){
    				System.out.print(temp + " ");
    				temp *= 10;
    			}
    			System.out.println();
    		}
    	}
    }

     

    ● 打印2到10000的所有素數,每行顯示8個素數。

     

    public class Test {
    	public static void main(String[] args) {
    		int count = 0;
    		for(int i=2;i<=10000;i++){
    			boolean isPrimeNum = true;
    			for(int j=2;j<i;j++){
    				if(i % j == 0){
    					isPrimeNum = false;
    					break;
    				}
    			}
    			if(isPrimeNum){
    				System.out.print(i + " ");
    				count++;
    				if(count == 8){
    					System.out.println();
    					count = 0;
    				}
    			}
    		}
    	}
    }

     

    ● 編寫程序,計算5的階乘。

     

    public class Test {
    	public static void main(String[] args) {
    		int result = 1;
    		for(int i=1; i<=5; i++){
    			result *= i;
    		}
    		System.out.println("5的階乘 = " + result);
    	}
    }

     

    ● 控制臺輸入年齡,根據年齡輸出不同的提示。

     

    public class Test {
    	public static void main(String[] args) {
    		java.util.Scanner s = new java.util.Scanner(System.in);
    		System.out.print("請輸入年齡:");
    		int age = s.nextInt();
    		if(age < 0 || age > 150){
    			throw new RuntimeException("對不起,年齡值不合法!");
    		}
    		String grade = "你是老年人";
    		if(age < 5){
    			grade = "可愛的小baby";
    		}else if(age < 10){
    			grade = "你還是個小屁孩";
    		}else if(age < 15){
    			grade = "小少年,不錯哦";
    		}else if(age < 18){
    			grade = "你是個青少年";
    		}else if(age < 35){
    			grade = "你是個青年人";
    		}else if(age < 50){
    			grade = "你已是中年人";
    		}
    		System.out.println(grade);
    	}
    }

     

    ● 編寫程序輸出下圖菱形。

     

     

    public class Test {
    	public static void main(String[] args) {
    		int lay = 9;
    		for (int m = 1; m <= (lay + 1) / 2; m++){
    			for (int b = 1; b <= (lay + 1) / 2 - m; b++){
    				System.out.print(" ");
    			}
    			for (int c = 1; c <= m * 2 - 1; c++) {
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    		for (int d = (lay + 1) / 2 - 1; d >= 1; d--){
    			for (int b = 1; b <= (lay + 1) / 2 - d; b++){
    				System.out.print(" ");
    			}
    			for (int c = (lay + 1) / 2 - d; c <= (lay + 1) / 2 - 2 + d; c++){
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    	}
    }

     

    ● 籃球從5米高的地方掉下來,每次彈起的高度是原來的30%,經過幾次彈起,籃球的高度是0.1米。 

     

    public class Test {
    	public static void main(String[] args) {
    		double height = 5.0;
    		int count = 0;
    		while(height > 0.1){
    			height *= 0.3;
    			count++;
    		}
    		System.out.println("彈起次數 = " + count);
    	}
    }

     

     

     七、Java方法練習題

     

    ● 使用遞歸方式計算N的階乘。

     

    public class Test {
    	public static void main(String[] args) {
    		int n = 5;
    		int result = factorial(n);
    		System.out.println(n + "的階乘 = " + result);
    	}
    
    	public static int factorial(int n) {
    		if(n == 1){
    			return 1;
    		}
    		return n * factorial(n - 1);
    	}
    }

     

    ● 編寫程序,模擬用戶登錄功能,程序開始運行時先在DOS命令窗口中初始化登錄頁面,提醒用戶輸入用戶名和密碼,當用戶輸入用戶名為admin,密碼為123的時候登錄成功,打印歡迎信息,當用戶輸入的用戶名和密碼不正確打印錯誤提示信息并退出系統。對于以上的程序大家盡可能定義相關方法來完成,不要將所有代碼都放到main方法當中。

     

    public class Test {
    	public static void main(String[] args) {
    		//初始化界面
    		initUI();
    	}
    	public static void login(String username, String password) {
    		if("admin".equals(username) && "123".equals(password)){
    			System.out.println("登錄成功,歡迎"+username+"回來!");
    		}else{
    			System.out.println("對不起,用戶名或者密碼錯誤!");
    		}
    	}
    	public static void initUI() {
    		java.util.Scanner s = new java.util.Scanner(System.in);
    		System.out.println("歡迎使用本系統,請登錄!");
    		System.out.print("用戶名:");
    		String username = s.next();
    		System.out.print("密碼:");
    		String password = s.next();
    		//登錄
    		login(username, password);
    	}
    }

     

    ● 通過方法重載、方法重復利用完成以下功能:

     

    1、定義一個方法,該方法可以選出2個int類型較大的數據,返回值是較大的數據。

     

    2、再定義一個方法,該方法可以選出3個int類型中較大的數據,返回值是較大的數據。

     

    3、要求使用方法重載機制,要求代碼體現出重復利用。

     

    main方法中編寫程序進行測試。

     

    public class Test {
    	public static void main(String[] args) {
    		System.out.println(getBiger(10, 20));
    		System.out.println(getBiger(5,6,4));
    	}
    	public static int getBiger(int a , int b){
    		return a > b ? a : b;
    	}
    	public static int getBiger(int a , int b , int c){
    		return getBiger(a , b) > c ? getBiger(a , b) : c; 
    	}
    }

     

     

    八、 Java面向對象練習題

     

    ●設計日期類,每個日期對象都可以描述年月日信息。

     

    public class Date {
    	int year;
    	int month;
    	int day;
    }

     

    ● 設計男人類,每個男人都有身份證號、姓名、性別、女人。設計女人類,每個女人都有身份證號、姓名、性別、男人。

     

    public class Man {
    	String idCard;
    	String name;
    	boolean sex;
    	Woman gril;
    }

     

    public class Woman {
    	String idCard;
    	String name;
    	boolean sex;
    	Man boy;
    }

     

    ● 設計銀行賬戶類,每個賬戶都有賬號、密碼、余額等信息。

     

    public class Account {
    	String actno;
    	String password;
    	double balance;
    }

     

    ● 設計微信賬號類,每個微信賬號都有微信號、手機號、昵稱等信息。

     

    public class WebChatAccount {
    	String webChatId;
    	String phone;
    	String nickname;
    }

     

     

    九、Java對象的創建和使用練習題

     

    ● 定義丈夫類Husband和妻子類Wife,丈夫類的屬性包括:身份證號,姓名,出生日期,妻子。妻子類的屬性包括:身份證號,姓名,出生日期,丈夫。分別給這兩個類提供構造方法(無參數構造方法和有參數構造方法都要提供),編寫測試程序,創建丈夫對象,然后再創建妻子對象,丈夫對象關聯妻子對象,妻子對象關聯丈夫對象,要求能夠輸出這個“丈夫對象”的妻子的名字,或者能夠輸出這個“妻子對象”的丈夫的名字。要求能夠畫出程序執行過程的內存圖。并且要求在程序中演示出空指針異常的效果。

     

    public class Husband {
    	String idCard;
    	String name;
    	String birth;
    	Wife w;
    	public Husband() {
    		super();
    	}
    	public Husband(String _idCard, String _name, String _birth) {
    		super();
    		this.idCard = _idCard;
    		this.name = _name;
    		this.birth = _birth;
    	}
    }

     

    public class Wife {
    	String idCard;
    	String name;
    	String birth;
    	Husband h;
    	public Wife() {
    		super();
    	}
    	public Wife(String _idCard, String _name, String _birth) {
    		super();
    		this.idCard = _idCard;
    		this.name = _name;
    		this.birth = _birth;
    	}
    }

     

    public class Test {
    	public static void main(String[] args) {
    		Husband zhangsan = new Husband("11111" , "zhangsan" , "2020-10-01");
    		Wife lisi = new Wife("22222" , "lisi" , "2020-10-02");
    		zhangsan.w = lisi;
    		lisi.h = zhangsan;
    		System.out.println(zhangsan.name + "的妻子是" + zhangsan.w.name);
    		System.out.println(lisi.name + "丈夫是" + lisi.h.name);
    		zhangsan.w = null;
    		lisi.h = null;
    		System.out.println(zhangsan.name + "的妻子是" + zhangsan.w.name);
    		System.out.println(lisi.name + "丈夫是" + lisi.h.name);
    	}
    }

     

    執行結果如下圖所示:

     

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏