首页 > 编程语言 >Java(匿名对象和命名对象)——进一步了解对象

Java(匿名对象和命名对象)——进一步了解对象

时间:2024-03-26 20:58:05浏览次数:16  
标签:Java String Person 对象 Phone 匿名 public

1.前面已知,想要抽象出一个对象,首先要写好它的模板——类

但是存在一个问题,我们想创建一个对象,要用构造方法去初始化这个对象。但是如果我们只想在某个时候只使用这个对象一次,之后就不要用了,那是不是这个对象就会占我们的内存,就像我们借走别人的笔(这个对象),之后要还给别人。所以就有了匿名对象这个存在,来帮我们解决这个问题。

2.代码展示——(运用匿名对象和命名对象)明白他们的作用。

package stu.zuo.er;

class Phone{
    public Phone(){   }//空构造方法,还有切记不能为构造方法指定类型
    public String tell(String friend){//成员方法
        return friend;
    }

}
class Person{
    String name;//数据成员
    int age;
    public Person(){  }//空构造方法
    Person(String name1,int age1){//构造方法
        name = name1;
        age = age1;//初始化对象
    }
    public void telling(Phone phone,String poem,String friend,String firstpoem){//将对象作为参数
        System.out.println(name+"告诉"+phone.tell(friend)+poem+"的第一句诗");//调用另一个类的对象的成员方法
        System.out.println(firstpoem);
    }

}
public class Anonymous {
    public static void main(String[] args) {
        Person lb = new Person("李白",55);
        lb.telling(new Phone(),"蜀道难","Tom","君不见黄河之水天上来");//创建匿名对象——Phone
        //Phone huawei = new Phone();//命名对象——对象名为huawei
        //lb.telling(huawei,"蜀道难");//调用成员方法
    }
}

代码结果——
李白告诉Tom蜀道难的第一句诗
君不见黄河之水天上来

3.分析

在代码中我创建了Phone类和Person类,并写好了数据成员与成员方法。

最后在自己的主方法中先初始化李白,然后创建了匿名对象,使它作为Person类中telling成员方法中的参数。

之后在下一行注释中使用命名对象的方法作为该参数。

从中对比我们会发现命名对象明显要申明然后创建对象,这时Java就会在我们的堆内存中开辟空间存并储对象内容,然后在栈内存中保留对象名。这一步在这里肯定就减少了开发效率,而匿名对象则只会在堆内存开辟空间,所以大大提高了开发效率。

4.明白了匿名对象和命名对象,我们之后就可以更好的设计我们的程序,来优化它们!

接下来是学习Java中的重点,关键字了!!!

标签:Java,String,Person,对象,Phone,匿名,public
From: https://blog.csdn.net/zuoer_wwh/article/details/136998729

相关文章

  • 面向对象 栈和堆
    Me:对象在栈中,属性在堆中,属性属于对象的一部分GPT:在Java中,对象的引用存储在栈中,而对象本身存储在堆中,属性和方法就是对象的本身。对象的属性确实存储在堆中,但是对象本身并不是存储在栈中,而是通过引用指向堆中的实际对象。Me:那对象的引用是在栈中,对象本身在堆中,那可以比喻成堆为......
  • JDK tools-javadoc
    JDKtools-javadocJDK工具包-javadoc,从java源文件生成API文档的HTML页面javadoc工具解析一组java源文件中的声明和文档注释,并生成响应的HTML页面,这些页面描述(默认情况下)公共和保护属性的类、接口、构造函数、方法、字段。你可以使用javadoc工具为一组源文件生成API文档。......
  • docker-运行JavaWeb服务(jar包)
    环境说明linux系统版本:lsb_release-adocker版本:docker-v 不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。 查看docker中mysql的版本,可以去官网,需要kx上网才能打开。https://hub.docker.com/ 最好是确认自己的服务器已经设置阿里云的镜......
  • iMessage群发之Java源代码功能实现
    iMessage群发软件作为一款内置的、深受用户喜爱的即时通讯工具,不仅为用户提供了高效、安全的通信方式,还允许用户通过群发功能一次性向多个联系人发送消息。Java作为一种广泛使用的编程语言,以其跨平台性、面向对象性、安全性等特点,在开发移动应用、服务器应用、Web应用等领域有着......
  • Java学习笔记:异常处理
    目录Java学习笔记:异常处理什么是异常异常体系结构:Error、Exception自定义异常​ **2024/3/19**Java学习笔记:异常处理什么是异常异常体系结构:Error、Exception自定义异常......
  • Java_EE源码
    Java_EE源码https://flowus.cn/aslwr/share/6c1c6342-60c3-43b5-9041-dd5ea0497e05?code=CGHHXZ【FlowUs息流】Java_EE源码使用说明:使用任意版本idea打开项目(选择mybatistest)​​在pom.xml中加入如下代码:<resource><directory>src/main/resources</directory></......
  • java毕业设计商城平台(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的迅猛发展和电子商务的蓬勃兴起,商城平台已经成为人们日常生活中不可或缺的一部分。从服装、电子产品到食品、日用品等,几乎任何想得到的商......
  • java毕业设计体检中心信息管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着人们健康意识的增强和医疗保健水平的提高,体检成为现代生活中不可或缺的一部分。体检中心作为提供专业健康检查服务的机构,其信息管理效率和服务质量直......
  • 2024最新 JAVA SSM 教育管理系统 (学生网上请假系统)(计算机毕业设计LW + 源码)
    教育管理系统设计项目简介本项目开发了一个教育管理系统,旨在为学校管理提供全面的解决方案。系统使用Java语言开发,采用SSM框架,结合MySQL数据库,以提高系统的稳定性和可用性。本系统涵盖了管理员登录、班级信息管理、学生请假管理、基础信息管理和用户权限管理等多个管理模......
  • java毕业设计商洛市尾矿资源管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:商洛市位于中国陕西省东南部,该地区矿产资源丰富,历史上矿业开采活动频繁。然而,随着矿产资源的不断开发利用,产生了大量的尾矿。尾矿如果处理不当,不仅会造成......