Java语言——对象

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()方法。


学习是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,718评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,549评论 11 349
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,956评论 0 62
  • 《父爱如山》 -------写给今天的你 父爱如山,多么平淡, 不说亦可,写写看吧。 你八岁了,多么可爱...
    瑶湖阅读 3,043评论 0 1
  • 梦,是一种奇怪的东西,只在熟睡时产生。明明没有画面,脑海中却会浮现出一连串的情节。其中的情绪,也牵动着做梦之人。梦...
    云栗阅读 1,409评论 0 1

友情链接更多精彩内容