• 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.operators;
      
      import java.util.Date;
      import static net.mindview.util.Print.*;
      public class HelloData {
      
          public static void main(String[] args) {
              print("hello, it is");
              print(new Date());
              System.out.println("正常的方式打印");
          }
      }
    2. 创建一个包含了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);
          }
      
      }
    3. 创建一个包含一个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);
          }
      }
    4. 编写一个计算速度的程序, 压缩使用的距离和时间都是常量.(略)
    5. 创建一个名为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);
          }
      }
    6. 在练习5的基础上,创建一个新的Dog对象, 并对其赋值为spot对象。测试==和equals()方法来比较所有引用的结果。
      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));
          }
      }

      输出结果:

      名字:spot,语言:Ruff!
      名字:scruffy,语言:Wurf!
      true
      true

      这个结果需要特别说明一下, String是特殊的引用类型, 当他被直接赋值时,就是把这个值对应的引用位置赋值给String变量了, 所以, 两次结果都是true。 如果你用new String()赋值, 结果就不同了.

    7. 编写一个程序, 模拟扔硬币的结果
      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;
              }
          }
      
      }
    8. fadsfas
    9. fasfda
    10. fasdf
    11. fasdfa
    12. fasdf
    13. fasd
    14. fdasf
    15. fadsf
  • 相关阅读:
    页面get请求 中文参数方法乱码问题
    java版ftp简易客户端(可以获取文件的名称及文件大小)
    文件下载
    kafka:一个分布式消息系统
    Executor的线程代码
    验证码的生成
    二维码的简单实现
    rsync实现大致流程描述
    C++中模板生成时机
    gcc虚函数表生成时机
  • 原文地址:https://www.cnblogs.com/ITPower/p/8509809.html
Copyright © 2020-2023  润新知