你可以定义方法返回任意想要的类型,如果不想返回任何值,可以指示此方法返回void(空)。如:
boolean flag() { return true; } double naturalLogBase() { return 2.718; } void nothing() { return; } void nothing2() {}若返回类型是void,return关键字的作用只是用来退出方法。
note:
可以在任何地方return
返回类型不是void,无论在何处返回,编译器都会强制返回一个正确类型的返回值。
2.6 构建一个Java程序 2.6.1 名字可见性为了给一个类库生成不会与其他名字混淆的名字,Java设计者希望程序员反过来使用自己的Internet域名,因为这样可以保证它们肯定是独一无二的。
在Java 1.0和Java 1.1中,扩展名com、edu、org、net等约定为大写形式。
NET.mindview.utility.foibles现在整个包名都是小写了。
这种机制意味这所有的文件都能够自动存活在它们自己的名字空间内,而且同一个文件内的每个类都有唯一的标识符。
2.6.2 运用其他构件import来准确地告诉编译器你想要的类是什么。
import java.util.ArrayList;这行代码告诉编译器,你想使用Java的ArrayList类。
2.6.3 static关键字static关键字满足这两方面的需要。
一种情形是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。
另一种情形是,希望某个方法不与包含它的那个类的任何对象实例关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。
只须将static关键字放在定义之前,就可以将字段或方法设定为static。
class StaticTest { static int i = 47; }即使你创建了两个StaticTest对象,StaticTest.i也只有一份存储空间,这两个对象共享同一个i。
StaticTest st1 = new StaticTest(); StaticTest st2 = new StaticTest();st1.i和st2.i指向同一存储空间,因此它们具有相同的值47。
使用类名是引用static变量的首选方式。
StaticTest.i++;同理,调用静态方法的首选方式:ClassName.method()。如:
class Incrementable { static void increment() { StaticTest.i++; } }调用方式一:
Incrementable sf = new Incrementable(); sf.increment();调用方式二:
Incrementable.increment();static方法可以创建或使用与其类型相同的被命名对象。
静态方法使用的都是静态某某。
只是static远远不止这么简单。挖坑。
2.7 你的第一个Java程序这次不是经典的Hello World了。
import java.util.*; public class HelloDate { public static void main(String[] args) { System.out.println("Hello, it's: "); System.out.println(new Date()); } }在每个程序文件的开头,必须声明import语句,以便引入在文件代码中需要用到的额外类。
java.lang是默认导入每个Java文件中的。
java.lang里没有Date()类,它位于util类库中,并且必须书写import java.util.*才能使用Date类。
类的名字必须和文件名相同。
如上代码,创建一个独立运行的程序,这个类必须包含一个名为main()方法。
看到这里,我有一个疑问:
为什么现在我们开发的项目中都没有见到main()方法?
Google到Stack Overflow上的问题:
为什么我在这个java动态web项目中看不到任何main()方法?
Why don't I see any main method in this java dynamic web project?
答案:
这里还是有main()方法,只是不是由应用开发者写的,而是由容器开发者写的。
There is still a main method, it's just not written by the developer of the application but by the developer of the container.
我是这样理解的:不是我这种渣渣写的,而是大神已经写好了。-_-
main()方法的参数是一个String对象的数组。Java编译器要求必须这么做,因为args要用来存储命令行参数。
2.7.1 编译和运行javac(编译)和java(运行)命令:
javac HelloDate.java java HelloDate 2.8 注释和嵌入式文档单行注释:// comment
// This is one-line comment多行注释:(也可以是单行)/* comment */
/* one-line comment */ /** * This is a comment * that continues * across lines */ 2.8.1 注释文档javadoc便是用于提取注释的工具,它是JDK安装的一部分。
javadoc输出的是一个HTML文件,可以用Web浏览器查看。
所有javadoc命令都只能在“/**”注释中出现,和通常一样,只是结束于“*/。
使用javadoc的方式主要有两种:嵌入HTML,或使用“文档标签”。