明解java-第二章各小节之间的联系-柴田望洋

上次讲到章节之间的关系,没有讲第二章各部分之间的联系。第二章各部分上下文之间的联系是怎样的呢?

 

第二章最后一节是字符串的读入,给出的代码如下

package Chap2;

import java.util.Scanner;

 

public class string1 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

 

System.out.print("您的姓氏为:");

        String x = s.next();

        

Scanner q= new Scanner(System.in);

 

        System.out.print("您的名为:");

        String y = q.nextLine();

        

        System.out.print("您好:"+x+y+" 先生");

 

}

}

 

分写这段代码中使用的知识点,import Scanner,这是前面讲过的内容。如果前面没有提到这个Scanner的使用,这里就要单独解释Scanner类的使用了。如果没有解释,直接使用,读者会不明所以。这是第一点和上节的联系。关于Scanner的使用也就是导入,声明,使用三步。柴田说,固定的语法结构,记住不解释。Scanner的功能是从键盘输入一个数据,存放在变量盒子中。String的使用,之前柴田在前文讲过int、double的使用,说这些数据类型是基本数据类型。没有讲到String,这里出现了String,柴田就要解释一下。他解释分为两步,第一是粗略解释,在本小节是粗略的解释。他说,String不是数据类型,是字符串类型,不是基本类型。基本类型有int、double、float、long、byte、short。String不是放在变量盒子中,而是变量盒子的组合,其中有字符串本身的盒子和引用字符串的盒子。

 

String前面讲的是生成随机数,用到的代码如下

package Chap2;

import java.util.Scanner;

 

import java.util.Random;

 

public class rand3 {

public static void main(String[] args) {

Scanner stdIn = new Scanner(System.in);

System.out.println("整数值:");

        int S = stdIn.nextInt();

Random rand = new Random();

 

int N = rand.nextInt(11);

 

System.out.println("生成了该值±5范围内的随机数"+(S+N-5)+"。");

//System.out.println("随机生成并显示一位数的正整数(-9~-1):"+(Luck+1)*(-1)+"。");

 

}

}

 

我们观察这串代码中使用的内容可以发现,先是有Scanner,然后再是Random。Scanner是在本小节前面的内容。能不能放在本节后面的,当然是可以的,但本节就会多出两个内容,一个是Scanner,一个是Random。柴田没有这样做,他是先讲了Scanner,然后讲的Random。代码的意思是,从键盘输入一个数,然后和随机数运算,得出想要的随机数的范围。Random有个特点,它只能按照规定,生成固定范围的随机数。当我们想要±范围的随机数,则要通过运算来实现。柴田在这段代码中示范了如何将程序中各个类的功能相互联系。比如Scanner与Random之间的联系。各自声明后,再组成表达式,产生新的随机数的范围。这就制造出新的内容了。我们还可以将刚才讲过的String联系进来,写一个更复杂的代码,里面包含String、Scanner、Random三个类,实现想要的功能。这是很有想象力的做法。

 

随机数的前面讲的是final变量的用法。final是用来限定某个基本数据类型的变量的。变量是可以改动的,它只是一个盒子,里面的数据内容可以随意改变。但有了final修饰限定之后,变量数据内容被固定,轻易不能改变。比如final double PI = 3.14 ; 将PI变量的内容限定为3.14,不能够再更改。这种用法主要是对变量类型特别多,搞不清楚那个变量是可动的或不可动的,通过final将轻易不可动的变量进行限定。我想到一个有趣的问题,如果final修饰的变量是从Scanner的对象中调用的,它还有存在的意义吗?我不知道,没试过。柴田在讲final时,用到的代码如下

package Chap2;

import java.util.Scanner;

 

public class test6 {

public static void main(String[] args) {

Scanner stdIn = new Scanner(System.in);

System.out.println("求圆的周长和面积");

final double PI = 3.1415926 ;

System.out.print("请输入圆的半径r");

double r = stdIn.nextDouble();

 

//System.out.print("请输入三角形的底");

//double y = stdIn.nextDouble();

 

System.out.println("圆的周长="+2*PI*r);

System.out.println("圆的面积="+PI*r*r);

 

//System.out.println("x-y = "+(x - y));

//System.out.println("(x + y)/2= "+(x + y)/2 );

//System.out.println("x%y = "+(x % y));//%取余

 

}

}

阅读这段代码,可以再次看到Scanner的使用。在final之前,讲的就是Scanner的声明和语法规则。通过键盘输入就是Scanner的作用。柴田用的代码如下

package Chap2;

import java.util.Scanner;

 

public class test1 {

public static void main(String[] args) {

Scanner a = new Scanner(System.in);

System.out.println("请输入7:");

 

int     b = a.nextInt();

System.out.println(b);

}

}

 

这个代码里面有一个Scanner,还有一个变量的知识。变量是在Scanner之前讲的。Scanner是讲过变量后加进去的新的内容。如果没有讲变量,是不能使用int b=a.nextInt()这个语法结构的。如果要使用,就要在本小节解释int b=1 和int b=a.nextInt()之间的区别。本节内容就成为有两点,1.Scanner的使用。2.变量的使用。柴田没有这样做,他在上节详细讲了变量的内容,在本节就不再讲解变量、变量初始化、赋值这些概念了。

 

柴田在讲变量的时候,从简单到复杂,先是讲变量声明和赋值,然后介绍基本数据类型,再讲变量的初始化赋值和赋值之间的不同。最后运用运算式体会变量的方便。运算式也要提前讲。柴田用到的代码如下

package Chap1;

 

public class Variable1 {

public static void main(String[] args) {

int x,y,z;

 

x = 63;

y = 18;

z = 60;

 

System.out.println("x的值是"+x);

System.out.println("y的值是"+y);

System.out.println("z的值是"+z);

System.out.println("合计值是"+(x+y+z));

System.out.println("平均值是"+(x+y+z)/3+"。");

 

}

}

这段代码,有变量的初始化,也有对变量的运算式。通过运算使用变量。到了后面Scanner,是通过键盘输入来改变变量,让代码复杂,实现更多的功能。

 

在变量之前柴田讲的什么?讲的是一个输入语句、输入格式、数字和字符串的转化。这要用至少两个代码才行,柴田的两个代码如下

代码1

package Chap1;

 

public class Hello {

public static void main(String[] args) {

System.out.println("敦\n敏"+ "\n\n");

System.out.println("读\n"+ "书");

System.out.println("敦敏"+ "\n读书");

System.out.print("敦\n敏\n");

System.out.print("读\n"+ "书");

}

}

 

代码2

package Chap1;

 

public class Sum1 {

public static void main(String[] args) {

System.out.println(57+32+"是57+32的和");

System.out.println("57-32="+(57-32));

}

}

这是很最基础的代码了。基础到不知道咋说了,柴田能站在初学者一无所知的角度通过代码示例去解释代码的含义。在输出语句之前,柴田不厌其烦的讲了源文件、类文件、java运行基础。这样的结构讲解,确实适合初学者学习。

 

我总结出一个好用的方法,柴田是从简单到复杂讲解,我学习也是按照他的思路进行。在写笔记的时候,我要进行上下章节的联系,反而是从复杂到简单去解释。这样更能深入的理解柴田的思路方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值