Java基础---匿名对象的理解和使用
匿名对象
概念:没有名字的对象
语法:new 类名();
用法:1.对象被创建之后,如果其中某个方法只调用一次,可以用匿名对象去调用,可以节省空间;2.作为方法的实际参数;3.作为方法的返回值。
注意:匿名对象可以用来给成员变量赋值,但是一旦赋值,它就变成了垃圾,即使没被处理,我们也用不了。(就像幽灵,你知道这个空间里有它,但你捕获不到它)
package com.DaYu;public class Demo08 {public static void main(String[] arrgs) {//创建一个匿名对象,调用一次方法之后,成为垃圾new Phone2().call();//匿名对象作为方法的实参usePhone(new Phone2());//匿名对象作为方法的返回值Phone2 p1 = makePhone();System.out.println(p1);//利用匿名对象给变量赋值new Phone2().brand = "Apple";System.out.println(new Phone2().brand);//结果还是"华为",因为这样赋值没有意义,匿名对象一旦被赋值就没用了,被当成垃圾//即使没有被回收,刚刚的赋值我们也无法使用}public static void usePhone(Phone2 p) {p.brand = "小米";p.price = 4000;p.call();System.out.println(p.brand+" "+p.price);}//匿名对象作为方法的返回值public static Phone2 makePhone() {return new Phone2();}
}class Phone2 {String brand = "华为";double price = 7000;public void call() {System.out.println("打电话");}
}结果:
打电话
打电话
小米 4000.0
com.DaYu.Phone2@15db9742
华为
Java基础---匿名对象的理解和使用相关推荐
- Java 基础 匿名对象
即没有名字的对象. public class Test {public static void main(String[] args) {/*Car c1 = new Car(); //创建有名字的对 ...
- java 匿名list,java创造匿名对象的两种方法
在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...
- java 对象构造函数_20.Java基础_对象的构造函数
package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...
- 对java中匿名对象和匿名类的简单理解
首先在写完这篇博客时感谢几位作者的文章: https://www.cnblogs.com/txbblog/p/10364558.html https://blog.csdn.net/chengqium ...
- java基础知识-对象和类
前言: 因为要准备Java面试,所有将java基础知识点重新复习一遍,主要笔记来源于菜鸟教程和java核心技术的书籍中,也有一些博客上的资料(这些只供我个人学习使用) Java 对象和类 对象:对象是 ...
- java中class对象的理解 讲得相当不错 很接地气 引用下
https://blog.csdn.net/mcryeasy/article/details/52344729 https://blog.csdn.net/dufufd/article/details ...
- Java基础教程(12)--深入理解类
一.方法的返回值 当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: ...
- JAVA基础09对象和类
9. 对象和类 9.1 为对象定义类 类为对象定义属性和行为. 面向对象程序设计(OOP) 就是使用对象进行程序设计.对象(object) 代表现实世界中可以明确标识的一个实体.例如:一个学生.一张桌 ...
- java创建匿名对象_java-匿名对象
概念 创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量.虽然是创建对象的简化写法,但是应用 场景非常有限. 1. 创建匿名对象直接调用方法,没有变量名. new Scanner(Sys ...
最新文章
- gradle项目 避免每次下载gradle文件/解决依赖下载慢的问题
- 使用Flink的Savepoint功能
- python程序设计梁勇 百度网盘_20194220 2019-2020-2 《Python程序设计》实验二报告
- 模板资源管理器的使用
- bzoj3993: [SDOI2015]星际战争(二分+最大流)
- 【枭·音频】注入灵魂—《暗影火炬城》角色语音后期处理
- 限时秒杀│中科院推荐!6个引自美国NASA盒子,玩转科学
- 2022-3-6 stm32串口通信实例(库函数)-学习笔记
- 远程桌面 无法打开连接文件default.rdp
- Markdown绘制思维导图
- 机器视觉工程师之关于程序员的头发
- Redis设计与实现(一)| 数据结构 对象
- 历史课-中国朝代发展
- 等级保护体系及信息安全管理系统
- 分享一个VS写的PDF打印控件
- 前端iPhone刘海屏适配
- python儿童入门教程视频-Python入门视频全套教程
- bzoj 4886: [Lydsy2017年5月月赛]叠塔游戏 并查集
- LCD1602 液晶显示实验
- OSChina 周日乱弹 —— 给我两个公主我也抱的起来