匿名对象的概念

正常情况下一个对象有堆内存空间和指向堆内存的栈空间,如果一个对象只有堆内存空间却没有栈内存指向,这样的对象就叫做匿名对象。

public void getInfo() {
		System.out.println("我还是个孩子!");
	}
}
package com.bai.demo;

public class Hello {
	public static void main(String[] args) {
		//直接调用匿名对象的方法
		new Person().getInfo();
	}
}
package com.bai.demo;

public class Hello {
	public static void main(String[] args) {
		//直接调用匿名对象的方法
		fun(new Person());
	}
	public static void fun(Person per) {
		per.getInfo();
	}
}

如果一个对象你预计在整个程序中只使用一次则可以声明为匿名对象。

观察字符串匿名对象

package com.bai.demo;

public class Hello {
	public static void main(String[] args) {
		System.out.println("hello".length()); //字符串
	}
}

如果直接写上一个字符串就是一个匿名字符串对象。我们还可以调用字符串匿名对象的另外一个方法实现内容比较。

观察字符串对象

public class Hello {
	public static void main(String[] args) {
	//登录验证模拟
	String name="smith";
	String pwd="1234";
	Scanner sc =new Scanner(System.in);
	//提示用户输入名字和密码
	System.out.println("请输入名字:");
	String inName=sc.next();
	System.out.println("请输入密码:");
	String inPwd=sc.next();
	if(name==inName&&pwd==inPwd) {
		System.out.println("登录成功!");
	}else {
		System.out.println("登录失败!");
	}
  }
}
请输入名字:
smith
请输入密码:
1234
登录失败!

发现了输入的内容和后面设置的用户名密码一直,但是还是没有匹配成功,原因是我们比较用户名和密码的时候使用的是“==”,使用“==”来实现字符串的比较,比较的内容是字符串的内存地址(比较地址而不是比较内容) 。如果要正确比较则应该使用字符串对象的“equals()”方法。

修改

if(name.equals(inName)&&pwd.equals(inPwd)) {
		System.out.println("登录成功!");
	}else {
		System.out.println("登录失败!");
	}
请输入名字:
smith
请输入密码:
1234
登录成功!

总结

1.匿名对象的概念

2.匿名对象可以作为方法的参数传递

3.直接协商的字符串也是一个匿名对象,可以调用其方法。.

4.如果要比较两个字符串的内容,那么要使用equals()方法,不能使用==。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值