1. 程式人生 > >尚學堂java答案解析 第一章

尚學堂java答案解析 第一章

本答案為本人個人編輯,僅供參考,如果讀者發現,請私信本人或在下方評論,提醒本人修改

一.選擇題:

1.C

解析:java為了安全,中並沒有引入C語言的指標概念.

2.AD

解析:B:Java先通過javac編譯,再通過java直譯器進行解釋執行.C:java具有跨平臺特性,位元組碼是相同的.

3.D

解析:編譯命令是javac.且編譯需要加.java檔案字尾,解釋時才不需要,且解釋時不能加目錄執行

4.B

解析:java是區分大小寫的,System和system是不同的,輸出命令是System.out.println();

5.A

解析:儲存時必須有後綴.java,若有public類只能與public類的類名相同..class字尾是編譯後的位元組碼的.

二.簡答題

1.機器語言->組合語言->高階語言

2.java在作業系統上加入了jvm虛擬機器,程式執行在jvm上,jvm會自動根據不同作業系統將相同的.class位元組碼解釋成不同的機器碼

3.JDK(java development kit) >JRE(java runtime enviroment) >JVM(java virtual machine).

4.編寫原始檔->編譯原始檔(使用編譯器javac)->位元組碼->執行位元組碼(使用直譯器java)

三.上機操作

1.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World !");
    }
}

2.

public class Print {
    public static void main(String[] args) {
        System.out.println("========================");
        System.out.println("\t主選單");
        System.out.println("\t1.註冊");
        System.out.println("\t2.登陸");
        System.out.println("\t3.幫助資訊");
        System.out.println("請選擇:");
        System.out.println("========================");
    }
}

3.

//新增速度控制的檯球遊戲

import   java.awt.*;
import  javax.swing.*;


public class BallGame extends JFrame {

    Image ball = Toolkit.getDefaultToolkit().getImage("ch1-3/images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("ch1-3/images/desk.jpg");

    double x = 200*Math.random()+40;
    double y = 200*Math.random()+70;
    double degree=3.14/3;
    double speed=10;

    public void paint(Graphics g) {
        g.drawImage(desk, 0, 0, null);
        g.drawImage(ball, (int) x, (int) y, null);

        System.out.println("x:"+x+" y:"+y);
        x=x+speed*Math.cos(degree);
        y=y+speed*Math.sin(degree);
        if(x>856-70||x<40){
            degree=3.14-degree;
        }
        if(y>430||y<70){
            degree=-degree;
        }
    }



    void launchFrame() {
        setSize(856, 500);
        setLocation(50, 50);
        setVisible(true);

        //重畫視窗,每秒畫25次
        while (speed>1) {
            repaint();
            long time=40+40/232;
            try {
                Thread.sleep(time);  //因為前期速度較快,休眠時間不能過長,而後期速度較慢,休眠時間可以長一點
                //通過時間來控制休眠時間,,避免出現前期降速太快,而後期幀數不足的情況
            } catch (Exception e) {
                e.printStackTrace();
            }
            speed=speed/1.01;//通過speed的勻速減小來使路程均勻減小

        }


    }

    public static void main(String[] args) {
        BallGame game = new BallGame();
        game.launchFrame();
    }

}