Java核心技术第3章(1)

第3章   Java的基本程序设计结构

    本章主要讲述程序设计相关的基本概念(如数据类型,分支以及循环)在Java中的实现方式.
    对于一个具有C++编程经验的程序员来说,本章的内容只需要浏览一下,应该 重点阅读分布在正文中的C/C++注释.

3.1 一个简单的Java应用程序

    下面卡一个最简单的Java应用程序,它只发送一条消息到控制台窗口中:
public class FirstSample {
    public static void main(String[] args) {
        System.out.println("we will use 'hello, world!'");
    }
}
    首先Java对大小写敏感,如果出现了大小写拼写错误,那程序将无法运行.
    关键字public称为访问修饰符
(access modifier),它用于控制程序的其他部分对这段代码的访问级别.
    关键字class表明Java程序中的全部内容都包含在类中.这里,只需要将类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为.
    是构建所有Java应用程序和applet的构建块.Java应用程序中的全部内容都必须放置在类中.
    关键字class后面紧跟类名.Java中定义 类名的规则很宽松. 名字必须以字母开头,后面可以跟字母和数字的任意组合.
    从类名FirstSample可以看出,标准的命名规范为: 类名是以大写字母开头的名字.如果名字由多个单词组成,每一个 单词的第一个字母都应该大写.如果名字由多个单词组成,每个单词的第一个字母都应该大写.
    源代码的文件名必须与公共类的名字相同,并用.java作为扩展名.因此,存储这段源代码的文件名必须为FirstSample.java .
    如果一切正确,在编译这段源代码之后就会得到一个包含这个类字节码的文件.Java编译器将字节码文件自动地命名为FirstSample.class,并与源文件存储在同一个目录下.最后使用下面这行命令运行这个程序:
java FirstSample
    当使用
java ClassName
    运行编译程序时, Java虚拟机将从指定类中的main函数开始执行,因此为了代码能够执行,在 类的源文件中必须包含一个main函数.当然,也可以将用户自定义的函数添加到类中,并且在main函数中调用它们.
    需要记住:每个Java应用程序都必须有一个main函数,格式如下所示:
public class ClassName 
{
    public static void main(String[] args)
    {
        program statement
    }
}
    C++ 注释:Java的类与C++的类很相似,但还是有些差异令人困惑.例如 Java中的所有函数都属于某个类的方法(标准属于将其称为方法,而不是成员函数). 因此,Java中的main方法必须有一个外壳类.C++中的静态成员函数(static member function)定义在类的内部,并且不对对象进行操作. Java中的main方法必须是静态的.最后,与C/C++一样,关键字void表示这个方法没有返回值,那么Java应用程序的退出码为0,表示成功地运行了程序.如果希望在终止程序时返回其他的代码,那就需要调用System.exit方法.
    接下来,研究一下这段代码:
{
    System.out.println("we will use 'hello world!'");
}
    在这里使用了System.out对象并调用了它的println方法.请注意, 点号(.)用于调用方法.Java使用通用语法是:
object.method(parameters)
    这 等价于函数调用.
    在这个示例中,调用了println方法并传递给它一个字符串参数.这个方法将传递给它的字符串参数显示在控制台上.然后,终止这个输出行,以便每次调用println都会在新的一行上显示输出.不带参数的println方法只打印一个空行,使用下面的语句:
System.out.println();
    注释:System.out还有一个print方法,它在输出后不换行.例如,System.out.print("hello")打印"hello"后不换行,后面的输出紧跟在字符"o"之后.

3.2 注释

    在Java中有三种书写注释的方式.
    最常用的是使用//
    第二种是/*和*/
    第三种注释可以用来自动地生成文档,以/**开始,以*/结束.

3.3 数据类型

    Java是一种强类型语言,这就意味着必须为每一个变量声明一个类型.在Java中,一种有8种基本类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的额字符类型 char 和1种用于表示真正的 boolean 类型.
    注释:Java有一个能够表示任意精度的算术包.通常称为"大数值".虽然被称为大数值,但并不是一种新的Java类型,而是一个Java对象.

3.3.1   整型

        Java整型
类型    存储需求    取值范围
int     4字节       -20亿~20亿
short   2字节       -32768~32767
long    8字节       很大很大
byte    1字节       -128~127
    在Java中, 整型的范围与运行Java代码的机器无关.就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的 不同操作系统之间进行移植给程序员带来的诸多问题.与此相反,C/C++程序需要针对不同的处理器选择最为有效的整型,这样就有可能造成一个在32位处理器上运行很好的C程序在16位系统上运行却发生整数溢出.
    长整型数值有一个后缀L,如10000000L.十六进制数值有一个前缀0x(如0xCAFE).八进制有一个前缀0,例如010对应8.
    注释:在C/C++中,int 表示的整型与目标平台相关.在8086这样的16位处理器上整型数值占2字节,在32位处理器上占4字节.类似地,在32位处理器上 long 值为4字节,在64位占8字节.在Java中,所有的数值类型占据的字节数量与平台无关.
    此外,Java中没有无符号类型(unsigned).

3.3.2   浮点类型

    浮点类型用于表示小数部分的数值.在Java中有两种浮点类型:float(4字节)和 double(8字节).
    建议不采用 float 类型.

3.3.3   char类型

    char 类型用于表示单个字符.
    建议不要在程序中使用 char 类型.

3.3.4   boolean 类型

    boolean(布尔)类型有两个值:false和true,用来判定逻辑条件.整型值和布尔值之间不能进行相互转换.
    注释:在C++中,数值或指针可以代替 boolean 值.0相当于布尔值 false,非0相当于布尔值 true .在Java中则不是这样.因此,Java应用程序员不会遇到下述麻烦:
if (x = 0)      // oops...meant x = 0
    在C++中这个测试可以编译运行,其结果总是 false .而在Java中,这个测试将不能通过编译,其原因是整数表达式 x=0 不能转换为布尔值.

3.4 变量

    在Java中,每一个变量都属于一种类型.
double salary;
int vacationDays;
long earchPopulation;
boolean done;
    变量名必须是一个以字母开头的,由字母或数字构成的序列.
    许多程序员 将变量名命名为类型名,例如
Box box;
    还有一些程序员更加喜欢 在变量名前加上前缀"a":    
Box aBox;

3.4.1   变量初始化

    声明一个变量之后,必须用赋值语句对变量进行显式初始化.
    在Java中可以将声明放在代码中的任何地方.
    在Java中, 变量的声明尽可能地靠近变量第一次使用的地方(类似于C++,尽可能延后变量定义式出现的时间

),这是一种良好的程序编写风格.


    注释:C/C++区分变量的声明与定义.例如:
int i = 10;
    是一个定义,而
extern int i;
    是一个声明.在Java中,不区分变量的声明与定义.

3.4.2   常量

    在 Java中,利用关键字 final 指示常量.例如:
public class Constants 
{
    public static void main(String[] args)
    {
        final double CM_PER_INCH = 2.54;
        double paperWidth = 8.5;
        double paperHeight = 11;
        System.out.println("Paper size in centimeters: " 
                + paperWidth * CM_PER_INCH + " by " + paperHeight * CM_PER_INCH);
    }
}
    关键字 final 表示这个变量只能被赋值一次.一旦被赋值后,就不能够再更改了.习惯上,常量名使用全大写.
    在Java中,经常希望某个变量可以在一个类中的多个方法中使用,通常将这些常量称为类常量.可以 使用关键字 static final 设置一个类常量.下面是使用类常量的示例:
public class Constants2 
{
    public static final double CM_PER_INCH = 2.54;
    public static void main(String[] args)
    {
        double paperWidth = 8.5;
        double paperHeight = 11;
        System.out.println("Paper size in centimeters: " + 
                paperWidth * CM_PER_INCH + " by " + paperHeight + CM_PER_INCH);
    }
}
    需要注意,类常量的定义位于main方法的外部.因此,在同一个类的其他方法也可使用这个常量.而且如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量.
    注释:const 是Java的保留字,但目前并没有使用.在Java中,必须使用 final 定义常量.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值