马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 hjg 于 2021-3-27 09:51 编辑
大家好,我是一名好久不见的老鱼油了,刚开始接触编程的时候都是看甲鱼老师的视频和来鱼C 论坛找答案 ,经过一段时间的学习,对计算机组成原理 计算机网络 操作系统 数据结构与算法 算法设计与分析 C语言 python语言 java语言 and so on 。。的学习,让我在编程方面算是打下了一点儿基础,这次打算记录一下自己学习java的笔记,一来自己可以巩固知识,二来也算是来回馈给甲鱼&&平台。我更喜欢和大家一起学习,互相讨论。。 本人也新写手,文章不足方面还请大家体谅和指点一二。。。。。。
我们开始正文,先欢迎一下。
这篇介绍面向对象基础------匿名对象。。我这个系列打算就接着 非安全哥哥 的系列教程下去,之前没学java的可以先学完安全哥哥的教程再来
[url=【Java 教程(原创)】索引帖 https://fishc.com.cn/thread-80133-1-1.html (出处: 鱼C论坛)]他的链接[/url]
为什么要面向对象基础呢?
这边先分析非安全哥哥的目录
那什么叫匿名对象呢?
没有对象名称的对象 就是匿名对象。 匿名对象只能使用一次,因为没有任何的对象引用,所以将称为垃圾,等待被G·C回收。 只使用一次的对象可以通过匿名对象的方式完成,这一点在以后的开发中将经常使用到。 /**
* @quther hjg
* @date 2021/1/28 21:35
**/
public class Demo7 {
/**
* 匿名 : 没有名字
*/
public static void main(String[] args) {
// Math2 m = new Math2();
// int num = m.sum(100,200);
//下面这里没有m
int num = new Math2().sum(300, 200);
System.out.println(num);
}
}
class Math2{
int sum(int x,int y) {
return x+y;
}
}
解释一下:// Math2 m = new Math2();
// int num = m.sum(100,200);
这边是正常我们命名的做法,下面就是使用匿名的写法//下面这里没有m
int num = new Math2().sum(300, 200);
还记得 非安全说的 对象的引用和实体 ??里面介绍了 堆(heap) 和 栈(stack)
匿名了的话就会是图里面这样只有堆没有栈 用完就不要了。。。
下面再来看一段代码/**
* @quther hjg
* @date 2021/1/28 21:38
**/
public class Demo8 {
/**
* 如果一个对象 , 我们准备使用两次 或 以上。 那么一定要给对象 创建对象名。
* @param args
*/
public static void main(String[] args) {
new Person5().name = "张三"; //三段独立
new Person5().age = 18;
new Person5().say();
}
}
class Person5{
String name;
int age;
void say() {
System.out.println("自我介绍,姓名:"+name+" , 年龄:"+age);
}
}
它的运行结果是这样的 :
为什么会这样呢?看这张图
解释一下第一行新建一个Person5 :只有name 没有 age
第二行也新建一个Person5 : 只有 age 没有 name
第三行 say 方法也新建一个Person5 name 和 age 都没有
记住一句话:如果一个对象 , 我们准备使用两次 或 以上。 那么一定要给对象 创建对象名。
OK,,结束 下次见 面向对象进阶
可以的话顺手一路四点一下【收藏 评分分享淘帖顶】 再多多留言 你的支持就是我持续写作的动力!!!
|