美文网首页
Java语言——对象

Java语言——对象

作者: 开心糖果的夏天 | 来源:发表于2017-06-05 17:38 被阅读27次

1.对象的创建

可以在Java语言中使用new操作符调用构造方法创建对象。语法如下:

Test test=new Test();
Test test=new Test("a");

每个对象都是相对独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成垃圾,由Java虚拟机自带的垃圾回收机制处理,不能再被使用。


Java语言

2.访问对象的属性和行为

用户使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。对象的属性和行为是通过类成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也相应的获取了对象的属性和行为。示例代码如下:

package com.example;

public class TransferProperty {
 int i=47;//定义成员变量
 public void call(){//定义成员方法
     System.out.println("调用call()方法");
     for(i=0;i<3;i++){
         System.out.println(i+"");
         if(i==2){
             System.out.println("\n"); 
         }
     }
 }
 public TransferProperty(){//定义构造方法
     
 }
 public static void main(String[] args){
     TransferProperty t1=new TransferProperty();//创建一个对象
     TransferProperty t2=new TransferProperty();//创建另一个对象
     t2.i=60;//将类成员变量赋值为60
     System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);//使用第一个对象调用类成员变量
     t1.call();
     System.out.println("第二个实例对象调用变量i的结果:"+t2.i);//使用第二个对象调用类成员变量
     t1.call();
 }
}

3.对象的引用

语法如下:

类名   对象引用名称

如一个Book类的引用可以使用以下代码:

Book book;

4.对象的比较

在Java语言中有两种对象的比较方式,分别为“==”和equals()方法。但这两种方式有着本质的区别,示例代码如下:

package com.example;

public class Compare {
    public static void main(String args[]){
        String c1=new String("abc");
        String c2=new String("abc");
        String c3=c1;
        System.out.println("c2==c3的运算结果为:"+(c2==c3));
        System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));
    }
}

运行结果如下:
c2==c3的运算结果为:false
c2.equals(c3)的运算结果为:true
equals()方法是String类中的方法,它用于比较两个对象引用所指的内容是否相等;而“==”运算符比较的是两个对象引用的地址是否相等。

5.对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被收回。在其他语言中需要手动回收废弃的对象,但是Java拥有一套完整的垃圾回收机制,用户不用担心废弃的对象占用内存,垃圾回收器将回收无用的但占用内存的资源。何种对象会被Java虚拟机视为垃圾?主要有以下2种:
(1)对象引用超过其作用范围,这个对象将被视为垃圾,如下图所示:

对象超过作用范围将消亡

(2)将对象赋值为null,如图所示:

对象赋值为null时将死亡

垃圾回收器只能回收那些由new操作符创建的对象,如果某些对象不是通过new操作符在内存中获取一块内存区域,这种对象可能不能被垃圾回收机制所识别,所以在Java中提供了一个finalize()方法。


学习是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!

相关文章

网友评论

      本文标题:Java语言——对象

      本文链接:https://www.haomeiwen.com/subject/vmbifxtx.html