关闭

面向对象(匿名对象的使用)

1786人阅读 评论(0) 收藏 举报
分类:

讲个小知识点,匿名对象,匿名就是没有名字,不起名字是对象的简写格式,有自己的应用场景,也有自己的弊端。

new Car().num = 5;一执行完就垃圾了

new Car().color = "blue";一执行完就垃圾了

new Car().run();//匿名对象调用方法有意义,里面有内容,而调用属性



      Car c = new Car();
c.run();

new Car().run();


     Car c = new Car();
c.run();
c.num = 4;
new Car().run();


*/
//匿名对象使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
//如果对一个对象进行多个成员调用,必须给这个对象起个名字。
//匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。


凡是简化的都有局限性,三元运算符是ifelse的简化,有局限性,必须有运算结果。

Car q = new Car();
show(q);


//show(new Car());//这个对象有名字了,有引用,不再是垃圾
}


//需求:汽车修配厂。对汽车进行改装,将来的车够改成黑车,三个轮胎。
public static void show(Car c)
{
c.num = 3;
c.color = "black";
c.run();
}

直线完毕后,对象没有引用了就变成垃圾,涉及到强引用,其实涉及到弱引用的问题。其实开发中真想让对象变垃圾q=nul,明确指定一下。引用不指向你了。其实java中写缓存程序,就要指定对象生命周期到底有多长。不指定的话虚拟机收,虚拟机收不定时。这时把对象释放出来时就要考虑到强引用,软引用,弱引用和虚引用。优化内存用的。后面时会讲,利用java给我们提供的对象。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

匿名对象与非匿名对象的区别

类封装完以后就可以通过使用new关键字和类的构造方法来创建对象,这种对象分为两种:匿名对象与非匿名对象。何为匿名对象,何为非匿名对象呢?举个例子:假如有如下类:     package com.heima.vo;     public cl...
  • wangshuxuncom
  • wangshuxuncom
  • 2013-11-06 07:42
  • 7196

匿名对象和内部类

匿名对象: 匿名对象是对象的简化形式; 匿名对象的使用情况: 1)当对对象方法仅进行一次调用的时候使用;如果需要调用多次,还需要创建对象。如果对一个对象进行多个成员的调用,就必须给这个对象起个名字。 2)匿名对象可以作为实际参数进行传递;(点击事件监听里面的参数) 3)匿名对象是没有被其他对象...
  • chenrushui
  • chenrushui
  • 2016-07-15 11:21
  • 1049

为什么一个匿名内部类使用一个在其外部定的对象必须使用final修饰

Thinking In Java(java编程思想)里面的说法(唯一正确的说法): 如果定义一个匿名内部类,并且希望它使用一个在其外部定的对象,那么编译器会要求其参数引用是final 的。以下是分析过程:首先看代码public class Tester { public s...
  • syc434432458
  • syc434432458
  • 2016-10-18 10:34
  • 168

匿名内部类引用外部对象要加final修饰符的原因

为什么在匿名内部类中引用外部对象要加final修饰符呢,因为,在匿名内部类中引用的外部对象受到外部线程的作用域的制约有其特定的生命周期,以线程为例,当外部的变量生命周期已经完结之后,内部的线程还在运行,怎么样解决这个外部生命周期已经结束而在内部却需要继续使用呢,这个时候就需要在外部变量中添加fina...
  • lb_383691051
  • lb_383691051
  • 2015-08-16 10:58
  • 1148

黑马程序员——分析匿名内部类使用外部定义的对象

在分析之前,首先说一下内部类定义在局部的特点。         内部类被定义在局部时:        1. 不可以被成员修饰符修饰;    ...
  • codeting
  • codeting
  • 2015-11-16 15:09
  • 1304

C++中的匿名对象

C++中的匿名对象是pure RValue, 因而不能作为引用传进去。 匿名对象只存在于构造该对象的那行代码,离开构造匿名对象的哪行代码后立即调用析构函数。 class Some { int n; public: Some(int s){n=s;} ~Some(){ ...
  • u010936800
  • u010936800
  • 2016-06-07 16:22
  • 3114

C++匿名对象解析

我们知道在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情况会产生临时对象:   1,以值的方式给函数传参;   2,类型转换;   3,函数需要返回一个对象时;   现在...
  • u011391093
  • u011391093
  • 2015-03-28 00:44
  • 1479

浅析C++中临时匿名对象

首先先看代码: #include using namespace std; /* 类名:A */ class A { int num; public: A( int num ); ~A(); A( A& a ); A operator=( int num ); frien...
  • cyousui
  • cyousui
  • 2013-12-03 18:22
  • 3764

Java 匿名对象的详解

一.匿名对象:没有名字的实体,也就是该实体没有对应的变量名引用。 二.匿名对象的用途 1,当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。    为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。    ...
  • qq_33642117
  • qq_33642117
  • 2016-07-14 09:14
  • 1170

JavaScript关于闭包,匿名函数,this,对象等的一些理解

闭包原本就是指所有的函数,但我们一般是指能够读取其他函数内部变量的函数,主要有两个作用:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。匿名函数不但可以省去命名的问题,同时可以提高程序的安全性,增加内聚。t...
  • jinhailang132
  • jinhailang132
  • 2014-03-18 22:46
  • 785
    个人资料
    • 访问:185600次
    • 积分:3209
    • 等级:
    • 排名:第12390名
    • 原创:84篇
    • 转载:325篇
    • 译文:0篇
    • 评论:13条
    博客专栏
    最新评论