1、句柄
创建句柄的时候,不一定要与对象连接,但是一定要初期化。
String s = “abcd”;
s是句柄
2、创建对象
关键字 new
String s = new String("abcd");
对象被保存在“堆”中(一种常规用途的内存池,也在RAM区域)
3、作用域
作用域决定了变量的可见性和存在时间。通常以“{ }”的位置来决定。
对象的作用域,
{
String s = new String("abcd");
}
句柄s会在作用域的终点消失。但是s指向的String对象还占据空间,但是已经无法再访问对象了。
C++中,需要手动清除使用完的对象,java则不需要。
4、创建新的class
关键字 class
class NewType {}
引用新类型。创建对象。
NewType a = new NewType();
5、字段和方法
类:
数据成员(俗称 字段)
函数成员(俗称 方法(Method))
包含了 名字、自变量、返回类型及主体。
返回类型 方法名( /* 自变量列表*/ ) {/* 方法主体 */}
①返回值类型是调用方法之后返回的数据类型。
②方法名是方法的标识和引用。
③自变量是传递参数的数据类型。
④java的方法只能作为类的一部分创建。
⑤传递对象时,通常传递的都是对象的句柄。
static的作用
1、若一个成员被声明为static的话,它能够在它的类的任何对象创建之前被访问,而不必引用任何对象。
2、任何变量和方法都可以被static。main是最常见的,程序最先开始执行的就是main()方法,所以经常被声明为static。
通常情况下,类成员通过对象的实例化去调用。但是如果希望独立于类的其他对象,可以通过声明static去实现。
变量的static就是讲变量变成全局变量。
代码部分:
public class ObjectText {
// 变量的static
private static double ALL_STA = 9;
/**
* main方法通常都要static
*/
public static void main (String[] args) {
// 声明一个对象
ObjectText ob = new ObjectText();
// 需要对象的非静态调用
double sum = ob.compute(1,2);
System.out.println("sum = " + sum);
// 无需对象的静态调用
staTmp();
}
/**
* 非静态
*/
private double compute(double dou1, double dou2) {
// ALL_STA之后变成全局变量
return dou1 + dou2 + ALL_STA;
}
/**
* 静态
*/
private static void staTmp() {
System.out.println("Static");
}
}
输出结果:
sum = 12.0
Static