对象的名字可以解释为在栈内存中保存,而对象的具体内容(属性)在堆内存中保存,这样一来,没有栈内存指向堆内存空间,就是一个匿名对象
package oop; /** * 面向对象封装性的初步分析 * */ class Book{//定义一个Book类 private String title;//书的名字 private double price;//书的价格 //定义构造方法 //无参 public Book() { } //有参 public Book(String title, double price) { this.title = title; this.price = price; } //定义get和set方法 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public double getPrice() { return price; } public void setPrice(double price) { } public void getInfo(){//此方法将由对象调用 System.out.println("图书名称:"+title+",价格"+price+"元"); } } public class OopDemo02 { public static void main(String[] args) { new Book("java",89.9).getInfo();//匿名对象 } }
本程序通过匿名对象调用了类中的方法,但是由于匿名对象没有对象的栈内存指向,所以只能使用一次,一次之后就会成为垃圾,并且等待被GC回收释放