[Java]Java编程思想(Thinking in Java)第二章习题

Head Pic: 「miku 口哨糖」/「千夜QYS3」のイラスト [pixiv]

练习1

创建一个类,它包含一个int域和char域,它们都没有被初始化,将它们的值打印出来,以验证Java执行了默认初始化。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

class Test{
    int a;
    char c;
}

public class Exercise1 {
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.a);
        System.out.println(t.c);
    }
}
/* Output:
 * 0
 *  
 */

练习2

参照本章的HelloDate.java这个例子,创建一个Hello, World程序,该程序只要输出这句话即可。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise2 {
    public static void main(String[] args) {
        System.out.println("Hello, World");
    }
}
/* Output:
 * Hello, World
 */

练习3

找出含有ATypeName的代码段,将其改为完整的程序。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

class ATypeName{
    /* Class body goes here. */
}

public class Exercise3 {
    public static void main(String[] args) {
        ATypeName a = new ATypeName();
    }
}

练习4

DataOnly代码段改成一个程序。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

class DataOnly{
    int i;
    double d;
    boolean b;
}

public class Exercise4 {
    public static void main(String[] args) {
        DataOnly data = new DataOnly();
        data.i = 47;
        data.d = 1.1;
        data.b = false;
    }
}

练习5

修改前一个练习,将DataOnly中的数据在main()方法中赋值并打印出来。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise5{
    public static void main(String[] args){
        DataOnly data = new DataOnly();
        data.i = 47;
        data.d = 1.1;
        data.b = false;
        System.out.println(data.i);
        System.out.println(data.d);
        System.out.println(data.b);
    }
}
/* Output:
 * 47
 * 1.1
 * false
 */

练习6

编写一个程序,让它含有本章定义的storage()方法的代码段,并调用之。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise6{
    public static int storage(String s){
        return s.length() * 2;
    }
  
    public static void main(String[] args){
        System.out.println(storage("Hello"));
    } 
}
/* Output:
 * 10
 */

练习7

Incrementable的代码段改写成一个完整的可运行程序。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

class StaticTest{
    static int i = 47;
}

class Incrementable{
    static void increment(){
            StaticTest.i++;
    }
}

public class Exercise7{
    public static void main(String[] args){
        Incrementable.increment();
        System.out.println(StaticTest.i);
    }
}
/* Output:
 * 48
 */

练习8

编写一个程序,展示无论你创建了多少个特定类的对象,这个类中的某个特定的static域只有一个实例。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

class Static{
    static int i = 0;
}

public class Exercise8{
    @SuppressWarnings("static-access")
    public static void main(String[] args){
        Static a = new Static();
        Static b = new Static();
        a.i++;
        System.out.println(a.i + "\n" + b.i);
        b.i++;
        System.out.println(a.i + "\n" + b.i);
    }
}
/* Output:
 * 1
 * 1
 * 2
 * 2
*/

练习9

编写一个程序,展示自动包装功能对所有基本类型和包装器类都起作用。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise9{
    @SuppressWarnings("unused")
    public static void main(String[] args){
        Boolean bo = true;
        boolean b = bo;
      
        Character ch = 'x';
        char c = ch;
      
        Byte byt = 0;
        byte by = byt;
      
        Short sh = 0;
        short s = sh;
      
        Integer in = 0;
        int i = in;
      
        Long lo = 0L;
        long l = lo;
      
        Float fl = 0.0F;
        float f = fl;
      
        Double dou = 0.0;
        double d = dou;
    }
}

练习10

编写一个程序,打印从命令行获取的三个参数。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise10 {
    public static void main(String[] args) {
        System.out.println(args[0] + " " + args[1] + " " + args[2]);
    }
}

/*
 * run arguments: java Exercise 666 777 888
 * Output:
 * 666 777 888
 */

练习11

AllTheColorOfTheRainbow这个示例改写成一个程序。

原谅我在这一章没有找到这个示例。

练习12

HelloDate.java的第二个版本执行javadoc。

此处

练习13

Documentation1.java,Documentation2.java,Documentation3.java执行javadoc。

此处

练习14

在前一个练习的文档中加入各项的HTML列表。

package xyz.cinema000.thinkinginjava.exercise.chapter2;

public class Exercise14 {
    
}

/**
 * A class comment.
 * @author cinema
 *
 */
class Documentation1{
    /**
     * A field comment.
     */
    public int i;
    /**
     * A method comment.
     */
    public void f() {
        
    }
}

/**
 * <pre>
 * System.out.println(new Date());
 * </pre>
 */

/**
 * You can <em>even</em> insert a list;
 * <ol>
 * <li>Item one</li>
 * <li>Item two</li>
 * <li>Item three</li>
 * </ol>
 */

练习15

通过练习2的程序,加入文档注释,并执行javadoc。

略。

练习16

对第五章中Overloading.java加入文档注释,并执行javadoc。

略。

最后修改:2019 年 02 月 04 日 05 : 29 PM

发表评论