引用用和对象的关系可以看作是遥控器(引用)和电视机(对象)的关系,只要握住遥控器(引用)就能够控制电视机(对象)。
<span style="font-size:18px;">Sting s; //这创建的只是引用,并不是对象。</span>
<span style="font-size:18px;">String s="asdf"; //创建一个对象的同时就对其进行初始化</span>
创建了一个引用,应该希望它与一个新的对象关联起来。使用关键字new,new的意思是“给我一个新的对象”,所谓的实例化一个对象。
<span style="font-size:18px;">String s=new String("asdf");
</span>
使用new创建的对象,只要需要会一直存在(即使不在它的作用域之内,但作用域之外无法访问)。Java有一个垃圾回收器,用来监视使用new创建的所有对象,在需要的时候释放不再需要使用的对象。
<span style="font-size:18px;">class ATypeName{/*Class body*/} //这就引入了一个新的类型
ATypeName a=new ATypeName(); //使用new实例化一个ATypeName类型的对象a</span>
对于一个类(可以说,在Java中所要做的全部的工作就是定义类,产生那些类的对象,发送消息给这些对象),可以在这个类内设置两种元素:一是数据类型,二是具有的方法。
方法的基本形式:
<span style="font-size:18px;">方法返回值类型 方法名(参数列表)
{
方法内容;
}</span>
通过对象调用方法时,需要使用“.”:
<span style="font-size:18px;">objectName.methodName(arg1,arg2,arg3);</span>
参数列表用来指定要传递给方法什么类型的值。
static关键字
通常来说,当创建类的时候,只是描述了这个类的外观和行为,实际上并没有获得任何的对象,当使用new来创建对象时,数据存储空间才被分配。
但当申明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。简言之,方便在没有创建对象的情况下来进行调用(方法/变量)。
<span style="color:#000000;">class StaticTest{
static int i=47; //这个字段被定义为static
}</span>
现在即使创建两个StaticTest对象,StaticTest.i也只有一份存储空间。
StaticTest st1=new StaticTest();
StaticTest st2=new StaticTest();
这里st1.i和st2.i指向同一个存储空间,因此他们具有相同的值47。