创建文件 HelloWorld.java(文件名需与类名一致)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
输出结果:Hello World
其中,
println() 是一个方法。
System 是系统类。
out 是标准输出对象。
System.out.println()
这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。
变量类型
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
成员变量(实例变量):成员变量是定义在类中,方法体、构造方法和语句块之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
类变量(静态变量):类变量也声明在类中,方法体之外,但必须声明为static类型。
源文件声明规则
- 一个源文件中只能有一个public类
- 一个源文件可以有多个非public类
- 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
- 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
- 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
- import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
package com.runoob.test;//它是按照路径 com/runoob/test/文件名.java 这样保存的
import java.util.Date;
import java.io.*;
public class HelloWorld {
}
对象和类
java因强制要求类名(唯一的public类)和文件名统一,因此在引用其它类时无需显式声明。在编译时,编译器会根据类名去寻找同名文件。
package 的作用就是 c++ 的 namespace 的作用,防止名字相同的类产生冲突。Java 编译器在编译时,直接根据 package 指定的信息直接将生成的 class 文件生成到对应目录下。如 package aaa.bbb.ccc 编译器就将该 .java 文件下的各个类生成到 ./aaa/bbb/ccc/ 这个目录。
import 是为了简化使用 package 之后的实例化的代码。假设 ./aaa/bbb/ccc/ 下的 A 类,假如没有 import,实例化A类为:new aaa.bbb.ccc.A(),使用 import aaa.bbb.ccc.A 后,就可以直接使用 new A() 了,也就是编译器匹配并扩展了 aaa.bbb.ccc. 这串字符串。
数据类型
分为内置数据类型和引用数据类型。
内置数据类型:byte,short,int,long,float,double,boolean(只能取true和false),char
可通过数据类型.SIZE
得到该类型的二进制位数;
数据类型.MIN_VALUE
得到该类型可以表示的最小的数;
数据类型.MAX_VALUE
得到该类型可以表示的最大的数。
引用类型:引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。
例如Site site = new Site("Runoob")
中的site变量即为引用变量。
- Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析
long value = 9223372036854775807L;
final关键字
- 当用final修饰一个类时,表明这个类不能被继承。
当用final修饰方法时,是把方法锁定,以防任何继承类修改它的含义。
注:类的private方法会隐式地被指定为final方法。