1.引用与基本类型
创建引用时可以使用new关键字创建新对象与引用关联。new将创建的对象存储在堆中,对于一些简单变量,不使用new来创建,而是不是引用的变量,这个变量直接储存值并置于堆栈中,更加高效,这就是基本类型。
2.作用域
作用域决定了在其内定义的变量名的可见性和生命周期,在Java中,作用域由花括号的位置决定。
2.1对象的作用域
在Java中,对象不具备和基本类型一样的生命周期,当用new创建一个Java对象时,它可以存活于作用域之外。
3.类
在Java中使用class关键字来创建类,形式如下
class ClassName{class body}
接下来就可以用new来创建这种类型的对象
ClassName a=new Classname();
3.1字段和方法
一旦定义了一个类,就可以在类中设置两种类型的元素:字段和方法。字段可以是任何类型的对象,可以通过其引用与其通信,也可以是基本类型的一种。如果字段是对某个对象的引用,那么必须初始化该引用,以便使其与一个实际的对象像关联。
3.1.1基本成员默认值
若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。如下表所示:
基本类型 | 默认值 |
boolean | false |
char | '\u0000'(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
4.方法、参数和返回值
4.1方法
方法的基本组成包括:名称、参数、返回值和方法体。它的基本形式如下:
ReturnType methodName(/* Argument list */){
/* Method body */
}
方法名和参数列表唯一地标识出某个方法。
在Java中,方法只能作为类的一部分来创建。方法只有通过对象才能被调用(static方法除外),且这个对象必须能执行这个方法调用。通过对象调用方法时,需要先列出对象名,接着是句点,然后是方法名和参数列表,如下所示:
objectName.methodName(arg1, arg2, arg3);
4.1.1参数列表
方法的参数列表指定要传递给方法何种信息,这些信息采用的都是对象形式,因此在参数列表中必须指定每个所传递对象的类型及名字。
此外关于return关键字的用法包括两方面,第一方面,它代表已经做完,离开此方法,另一方面,如果方法产生了一个值,这个值要放在return语句后面,我们可以定义方法返回任意想要的类型,如果不想返回任何值,可以指示此方法返回void。
若返回类型是void,return关键字的作用只是用来退出方法。因此,没有必要到方法结束时才离开,可在任何地方返回。但如果返回类型不是vooid,无论在何处返回,编译器都会强制返回一个正确类型的返回值。
5.构建一个Java程序
5.1名字可见性
5.2如果想在自己的程序中使用预先定义好的类,可以使用import关键字,import指示编译器导入一个包。
5.3static关键字
除非使用new创建那个类的对象,否则,实际上未获得任何对象。执行new来创建对象时,数据存储空间才被分配,其方法才供外界调用。
当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其static方法或访问其static域。
只需将static关键字放在定义之前,就可以将字段或方法设定为static。例如下:
class StaticTest{
static int i=15;
}
现在,即使你创建了两个StaticTest对象,StaticTest.i也只有一个储存空间,这两个对象共享同一个i。
StaticTest st1=new StaticTest();
StaticTest st2=new StaticTest();
引用static变量有两种方法,可以通过一个对象去定位它,如st1.i,也可以通过其类名直接引用,如StaticTest.i,而这对于非静态成员则不行。
静态方法也是类似,既可以像其他方法一样,通过一个对象来引用某个静态方法,也可以使用其类名进行引用。定义静态方法的方式如下:
class Incrementable{
static void increment(){
StaticTest.i++;
}
}