java编程思想第四版第三章要点习题

时间:2022-07-25
本文章向大家介绍java编程思想第四版第三章要点习题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  1. 使用"简短的" 和正常的 打印语句来编写一个程序
package net.mindview.util;

public class Print {
    /**
     * 不带有回车
     * @param s
     */
    public static void print(Object s){
        System.out.print(s);
    }
    
    /**
     * 带有回车
     * @param s
     */
    public static void println(Object s){
        System.out.println(s);
    }
}
package net.mindview.util;

public class Print {
    /**
     * 不带有回车
     * @param s
     */
    public static void print(Object s){
        System.out.print(s);
    }
    
    /**
     * 带有回车
     * @param s
     */
    public static void println(Object s){
        System.out.println(s);
    }
}
  1. 创建一个包含了float域的类, 并用这个类来展示别名机制. (这里懒得写了, 就是把demo中的int换成float就可以了)
package net.mindview.operators;

class Tank{
    int level;
}

public class Assignment {
    public static void main(String[] args) {
        Tank t1 = new Tank();
        Tank t2 = new Tank();
        t1.level = 27;
        t2.level = 41;
        System.out.println("t1.level:" + t1.level + ", t2.level:" + t2.level);
        t2 = t1;
        System.out.println("t1.level:" + t1.level + ", t2.level:" + t2.level);
        t1.level = 5;
        System.out.println("t1.level:" + t1.level + ", t2.level:" + t2.level);
    }

}
  1. 创建一个包含一个float域的类, 并用这个类来展示方法调用时的别名机制(将char改为float即可)
package net.mindview.operators;

class Letter{
    char c;
}

public class PassObject {
    static void  f(Letter y){
        y.c = 'z';
    }
    public static void main(String[] args) {
        Letter x = new Letter();
        x.c = 'a';
        System.out.println("1: x.c="+x.c);
        //传递的时x所指向的引用
        f(x);
        System.out.println("1: x.c="+x.c);
    }
}
  1. 编写一个计算速度的程序, 压缩使用的距离和时间都是常量.(略)
  2. 创建一个名为Dog的类, 他包含两个String与:name和says。 在main()方法中,创建两个Dog对象, 一个名为spot(它的叫声为ruff!),另一个名为scruffy(它的叫声为Wurf!).然后显示他们的名字和叫声。
package net.mindview.operators;

class Dog{
    public String name;
    public String says;
    
    @Override
    public String toString() {
        return "名字:"+this.name + ",语言:"+this.says;
    }
}
public class DogTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Dog d1 = new Dog();
        Dog d2 = new Dog();
        d1.name = "spot";
        d1.says = "Ruff!";
        d2.name = "scruffy";
        d2.says = "Wurf!";
        
        System.out.println(d1);
        System.out.println(d2);
    }
}
  1. 在练习5的基础上,创建一个新的Dog对象, 并对其赋值为spot对象。测试==和equals()方法来比较所有引用的结果。 输出结果: 名字:spot,语言:Ruff! 名字:scruffy,语言:Wurf! true true 这个结果需要特别说明一下, String是特殊的引用类型, 当他被直接赋值时,就是把这个值对应的引用位置赋值给String变量了, 所以, 两次结果都是true。 如果你用new String()赋值, 结果就不同了.
package net.mindview.operators;

class Dog{
    public String name;
    public String says;
    
    @Override
    public String toString() {
        return "名字:"+this.name + ",语言:"+this.says;
    }
}
public class DogTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Dog d1 = new Dog();
        Dog d2 = new Dog();
        d1.name = "spot";
        d1.says = "Ruff!";
        d2.name = "scruffy";
        d2.says = "Wurf!";
        
        System.out.println(d1);
        System.out.println(d2);
        
        Dog d3 = new Dog();
        d3.name = "spot";
        System.out.println(d1.name == d3.name);
        System.out.println(d1.name.equals(d3.name));
    }
}
  1. 编写一个程序, 模拟扔硬币的结果
package net.mindview.operators;

import java.util.Random;
import static net.mindview.util.Print.*;
public class ThrowCron {

    public static void main(String[] args) {
        Random num = new Random();
        int a = num.nextInt(100);
        switch (a % 2){ 
            case 0:
                println("正面"); break;
            case 1:
                println("反面");break;
        }
    }

}
fadsfas
fasfda
fasdf
fasdfa
fasdf
fasd
fdasf
fadsf