`

匿名构造方法的使用以及比较对象的问题

阅读更多
package com.yonge.objectEquals;

/**
 * 目的:1、测试匿名构造方法的使用及作用域   2、对象的比较
 * @author wb-gaoy
 * @version $Id: Test.java,v 0.1 2012-1-10 下午12:04:42 wb-gaoy Exp $
 */
public class Test {

    private String str;

    /** 默认构造方法 */
    public Test() {
        System.out.println("默认构造方法被调用!!");
    }

    /** 带两个String参数的构造方法 */
    public Test(String arg0, String arg1) {
        System.out.println("带参数的构造方法!");
        this.str = arg0 + arg1;
        if (str == (arg0 + arg1)) {
            System.out.println("str[" + this.str + "]与arg0+arg1[" + arg0 + arg1 + "]相等!!");
        } else {
            System.out.println("str[" + this.str + "]与arg0+arg1[" + arg0 + arg1 + "]不相等!!");
        }
    }

    /** 匿名构造方法:每次实例化对象的时候,首先会调用此块 */
    {
        System.out.println("匿名构造方法被调用!");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {

        Test test = new Test();
        Test test1 = new Test("1", "");
        String arg0 = "1", arg1 = "1";

        if (arg0 == arg1) {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        } else {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        }

        //给arg0重新赋值
        arg0 = "1" + "";
        System.out.println("给arg0重新赋值为:" + arg0);
        if (arg0 == arg1) {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        } else {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        }
        
        if ("1" + "" == arg1) {
            System.out.println("arg0[\"1\" + \"\"]与arg1[" + arg1 + "]对象相等!!");
        } else {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        }

        //给arg0重新赋值
        arg0 = new String("1");//改成arg0 = new String("2")试试
        System.out.println("给arg0第二次重新赋值为:" + arg0);
        if (arg0 == arg1) {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        } else {
            System.out.println("arg0[" + arg0 + "]与arg1[" + arg1 + "]对象相等!!");
        }

        if (new String("1") == "1") {
            System.out.println("对象相等");
        } else {
            System.out.println("对象不相等");
        }
    }

}

 

0
0
分享到:
评论

相关推荐

    MLDN魔乐JAVA_05构造方法、匿名对象.rar

    在Java编程语言中,构造方法和匿名对象是两个非常重要的概念,它们对于理解和创建对象起着关键作用。本文将深入探讨这两个主题,并结合实例进行详细解释。 首先,我们来看构造方法。构造方法是一种特殊的方法,它与...

    [笔记]05构造方法、匿名对象

    [笔记]05构造方法 匿名对象

    Java构造方法解析.pdf

    1. 默认构造方法:如果一个类没有显式定义任何构造方法,Java编译器会提供一个无参的默认构造方法,以供创建对象时使用。 2. 自定义构造方法:如果需要对对象的属性进行特定的初始化,可以自定义构造方法,并在其中...

    构造方法与匿名对象

    NULL 博文链接:https://chaoyi.iteye.com/blog/2077261

    讲解Java中如何构造内部类对象以及访问对象

    本篇将主要讨论如何构造内部类对象以及如何通过反射来访问它们。 首先,我们来看一个简单的内部类示例: ```java package javalang; public class Outer { public static class Inner1 { // ... } } ``` 在这...

    020504_【第5章:面向对象基础】_构造方法与匿名对象.wmv

    通过这个视频可以简单的学习JAVA基础程序设计,学习JAVA构造方法与匿名对象,简单的JAVA程序编写,JAVA免费程序学习

    day09-面向对象-封装&构造方法

    本节主要讲解了面向对象的两个核心概念:封装和构造方法。 首先,我们来深入理解一下成员变量和局部变量的区别: 成员变量,也称为类变量,是在类定义中声明的变量。它们在整个类的范围内都是有效的,这意味着类的...

    06.【类与对象、封装、构造方法】.zip

    Java是一种广泛使用的面向对象的编程语言,其核心概念包括类与对象、封装和构造方法。在Java中,类是创建对象的蓝图,而对象则是程序中的实体,它们代表了现实世界中的具体事物或抽象概念。封装是面向对象编程的一个...

    020504_【第5章:面向对象基础】_构造方法与匿名对象笔记.pdf

    java课程学习资料 若有侵权,请联系本人进行移除。

    java面向对象经典整理[参考].pdf

    Java面向对象编程是Java语言的核心特性...以上是Java面向对象编程中的基础知识点,包括对象、类、封装、构造方法、匿名对象、String类的特性和使用,以及`this`关键字的应用。理解并掌握这些概念是进行Java开发的基础。

    java 子类对象赋值给父类对象的使用

    6. **equals()和==**:在比较对象时,`equals()`方法会检查对象的内容是否相等,而`==`则检查引用是否指向同一个对象。对于向上转型的对象,`equals()`方法会根据重写的情况来判断,而`==`始终比较引用。 7. **匿名...

    使用perl进行面向对象

    为了提高代码的可读性,应使用适当的注释来解释类和对象的用途、方法的功能以及可能的使用场景。 总的来说,Perl的面向对象编程提供了强大的工具来组织和复用代码,同时也允许开发者根据需求灵活地设计类和对象。...

    JAVA匿名类创建对象.doc

    在Java编程语言中,匿名类是一种特殊的类,它...总的来说,Java的匿名类是一种强大的工具,可以用于快速创建和使用对象,尤其在处理简短的、一次性使用的类实现时。理解并熟练运用匿名类,能够提升代码的简洁性和效率。

    jQuery源码分析-03构造jQuery对象

    接下来,我们将重点探讨如何构建jQuery对象以及其内部的一些关键设计。 #### 二、构建jQuery对象 在构造jQuery对象的过程中,主要依赖于`jQuery.fn.init`方法。我们首先看下`jQuery`函数本身是如何定义的: ```...

    面向对象经典讲解 有助于更进一步理解java对象

    - `this`关键字在Java中代表当前对象的引用,常用于区分成员变量和局部变量,以及在构造方法中调用其他构造方法。 **方法的数据类型传递**: - Java中的方法调用可以传值或传引用。基本类型数据是按值传递,而对象...

    进度条.Lambda表达式.匿名方法.委托.类.集合.初始化

    C#支持构造函数初始化,字段初始化器以及对象初始化语法,使得我们可以方便地在对象创建时设置属性值。 在.NET For Net压缩包中,可能包含了关于这些概念的示例代码、教程或者练习,帮助你更深入地理解和掌握这些...

    Kotlin 对象与 object 关键字

    Kotlin不仅支持面向对象编程,还支持函数式编程,而它提供的“object”关键字,是一个功能强大的语法元素,它使得开发人员可以在Kotlin中以简洁的方式实现单例模式、数据包装以及匿名内部类的功能。 首先,我们需要...

    JAVA视频 第05章:构造方法-学生类-String类

    内容包括三章:1、构造方法与匿名对象;2、实例讲解—类设计分析(学生类);3、String类。

    Java的面向对象

    #### 五、构造方法与匿名对象 - **构造方法**:构造方法用于初始化对象的状态,其名称必须与类名相同,没有返回类型,通过`new`关键字调用。构造方法可以重载以适应不同的初始化需求。 - **匿名对象**:没有明确给...

    java面向对象基础

    构造方法用于初始化对象的状态。一个类可以有多个构造方法,但每个构造方法都必须满足以下条件: - 方法名必须与类名相同。 - 不需要指定返回类型。 - 通常不包含`return`语句。 构造方法可以重载,即同一个类中...

Global site tag (gtag.js) - Google Analytics