zoukankan      html  css  js  c++  java
  • Java编程思想第四版第二章练习题答案

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

    public class JavaThinking {
        
        private static int i;
        private static char c;
        
        public static void main(String[] args){
            System.out.println(i);
            System.out.println(c);
            
            //这里char的默认值为'u0000'可以这样输出
            System.out.println(c == 'u0000');  //结果为true证明char的默认值是'u0000'
        }
    
    }

    运行结果:

    0
    
    true
    说明:在Java中,只有成员变量才会赋值,对于局部变量,不会有默认值。第二行输出之所以显示空白是因为空白符的code是0x20,0x20以下为不可见的控制字符

    练习2:参照本章的HelloDate.java这个例子,创建一个"Hello,World"程序,该程序只需输出这句话即可。你所编写的类里只需一个方法(即"main"方法。在程序启动时被执行)。记住要把它设为static形式,并指定参数列表-即使根本不会用到这个表。用javac进行编译,再用java运行它。如果你使用的是不同于JDK的开发环境,请了解如何在你的环境中进行编译和运行

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

    练习3:找出含有ATypeName的代码段,将其改写成完整的程序,然后编译、运行

    class ATypeName{
        public ATypeName() {
            System.out.println("补全ATypeName代码");
        }
    }
    
    public class JavaThinking {
        
        public static void main(String[] args){
            ATypeName a = new ATypeName();
        }
    
    }

    练习4:将DataOnly代码段改写成一个程序,然后编译、运行

    class DataOnly{
        int i;
        double d;
        boolean b;
    }
    
    public class JavaThinking {
        
        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);
        }
    }

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

    答案参考练习四

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

    public class JavaThinking {
        
        public static void main(String[] args){
            String s = "helloworld";
            System.out.println(storage(s));
        }
        
        public static int storage(String s){
            return s.length()*2;
        }
    }

    练习7:将Incrementable的代码段改写成一个完整的可运行程序

    class StaticTest{
        static int i = 47;
    }
    
    class Incrementable{
        static void increment(){
            System.out.println(StaticTest.i++);
        }
    }
    
    public class JavaThinking {
        
        public static void main(String[] args){
            Incrementable sf = new Incrementable();
            //通过对象调用static方法
            sf.increment();
            //通过类名调用static方法
            Incrementable.increment();
        }
    }

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

    class StaticTest{
        static int i = 47;
    }
    
    public class JavaThinking {
        
        public static void main(String[] args){
            StaticTest st1 = new StaticTest();
            StaticTest st2 = new StaticTest();
            System.out.println("st1=" + st1.i + ", " + "st2=" + st2.i);
            
            StaticTest.i++;
            System.out.println("st1=" + st1.i + ", " + "st2=" + st2.i);
        }
    }

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

    public class JavaThinking {
        
        public static void main(String[] args){
            Character ch = 'x'; // 自动包装功能将 基本类型转为包装器类型
            System.out.println(ch);
            
            char c = ch;     //包装器类型转为基本类型
            System.out.println(c);
        }
    }

    练习10:编写一个程序,打印出从命令行获得的三个参数。为此,需要确定命令行数组中String的下标

    public class JavaThinking {
        
        public static void main(String[] args){
            System.out.println(args[0]);
            System.out.println(args[1]);
            System.out.println(args[2]);
        }
    }
    cmd命令行输入 java JavaThinking hello world !查看结果

    练习11:将AllTheColorsOfRainbow这个示例改写成一个程序,然后编译、运行

    class AllTheColorsOfTheRainbow
    {
        int anIntegerRepresentingColors;
        void changeTheHueOfTheColor(int newHue){
            anIntegerRepresentingColors = newHue;
            System.out.println(anIntegerRepresentingColors);
        }
    }
    
    public class  JavaThinking
    {
        public static void main(String[] args) 
        {
            AllTheColorsOfTheRainbow rc = new AllTheColorsOfTheRainbow();
            rc.changeTheHueOfTheColor(7);
        }
    }

    练习12:找出HelloDate.java的第二个版本,也就是那个简单注释文档的示例。对该文件执行javadoc,然后通过Web浏览器查看运行结果

    import java.util.Date;
    
    /**
    * The first Think in java example program
    * Display a string and today's date.
    * @author Bruce Eckel
    * @version 4.0
    */
    public class  HelloDate
    {
        /**
        *Entrv point to class & application.
        *@param args array of String arguments.
        *@throws exception No exceptions thrown
        */
        public static void main(String[] args) 
        {
            System.out.println("Hello, ist's: ");
            System.out.println(new Date());
        }
    }

    在cmd命令行输入 javadoc -d mydoc HelloDate.java
    javadoc工具的使用格式如下
    javadoc[选项][保存注释的文件名][源文件][@filie]
    @file指的是包含文件

    练习13:通过javadoc运行Documentation1.java, Documentation2.java和Documentation3.java,然后通过Web浏览器观看所产生的文档

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

    练习15:使用练习2的程序,加入注释文档。用javadoc提取此注释文档,并产生一个注释文件,然后通过Web浏览器查看结果。

    练习16:找到第5章中的Overloading.java示例,并为它加入javadoc文档。然后用javadoc提取此注释文档,并产生一个HTML文件,最后,通过Web浏览器查看结果

  • 相关阅读:
    luogu3810 【模板】三维偏序(陌上花开)
    POJ 1704 Georgia and Bob(阶梯博弈)
    URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)
    BZOJ 1064: [Noi2008]假面舞会(dfs + 图论好题!)
    Codeforces Round #332 (Div. 2) D. Spongebob and Squares(枚举)
    HDU 4313 Matrix(并查集)
    HDU 4312 Meeting point-2(切比雪夫距离转曼哈顿距离)
    HDU 4311 Meeting point-1(曼哈顿距离最小)
    HDU 4309 Seikimatsu Occult Tonneru(最大流+二进制枚举)
    HDU 4303 Hourai Jeweled(树形DP)
  • 原文地址:https://www.cnblogs.com/StanLong/p/6703375.html
Copyright © 2011-2022 走看看