Java编程思想第四版——第五天

2012-03-23
60-66/913

2.5 方法、参数和返回值
C和C++用函数描述命名子程序,java用方法表示“做某些事情的方式”。
Java的方法决定了一个对象能接收什么样的消息。
方法基本组成部分:名称、参数、返回值、方法体
ReturnType methodName(/*Argument list*/){
/* Method body */
}

返回类型:调用方法之后从方法返回的值
参数列表:给出了要传给方法的信息的类型和名称
方法名和参数列表(合起来称为“方法签名”)唯一地标识出某个方法。
Java中方法只能作为类的一部分来创建,只能通过对象才能被调用,且这个对象必须能执行这个方法调用。调用方法:先列出对象名,句点,然后方法名和参数列表。
objectName.methodName(arg1, arg2, arg3);

调用方法的行为被称为发送消息给对象,面向对象程序设计通常简单的归纳为“向对象发送消息”。

2.5.1 参数列表
参数列表指定要传递给方法什么样的信息。
参数列表中必须指定每个所传递对象的类型及名字。
Java中任何传递对象的场合一样,传递的实际上是引用(基本类型除外),引用的类型必须正确。

Return关键字的用法:首先,代表“已经做完,离开此方法”。其次,如果此方法产生了一个值,这个值要放在return语句后面。

可以定义方法返回任意想要的类型,不想返回任何值,可以提示此方法返回void(空)。若返回类型是void,return关键字的作用只是用来退出方法。因此,没有必要到方法结束时才离开,可在任何地方返回。如果返回类型不是void,那么无论在何处返回,编译器都会强制返回一个正确类型的返回值。

2.6 构建一个java程序

2.6.1 名字可见性
名字管理,重要问题。
C++通过几个关键字引入名字空间概念。
Java采用反转域名,非强制,反转域名后,句点用来代表子目录的划分。所有文件都能够自动存活与它们自己的名字空间内,同一个文件内的每个类都有唯一的标识符,java语言本身解决了名字管理问题。

2.6.2 运用其他构件
Java消除了“向前引用”的问题,可以直接使用发出调用的那个源文件中的类,即使这个类在文件的后面才会被定义。

调用位于其他文件中的类,用import关键字来准确告诉编译器想要的类是什么。Import指示编译器导入一个包,也就是一个类库。(其他语言中,一个库不仅包含类,还可能包括方法和数据,java中所有代码都必须写在类中。)

一次导入一群类:想要使用util中的几个类,不想明确逐一声明,可以使用通配符*达到目的。
import java.util.*;

2.6.3 static关键字
两种情形使用static关键字:一,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。二,希望某个方法不与包含它的类的任何对象关联在一起,即使没有创建对象,也能够调用这个方法。
只需将static关键字放在定义之前,就可以将字段或方法设定为static。
class StaticTest{
static int i = 47;
}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
创建两个StaticTest 对象,StaticTest.i也只有一份存储空间,两个对象共享同一个i。
st1.i和st2.i指向同一存储空间。
引用static变量有两种方法:通过一个对象去定位它,如st2.i。也可以通过类名直接引用,非静态成员不能这样调用。使用类名是引用static变量的首选方式,不仅强调了变量的static结构,而且在某些情况下还为编译器进行优化提供了更好的机会。静态方法与静态变量类似。

Static作用于某个字段,会改变数据创建的方式(一个static字段对每个类来说都只有一份存储空间,非static字段则是对每个对象都有一个存储空间),但static作用于某个方法,差别却没有那么大。Static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。这一点对定义main()方法很重要,这个方法是运行一个应用时的入口点。

和其他任何方法一样,static方法可以创建或使用与其类型相同的被命名对象,因此,static方法常常拿来做“牧羊人”的角色,负责看护与其隶属同一类型的实例群。

2.7 你的第一个java程序
每个程序文件开头,必须声明import语句,以便引入在文件代码中需要用到的额外类。有一个特定类会自动被导入到每一个java文件中:java.lang。java.lang默认导入到每个java文件中,它的所有类都可以直接使用。

System.out.println();将数据打印到控制台,完成后换行。

类的名字必须和文件名相同,如果创建一个独立运行的程序,文件中必须存在某个类与该文件同名(否则,编译器会报错),且那个类必须包含一个名为main()的方法。
public static void main(String [] args){}
这个程序中没有用到args,但是java编译器要求必须这样做,因为args要用来存储命令行参数。

Java最强大的优势之一就是它具有庞大的标准类库集。

2.7.1 编译和运行
要编译、运行程序,首先必须要有一个java开发环境。比如SUN的JDK。
安装好JDK后,需要设定好路径信息,确保计算机能找到javac和java这两个文件。
build.xml文件,提供一个ant命令,用于自动构建每章的所有文件。安装好ant,便可直接在命令行提示符下键入ant来编译和运行每一章的程序了。可以手工键入javac和java命令安装。

2.8 注释和嵌入式文档
Java两种注释风格:一种是传统的C语言风格的注释——C++也继承了这种风格。例:/* 开始,随后是注释内容,可跨越多行,最后以*/结束。编译时,/*和*/之间的所有东西都会被忽略。第二种风格的注释源于C++,单行注释,以一个“//”起头,知道句末。

2.8.1 注释文档
代码文档撰写的最大问题,大概就是对文档的维护了。如果文档与代码是分离的,那么在每次修改代码时,都需要修改相应的文档,这是相当乏味的一件事。解决方法:将代码同文档“链接”起来,将所有东西都放在同一个文件内,使用一种特殊的注释语法标记文档,用javadoc提取注释,并转换成有用的形式。Javadoc是JDK安装的一部分,采用java编译器的某些技术,查找程序内的特殊注释标签,解析标签标记的信息,将毗邻注释的类名或方法名抽取出来,如此,就可以用最少的工作量,生成相当好的程序文档。
Javadoc输出的是一个HTML文件。想对javadoc处理过的信息执行特殊的操作(例如,产生不同格式的输出),那么可以通过编写自己的被称为“doclets”的javadoc处理器来实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值