java 之创建对象

article/2025/10/21 12:12:23

文章目录

  • 前言
  • 创建对象
  • new关键字的作用
  • 构造方法
  • 什么是初始化
  • 构造方法的作用
  • 构造方法的两种形式
  • 参考引用

前言

这是我学习过程中做的总结,如有不对见谅。


创建对象

       我们用Demo类来创建一个对象。

Demo demo=new Demo();这一条语句,其实包括了四个动作:1)右边的“new Demo”,是以Demo类为模板,在堆空间里创建一个Demo对象。2)末尾的()意味着,在对象创建后,立即调用Demo类的构造函数,对刚生成的对象进行初始化。3)左边的“Demo demo”创建了一个Demo类引用变量,它存放在栈空间中。也就是用来指向Demo对象的对象引用。4)“=”操作符使对象引用指向刚创建的那个Demo对象。

形象说明:

      如生产汽车,类只是汽车设计图,new可以理解为制造或生产,new car()可以看成是以car这个设计图默认的属性生产了一辆车,现在这个车就是实际存在的对象,它创建对象时构造函数使用设计图默认定义的车的形状、重量、油箱的容积等参数造的这辆车。而使用new car (shape,hight,tank_volume)传递参数来修改设计图的部分属性,然后再以修改后的图纸生产汽车。

实例:

1.首先创建一个类,我这里创建的是一个学生类,里面有学生的姓名、年龄。

//1.首先创建一个类,我这里创建的是一个学生类,里面有学生的姓名、年龄。
public class Student {String name;    //姓名int age;        //年龄/*2.类是抽象的,需要实例化为具体的对象,也就是创建一个对象,实例化后会返回一个对象,我们就像这样new 一个对象,这里的lihua,lihong就是Student类的具体实例。代码如下*/Student lihua = new Student();Student lihong = new Student();//3.对象初始化:接着需要对对象进行初始化,如果不初始化,输出的数据将会是默认值,代码如下lihua.name="李华";lihua.age=19;lihong.name="李红";lihong.age=18;

输出结果:

System.out.println(lihua.name);
System.out.println(lihua.age);
System.out.println(lihong.name);
System.out.println(lihong.age);
李华
19
李红
18

如果不初始化,我们来看一下运行结果 :

null
0
null
0

new关键字的作用

  1. new运算符实例化一个类对象的过程,通过给这个对象分配内存给实例变量赋默认值(半初始化)并返回一个指向该内存的引用
  2. new运算符也调用了对象的构造函数。

  3. new运算符返回的引用可以不需要被赋值给变量,所以它也可以直接使用在一个表达式中。

    例如: int height = new Rectangle().height;

  4. 注意:

    将成员变量赋默认值的是new而不是构造方法。

    参考: java中,默认的无参的构造方法的作用是什么?是不是初始化所有变量?_360问答

构造方法

        Java提供了为类的成员变量赋初值的专门方法,其功能主要是完成对象的初始化。

什么是初始化

      对象的创建过程主要分成三步,如下图展示的汇编码所示,主要是0,4,7这三步。

0 这步是为新创建的对象申请内存,但是此时对象中的成员变量的值是默认的值(半初始化),即下图a 的值此时是0;

4 初始化对象,在这步才把10赋给成员变量a

7 建立关联,把testDemo引用和new 出来的TestDemo对象建立关联

从这里我们可以看出初始化可以认为是显示赋值,其实是将对应类型的隐式赋值用显示赋值覆盖的过程。,把10赋给原先半初始化的a,此时的a=0,赋值之后a=10。初始化对象的属性,准确的说是为对象的属性显示赋值。

public class TestDemo {private int a = 10;public static void main(String[] args) {TestDemo testDemo = new TestDemo();
//        0 new #2 <company/syncronized/TestDemo>       申请内存,半初始化,此时a的值是0(当对象刚new出来的时候会给里面的成员变量设置默认初始值,int类型的初始值是0)
//        3 dup                                         复制
//        4 invokespecial #3 <company/syncronized/TestDemo.<init>>    初始化,在这步把10赋给a,此时a的值是10
//        7 astore_1                                 testDemo和new TestDemo()建立关联
//        8 return}
}

构造方法的作用

构造方法是类的一种特殊的方法,主要体现在下面几个方面:

  1. 构造方法的名字和类名完全相同
  2. 构造方法有返回值(返回值是一个已经初始化的对象),没有返回值的类型。不能在构造器里调用return;
  3. 如果定义一个类的时候没有定义构造方法,系统会自动生成一个无参构造方法,如果定义了一个有参构造方法,想要使用无参构造方法就需要重新定义无参构造方法。
  4. 构造方法只能用在 new 创建类的对象时由系统调用。

构造方法的两种形式

        编写构造方法的目的是向对象传递参数(一般有参),以及对成员变量进行初始化(一般无参)。


参考引用

为什么——要实例化对象? - 山外已有山 - 博客园

(38条消息) 子类一定会调用父类的构造器吗?如果会,那么子类为什么要调用父类的构造器?benbenniaono1的博客-CSDN博客子类会调用父类的构造函数吗 子类一定会调用父类的构造器吗?如果会,那么子类为什么要调用父类的构造器?_benbenniaono1的博客-CSDN博客_子类会调用父类的构造函数吗


http://chatgpt.dhexx.cn/article/SDUXIN06.shtml

相关文章

Java中创建对象的5种方法

将会列举5种方法去创建 Java 对象&#xff0c;以及他们如何与构造函数交互&#xff0c;并且会有介绍如何去使用这些方法的示例。 作为一个 Java 开发人员&#xff0c;我们每天都会创建大量的 Java 对象&#xff0c;但是我们通常会使用依赖管理系统去创建这些对象&#xff0c;例…

Java创建对象的四种方式

1. new 2. clone 3. 通过反射newInstance 4. 反序列化 5. String s “abc”&#xff08;这个是比较特殊的&#xff09; 以String类为例 String string null; Class class1 String.class;// 该方法最为安全可靠&#xff0c;程序性能更高。 Class class2 string.getClass(…

c# Topshelf创建linux与Windows服务

目录 Topshelf安装Topshelf包代码如下&#xff0c;简单粗暴卸载服务安装服务 Topshelf 讨厌创建.net 服务时的窗体怎么办&#xff1f;讨厌调试.net服务怎么办?调试.net服务还要自己建控制台怎么办? Topshelf 它来了&#xff01;&#xff01;&#xff01; Topshelf 是一个开源…

htop与top命令

安装htop yum -y install htop htop 类似于 top 命令&#xff0c;但可以让你在垂直和水平方向上滚动&#xff0c;所以你可以看到系统上运行的所有进程&#xff0c;以及他们完整的命令行。可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。 与 Lin…

使用Quartz.net实现多线程任务定时执行,动态配置Job,结合Topshelf构建Windows服务

几个月前有这么个需求&#xff1a;需要执行一些Job&#xff0c;这些Job会各自按照不同的时间频次执行&#xff0c;且它们做的事情也不同&#xff0c;有的是监控站点&#xff0c;有的是监控服务器存储情况&#xff0c;有的是监控报表PROCEDURE的执行状况… OK&#xff0c;当看到…

top命令参数详解

简介 top命令是Linux下常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用状况&#xff0c;类似于Windows的任务管理器。 top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直…

top命令参数详解(linux top命令的用法详细详解)

通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。 top命令输出长这样&#xff1a; top命令参数详解&#xff08;linux top命令的用法详细详解&#xff09; 以下解析一下各个字段的意思&#xff1a; VIRT&#xff1a;virtual memory …

Topas命令详解

执行topas命令后如图所示&#xff1a; #topas 操作系统的最全面动态&#xff0c;而又查看方便的性能视图就是topas命令了&#xff0c;下面以topas输出为例&#xff0c;对AIX系统的性能监控做简要描述&#xff0c;供运维工程师和系统管理员们参考。 另&#xff1a;1.操作系统报…

Topshelf 打包部署Windows服务

1 创建项目(例&#xff1a;控制台程序) Nuget 引入Topshelf类库 using System; using System.Threading; using System.Threading.Tasks; using Topshelf;namespace LoginTypeInherit {public class Program{private static readonly log4net.ILog log log4net.LogManager.G…

Linux top命令参数详解

Linux top命令参数详解 生产环境系统运行慢&#xff0c;出现无法响应通常原因主要还在于分析CPU、内存、磁盘使用率情况&#xff0c;并结合命令查找出具体进程&#xff0c;并在进程中进一步分析主要因子情况&#xff0c;渗透到对于其中包含线程占用情况的分析。一般而言对于ja…

C#之TopShelf启动Windows服务

写了一两天&#xff0c;才发现组长给的原始代码原本就有Topshelf&#xff0c;还是写出来提示我topshelf不明确哪个版本的使用&#xff0c;莫名尴尬。 1、项目的主要运行代码 HostFactory.Run(x >{x.RunAsLocalSystem();x.SetDescription("topshelf测试");x.SetDi…

Linux下top命令用法详解

一、命令介绍 Linux top命令用于实时显示 process &#xff08;进程&#xff09;的动态。它用于监控正在运行系统负荷的信息&#xff0c;包括系统负载、CPU利用分布情况、内存使用、每个进程的资源占用情况等。 使用权限&#xff1a;所有使用者 二、命令详解 在命令行下输入…

【Linux】Top命令参数解释

TOP命令 这是一个Linux系统下 top 命令所输出的进程监控信息。以下是各列含义&#xff1a; top - 09:52:15&#xff1a;当前时间。 up 27 min&#xff1a;系统已经运行的时长。 2 users&#xff1a;当前有2个用户登录到系统上。 load average: 0.97, 0.41, 0.21&#xff1a;系…

Topshelf的使用

一、简介 Topshelf可用于创建和管理Windows服务。其优势在于不需要创建windows服务&#xff0c;创建控制台程序就可以。便于调试。 二、官方地址&#xff1a; 1、官网&#xff1a;http://topshelf-project.com/ 2、官方文档&#xff1a;https://topshelf.readthedocs.io/en/lat…

topshelf

topshelf和quartz topshelf和quartz内部分享 阅读目录: 介绍基础用法调试及安装可选配置多实例支持及相关资料quartz.net 上月在公司内部的一次分享&#xff0c;现把PPT及部分交流内容整理成博客。 介绍 topshelf是创建windows服务的一种方式&#xff0c;相比原生实现ServiceBa…

使用Quartz.net + Topshelf完成服务调用

概述&#xff1a; Quartz.NET 是一个开源作业调度库&#xff0c;可用于在 .NET 应用程序中调度和管理作业。它提供了一个灵活而强大的框架&#xff0c;用于调度作业在特定的日期和时间或以固定的时间间隔运行&#xff0c;并且还支持复杂的调度场景&#xff0c;例如 cron 表达式…

Linux中top命令参数详解

top命令用法 top命令经常用来监控linux的系统状况&#xff0c;是常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用情况。 top的使用方式 top [-d number] | top [-bnp] 参数解释&#xff1a; -d&#xff1a;number代表秒数&#xff0c;表示top命令显示…

linux 命令:top 详解

注&#xff1a;以下文档根据2019年10月的官方文档翻译。 名称&#xff1a;top - 展示linux进程信息 用法&#xff1a;top -hv|-bcEHiOSs1 -d secs -n max -u|U user -p pid -o fld -w [cols] 在top进程运行过程中&#xff0c;两个最重要的功能是查看帮助&#xff08;h 或 &…

Topshelf 搭建 Windows 服务

C# Topshelf 搭建 Windows 服务 Topshelf 是一个用来部署基于.NET Framework 开发的服务的框架。简化服务创建于部署过程&#xff0c;并且支持控制台应用程序部署为服务。本文基于 .net core 控制台应用程序部署为服务&#xff08;.net Framework 可用&#xff09;。 第一步&…

TOP命令详解

TOP命令详解 top命令经常用来监控linux的系统状况&#xff0c;是常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用情况。 top的使用方式 top [-d number] | top [-bnp]参数解释&#xff1a; -d&#xff1a;number代表秒数&#xff0c;表示top命令显示的页…