匿名对象
package com.demo02;
public class Person {
String name;
int age;
public void callname(){
System.out.println("hello,"+name);
}
}
package com.demo02;
/*
创建对象的标准格式:
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字喝赋值运算符。
new 类名称();
*/
public class Demo01Anonymous {
public static void main(String[] args) {
//创建有名字的对象
Person one = new Person();
one.name="Jack";
//匿名对象
//匿名对象是否可以调用属性并赋值?有什么意义?
/*
匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾
如果需要赋值还是用有名字对象
*/
one.callname();
new Person().name="Lily";
new Person().callname();
}
}
内存分析
new Car().num =5;
new Car().color = "green";
new Car().run();
匿名对象执行完毕后,由于再无引用引用之,Java的自动回收机制会视作垃圾处理
匿名对象作为方法的参数
package com.demo02;
import java.util.Scanner;
public class Demo02Anonymous {
public static void main(String[] args) {
methodParams(new Scanner(System.in));
}
public static void methodParams(Scanner sc){
System.out.println("输入一个数字");
int num = sc.nextInt();
System.out.println("输入的是:"+num);
}
}
匿名对象作为方法的返回值
package com.demo02;
import java.util.Scanner;
public class Demo02Anonymous {
public static void main(String[] args) {
System.out.println("请输入一个数字");
int num=methodParams().nextInt();
System.out.println("输入的数字:"+num);
}
public static Scanner methodParams(){
return new Scanner(System.in);
}
}