对象 订阅
对象,常有两层意思,指行动或思考时作为目标的事物或特指恋爱的对方等含义。我国学者唐震在《接受与选择》一书中把对象看成是围绕着人的、被人用来接受或选择的特定事物。他提出了对象序列说:个体的对象世界是指从个体诞生开始就围绕在个体周围的世界,它包括支持该个体存在的物质实体和用于该个体发展的各种因素。从个体的生存处境看,个体的对象世界是我们通常所指的广泛意义上的自然界以及这个自然界的展开形式。这个世界由低级到高级依次展开,它们呈现给个体的是由“原始自然——人化自然——能动自然——虚拟自然”等所构成的序列。 展开全文
对象,常有两层意思,指行动或思考时作为目标的事物或特指恋爱的对方等含义。我国学者唐震在《接受与选择》一书中把对象看成是围绕着人的、被人用来接受或选择的特定事物。他提出了对象序列说:个体的对象世界是指从个体诞生开始就围绕在个体周围的世界,它包括支持该个体存在的物质实体和用于该个体发展的各种因素。从个体的生存处境看,个体的对象世界是我们通常所指的广泛意义上的自然界以及这个自然界的展开形式。这个世界由低级到高级依次展开,它们呈现给个体的是由“原始自然——人化自然——能动自然——虚拟自然”等所构成的序列。
信息
词    义
目标
拼    音
duì xìang
出    自
《套不住的手》
中文名
对象
对象词语概念
【词目】对象【英译】character【注音】ㄉㄨㄟˋ ㄒㄧㄤˋ【同义词】工具、器材、东西、目标、标的、目的、方向、宗旨(1) [target;object]:目标(2) [wife or husband]:指夫妇中的一方(3) [character]:描写或写实的特定人或物小说中描写的主要对象 [1]  1. 指行动或思考时作为目标的事物。赵树理《套不住的手》:“训练的对象虽说是初参加生产的人,可是也有例外。”2. 特指恋爱的对方。指男、女朋友关系,恋爱双方的行为的称呼如“谈对象、处对象”。婚后,一般若称家属则特指老公或老婆。冰心《我的学生》:“她的男朋友很多,却没听说过有哪一个特别好的。您说的对,她不会在同学中选对象,她一定会嫁给外交人员。”刘绍棠《小荷才露尖尖角》:“如花似玉的一个姑娘,亲娘又是个说媒拉纤的老手, 花碧莲 却一直没有找到对象。”3.北方方言亦指物色配偶。谷峪《强扭的瓜不甜》:“咱长大自个对象去。” [1]  4.计算机语言。对象就是客观世界中存在的人、事、物体等实体在计算机逻辑中的映射。
收起全文
精华内容
参与话题
问答
  • java对象相等问题

    万次阅读 多人点赞 2019-07-31 19:17:15
    public class TestA { private Integer a; public Integer getA() { return a; } public void setA(Integer a) { this.a = a; } } public class Test { ... public static void...
    public class TestA {
    	private Integer a;
    	public Integer getA() {
    		return a;
    	}
    	public void setA(Integer a) {
    		this.a = a;
    	}
    }
    public class Test {
    	public static void main(String[] args) {
    		TestA a = new TestA();
    		a.setA(1);
    		TestA aa = a;
    		a.setA(3);
    		System.out.println(aa==a);
    		System.out.println(aa.getA());
    	}
    }
    

    输出结果是true和3,这理解起来很简单,java中对象直接"="赋值其实就是将引用传给对方,让他也指向同一个内存地址。
    所以如果a改变了里面属性的值,那这个地址存储的内容就变了,当aa去拿的时候就是变了之后的,因为两个指向依然同一个地址,
    所以aa==a是true的。
    但如果这么来:

      TestA a = new TestA();
    		a.setA(1);
    		TestA aa = a;
      a = new TestA();
    		a.setA(3);
    		System.out.println(aa==a);
    		System.out.println(aa.getA());
    

    那输出就是false和1了,因为a又重新new了一个对象,他引用的地址已经变了,就和aa一点关系都没有了!

    以上我们都知道,但对于包装类却看似不一样:

    public class Test {
    	public static void main(String[] args) {
    		Integer b = new Integer(5);
    		Integer c = b;
    		System.out.println(b==c);
    		b = b+1;
    		System.out.println(b);
    		System.out.println(c);
    		System.out.println(b==c);
    	}
    }
    

    以上的运行结果是:
    true
    6
    5
    false
    这似乎和我们之前的例子不一样了。c和b都指向同一个地址,所以第一次bc是true的,但当b加1之后,c并没有跟着b加1,
    b
    c变成了false,说明两个指向的地址已经不是同一个了。
    一开始对这个可能无法理解,我们先看看下面的例子:

    public class Test {
    	public static void main(String[] args) {
    		int x = 1;
    		int y = x;
    		x = x+1;
    		System.out.println(y==x);
    	}
    }
    

    输出是false,这个我们很容易知道,一开始x和y都是1,当x加1之后,x是2,y还是1,所以yx是false的,数值型的变量在判断时是直接比较他们的值的。

    再回忆一下java的装箱和拆箱:
    所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。
    所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。
    JDK1.5之后可自动进行装箱和拆箱的操作,例子如下:

    int i=10;
    Integer j=Integer.valueOf(i); //手动装箱操作
    int k=j.intValue();//手动拆箱操作
    
    int i1=10
    Integer j1=i1;//自动装箱操作
    int k1=j1;//自动拆箱操作
    

    通过上面的讲解应该就知道原因了:

    	Integer b = new Integer(5);
    	Integer c = b;
    	System.out.println(b==c);//现在两个指向同一个地址,是true的
    	b = b+1;//b是包装类,得拆箱成数值型,然后加1,变成数值6,然后把数值6再装箱变成包装类赋给b,等同于b=Integer.valueOf(b.intValue()+1);
    	//Integer.valueOf()会生成一个新的包装类对象(因为valueOf()方法的源码里写着,return的是new Integer(),源码见下)
    	System.out.println(b==c);//现在两个指向不同的地址,是false的
    

    终于真相大白了,上面的问题告一段落,我自以为对包装类很懂了,但再看看下面的题目:

        Integer b = 128;
    	Integer c = 128;
    	System.out.println(b==c);
    

    输出是false,这很好理解,128是数值型的,再赋值给包装类变量时先要装箱,上面的等同于:

         	Integer b = Integer.valueOf(128);
    		Integer c = Integer.valueOf(128);
    		System.out.println(b==c);
    

    这样很明显可以看成是false的,是两个不同的对象。
    再看看这个:

         	Integer b = 100;
    		Integer c = 100;
    		System.out.println(b==c);
    

    输出居然是true。小学生表示已经崩溃,是不是对java已经无爱了。但是我可不会就这样放弃,到底是什么原因呢?
    查看Integer的valueOf方法的源码如下:

    public static Integer valueOf(int i) {
    final int offset = 128;
    if (i >= -128 && i <= 127) { // must cache 
        return IntegerCache.cache[i + offset];
    }
        return new Integer(i);
    }
    

    于是明白了,在【-128,127】之间的数字,valueOf()返回的是缓存中的对象,所以两次调用返回的是同一个对象。
    也就是说Integer(100)这样的对象已经有了一个了,自动装箱之前就不去new了,直接使用缓存里的,所以是同一个对象,指向的是同一个引用地址。
    以上代码等同于:

         	Integer b = Integer.valueOf(100);
    		Integer c = Integer.valueOf(100);
    		System.out.println(b==c);
    

    所以输出是true。
    接下来下面这个也很明白了吧:

        Integer a = new Integer(100);  
        Integer b = 100;  
        System.out.println(a == b);
    

    输出的是false,因为a是自己new的对象,不是通过valueOf获取的,没有放进缓存里,所以b在valueOf时还是会new一个
    以上代码等同于:

        Integer a = new Integer(100);  
      	Integer b = Integer.valueOf(100);  
        System.out.println(a == b);
    

    这样就看的出来是false了。
    总之以上的现象只会在拆装箱,或者你自己手动调用valueOf方法时才会出现!

    展开全文
  • java对象数组 创建对象数组,初始化对象数组

    万次阅读 多人点赞 2019-07-30 16:34:15
    对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组。 当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象对象数组的定义和使用: 对象数组的...

    对象数组的概念:
    如果一个数组中的元素是对象类型,则称该数组为对象数组。
    当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。
    对象数组的定义和使用:
    对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。
    对象数组的声明形式是:
    类名 对象数组名 [ ];
    为对象数组分配内存空间:
    对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了
    可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程:
    for(int i=0;i<stu.length;i++)
    stu[i]=new Student();
    实例化以后就可以使用每一个元素对象。
    设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息

    //设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
    class Employee {   //雇员类
     private String id;  //编号
     private String name; //姓名
     private int age;     //年龄
     private String vocation; //职务
     public Employee(){} //构造方法一
     public Employee(String id,String name,int age,String vocation){
      set(id,name,age,vocation);
     }
     //设置属性的方法
     public void set(String id,String name,int age,String vocation){
      this.id=id;
      this.name=name;
      this.age=age;
      this.vocation=vocation;
     }
     public String toString() {
      String mess=id+","+name+","+age+","+vocation;
      return mess;
     }
    }
    public class Example4  {
     public static void main(String[] args) {
      Employee 雇员[]=new Employee[3];
      int i;
      for(i=0;i<雇员.length;i++)//为对象数组中每一个元素实例化
      雇员[i]=new Employee();//如果没有写构造方法一,而这样写,会出错
      //因为类中有有参的构造方法,系统就不会在默认给无参的构造方法了,
      //所以当类中写了有参的构造方法后,要用无参的构造方法时必须写出来
      
      //每一个对象元素分别初始化
      雇员[0].set("0001","张文军",50,"总经理");
      雇员[1].set("0002","李琦",45,"副经理");
      雇员[2].set("1016","张丽",28,"秘书");
      for (Employee employee:雇员)
       System.out.println(employee.toString());
     }
    }
    

    在这里插入图片描述
    普通型for循环和增强型for循环
    普通型

    a={1,2,3,4,5};
    for(int i=0;i<a.length;i++) {
     System.out.println9(a[1]);
    }
    

    增强型

    for(int element:a) {
    System.out.println(element);
    }
    

    两者结果相同,但是增强型更为简洁

    对象数组还可以采用初始化的方法创建。创建形式是:
    类名 对象数组名[ ]={对象列表};

    设计一个雇员类,创建雇员类的对象数组并初始化,输出每个雇员的信息,仍然沿用上面的Employee类,程序如下

    class Employee {   //雇员类
     private String id;  //编号
     private String name; //姓名
     private int age;     //年龄
     private String vocation; //职务
     public Employee(){} //构造方法一
     public Employee(String id,String name,int age,String vocation){
      set(id,name,age,vocation);
     }
     //设置属性的方法
     public void set(String id,String name,int age,String vocation){
      this.id=id;
      this.name=name;
      this.age=age;
      this.vocation=vocation;
     }
     public String toString() {
      String mess=id+","+name+","+age+","+vocation;
      return mess;
     }
    }
    public class Example11 {
     public static void main(String[] args) {
      //先创建3个雇员对象
      Employee employee1=new Employee("0001","张文军",50,"总经理");
      Employee employee2=new Employee("0005","李琦",45,"副经理");
      Employee employee3=new Employee("1016","张丽",28,"秘书");
      //声明对象数组并直接初始化
      Employee 雇员1[]={employee1,employee2,employee3};
      output(雇员1);//输出雇员信息
      System.out.println("------------------");//分割线
      //声明对象数组并直接初始化,初始化元素直接调用
      //构造方法创建对象
      Employee 雇员2[]={new Employee("0001","张文军",50,"总经理"),
      new Employee("0005","李琦",45,"副经理"),
      new Employee("1016","张丽",28,"秘书")};
      output(雇员2);
     }
     //定义方法用于输出雇员信息,注意方法是private,static
     private static void output(Employee 雇员[]){
      for(Employee employee:雇员)
       System.out.println(employee.toString());
     }
    }
    

    在这里插入图片描述

    展开全文
  • 面向对象

    千次阅读 多人点赞 2018-02-14 20:02:53
    面向对象:面向对象是相对于面向过程来说的,面向过程是一种以“过程”为中心的编程思想,分析出解决问题所需的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个依次调用就好。而面向对象,是一种以“对象...

    面向对象:面向对象是相对于面向过程来说的,面向过程是一种以“过程”为中心的编程思想,分析出解决问题所需的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个依次调用就好。而面向对象,是一种以“对象”为中心的编程思想,把问题看成一个个对象,通过对象的属性和行为,将问题解决的。面向过程强调的是模块化,而面向对象强调的是把事物对象化。

    复杂来说面向对象是以“对象”为基本单元构建系统,对象是把数据和数据操作方法放在一起,作为一个相互依存的整体。把同类的对象抽象出其共性,形成类。所以说类是对象的抽象,对象是类具体化的体现(类是大范围的,一个类可以有多个对象),类中的大多数数据只能通过本类的方法实现,类包含说明和实现,说明部分被外界所看到,通过简单的外部接口与外界进行联系;实现部分不被外界所看到,在内部通过不同方法的构建,实现不同的功能。对象与对象之间通过消息进行沟通,程序流程由用户在使用中决定。

    面向对象用以解决越来越复杂的需求,提高了软件的重用性,灵活性和拓展性。

    展开全文
  • Vue-实现对象拷贝

    万次阅读 2020-04-04 12:42:29
    问题: 做Vue 项目时因为数据双向绑定的原因,...说明:采用Object.assign()这个方法就讲source 对象中的 属性克隆到 target 对象中,并且 source 改变不会影响 到 target 对象 let target = {} let source ={id:1,n...

    问题:

    做Vue 项目时因为数据双向绑定的原因,但是我这个需求,如果此对象出现数据双向绑定会出现Bug

    所以采用此对象克隆方式来 防止对象中的属性数据双向绑定

    说明:采用Object.assign()这个方法就讲source 对象中的 属性克隆到 target 对象中,并且 source 改变不会影响 到 target 对象

    let target = {}
    let source ={id:1,name="test"}
    Object.assign(target,source)
    
    展开全文
  • 对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与隐含创建两...
  • 什么是类?对象?类与对象的关系是什么?

    千次阅读 多人点赞 2019-06-02 14:56:30
    对象 什么是对象?          万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、行为和标识。 类 什么是类?  &...
  • 浅谈一下JAVA对象对象引用以及对象赋值

    万次阅读 多人点赞 2013-09-19 00:50:29
    浅谈一下JAVA对象对象引用以及对象赋值   今天有班级同学问起JAVA对象的引用是什么。正好趁着这次机会,自己总结一下JAVA对象对象引用以及对象赋值。自己总结了所看到的网上相关方面的不少帖子,整理汇总形成...
  • JS对象有内部对象,浏览器对象,自定义对象 一:内部对象 Array,Object,Date ,Math, Number,String,RegExp,Error, EvalError ,TypeError 二:浏览器对象 window, document , Screen ,History,Location 二:自定义...
  • 面向对象与面向过程的本质的区别

    万次阅读 多人点赞 2018-01-10 20:19:04
    前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点...面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个
  • 什么是Java的对象引用? Java中都有哪些类型的对象引用? Java中提供的Java对象引用主要有什么目的? 通过本文,你就能很清楚得了解Java的对象引用
  • C# 未将对象引用设置到对象的实例

    千次阅读 2015-08-18 11:21:35
    C#中报: 未将对象引用设置到对象的实例这个错误一般都是对象为null产生的,下面几个简单的例子: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //string str1 = "";
  • 对象属性和值的深拷贝 let staffForm = { id: '123', name: 'zhangsan' } 方法一:ES6语法 let obj = Object.assign({}, staffForm);//obj是深拷贝的对象 方法二:JSON工具,通过转字符串,然后转对象 let obj = ...
  • Java对象的复制三种方式

    万次阅读 多人点赞 2018-01-21 18:35:05
    在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象...
  • if (JSON.stringify(Obj) == '{}'){ console.log('这是一个空对象') } if (JSON.stringify(obj) === '[]'){ console.log('这是一个空数组') }
  • Promise对象的使用

    万次阅读 2020-07-15 09:45:21
    Promise对象也称链式调用,如果有一组数据需要先查询到另一组数据,然后通过这组数据再获取最终想要的数据。 例如封装axios 创建一个ajaxUtil.js文件 import axios from 'axios' /* html页面,则在引入ajaxUtil.js前...
  • List集合中的对象根据属性排序

    万次阅读 多人点赞 2014-11-27 11:11:02
    集合类List存放的数据,默认是按照放入时的顺序存放的,比如依次放入A、B、C,则取得时候,则也是A、B、C的顺序,实际场景中,有时我们需要根据自定义的规则对List中的元素进行排序,该如何实现呢?...
  • 吃人的那些 Java 名词:对象、引用、堆、栈

    万次阅读 多人点赞 2019-09-05 15:57:09
    作为一个有着 8 年 Java 编程经验的 IT 老兵,说起来很惭愧,我被 Java 当中的四五个名词一直困扰着:**对象、引用、堆、栈、堆栈**(栈可同堆栈,因此是四个名词,也是五个名词)。每次我看到这几个名词,都隐隐...
  • 给定一个“Flatten” Dictionary 对象其键是点分割的,例如:{"A":1,"B.A":2,"B.B":3,"CC.D.E":4,"CC.D.F":5},实现一个函数,将其转换 为一个嵌套的字典对象,根据上面例子,嵌套对象结果为{A:1,"B":{"A":2,"B":3},...
  • Python零基础入门教程 13.面向对象

    万次阅读 2020-08-21 09:19:58
    面向对象 大纲 前言 面向过程与面向对象 面向对象的三大特性 抽象 继承 多态 总结 视频地址:https://www.bilibili.com/video/BV1ZT4y1j7d1?p=14 前言 Python是一门面向对象的编程语言,但这并不是说...
  • javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法前言在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示: 如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并...
  • 深入理解Java类型信息(Class对象)与反射机制

    万次阅读 多人点赞 2017-05-01 23:19:19
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System....
  • 1、经典的三层架构 (这不合理,太复杂的分层会导致混乱,《阿里巴巴手册》还是很... DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。 BO( Business Object):业务对象。 由Serv...
  • 虽然内核对象位于独立于进程之外的内核区域,我们在开发中却只能通过调用Win32 API传入HANDLE参数来操作内核对象(如SetEvent等)。然而HANDLE句柄只对当前进程有效,离开了当前进程该句柄就无效了(具体原因参考:...
  • JSONObject jo= (JSONObject) JSONObject.toJSON(javaBean); Student stu = (Student)JSONObject.toBean(jo, Student.class);
  • C++ 对象的初始化和清理

    万次阅读 2020-07-05 16:49:53
    4.2对象的初始化和清理 ●生活中我们买的电子产品都基本会有出厂设置,在某-天我们不用时候也会删除一些自己信息数据保证安全 ●C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置...
  • 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 具体如下图 java 普通对象结构 java 数组对象结构 对象结构组成 对象头 ...
  • java对象转js对象

    千次阅读 2017-05-04 20:51:04
    在js中直接使用 EL表达式表达java对象时,输出是对象的类名。没有达到我们要使用该对象的目的。比如var user= ${user};在页面上查询代码为var user=com.test.domain.user;这时候想要获取user的属性值: user.name是会...
  • Windows内核对象(1) -- 内核对象与句柄

    万次阅读 2018-01-25 16:42:52
    一、什么是内核对象 我们在windows开发中经常会遇到内核对象,如事件(Event),管道(Pipe),互斥量(Mutex),完成端口(IOCP),进程(Process),线程(Thread)等,他们都是内核对象。这些内核对象虽然通过不同的系统API...

空空如也

1 2 3 4 5 ... 20
收藏数 2,341,696
精华内容 936,678
关键字:

对象