本篇博文最后修改时间:2016年3月24日,20:16。
本篇介绍匿名对象。
系统版本:Windows7 家庭普通版 32位操作系统。
三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.youkuaiyun.com/omoiato
联系方式:315878825@qq.com
Java零基础入门交流群:541462902
四、匿名对象
定义:
匿名对象,就是没有明确给出名字的对象。
一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,
而不存在栈内存的引用。
作用:
匿名对象在实际开发中,基本上都是作为其他类实例化对象的参数传递的,
在后面的Java应用部分的很多地方都可以发现其用法。
匿名对象实际上就是一个堆内存空间,对象不管是匿名还是非匿名的,
都必须在开辟堆内存空间之后才可以使用。
范例:匿名对象的使用
class Person
{
private String name; //声明姓名属性
private int age; //声明年龄属性
public Person(String name,int age) //定义构造方法,为属性初始化
{
this.setName(name); //为name属性赋值
this.setAge(age); //为age属性赋值
}
public void tell() //取得信息的方法
{
System.out.println("姓名:" + getName() + ",年龄:" + getAge());
}
public String getName() //取得姓名
{
return name;
}
public void setName(String n) //设置姓名
{
name = n;
}
public int getAge() //取得年龄
{
return age;
}
public void setAge(int a) //设置年龄
{
if(a >= 0 && a < 150) //在此处加上验证代码
{
age = a;
}
}
}
public class NonameDemo01
{
public static void main(String[] args)
{
new Person("张三", 30).tell(); //匿名对象
}
}
程序运行结果:
在以上程序的主方法中可以发现:直接使用了“new Person(“张三”, 30)”语句。
这实际上就是一个匿名对象,与之前声明的对象不同,此处没有任何栈内存引用它,
所以此对象使用一次之后就等待被垃圾收集机制回收。