首页IT科技java静态对象在哪分配内存(Java类、对象以及(静态)方法的探讨)

java静态对象在哪分配内存(Java类、对象以及(静态)方法的探讨)

时间2025-06-20 04:57:09分类IT科技浏览3939
导读: 大家好,这是我的第一篇博客。在这里我想跟大家分享一下Java最基础的Class and Object,也就是我们熟说的类和对象,以及对Java方法的探讨。...

  大家好            ,这是我的第一篇博客            。在这里我想跟大家分享一下Java最基础的Class and Object                  ,也就是我们熟说的类和对象      ,以及对Java方法的探讨                  。

  初学时的我因为没有对这里面的每一行代码思考透彻         ,在学习Java中级时感到愈加困难                  ,像是在搭建一栋地基不断摇晃的大楼         ,越往上盖      ,越是觉得自己轻浮      。因此                  ,我决定用相较初学时不同的眼界            ,回过头来看最基础的代码         。也希望我的随笔能帮助到你们   ,或是得到你们的不一样的看法                  。

  完整代码请见下图         。首先                  ,我用大楼来解释一下类Class和对象Object之间的关系      。

  如果对象Object是一栋大楼               ,那么类Class就是大楼的建造图纸                  。在图纸里面,我们需要写上:大楼里面的东西例如地板            、玻璃等(variables变量)               ,以及大楼的安全保障怎么做(methods方法)            。如以下代码所示   。

  相信你们已经懂了大楼的图纸应该怎么去写                  ,接下来我将创建一个计算器类和一个(public)测试类                  。计算机类有三个变量:num1, num2, result, 同时还有一个方法void Perform()用以计算num1+num2;测试类中没有定义新变量   ,但是它有一个主方法(我们将在后面详细说这个主方法)

  在主方法中            ,我们将引用计算器类                  ,创建一个新的object即cal               。这里我们需要用到关键字new(用以分配内存)和构造函数constructor:Calc cal; cal = new Calc();(构造函数也将在后面详细讲解)Calc cal;为引用      ,cal = new Calc();为创建新的object         ,也可以直接写成Calc cal = new Calc();

  创建好新的对象之后                  ,我们就可以引用Calc类中的变量:cal.num1, cal.num2, cal.result 以及方法:cal.Perform();如果我们声明cal.num1=3;cal.num2=5;那么经过cal.Perform()方法之后         ,cal.result = cal.num1+cal.num2 = 8      ,再经过

System.out.println输出cal.result                  ,在控制台console得到结果8。

  相信你们已经大致了解了如何引用类并创造一个新的对象            ,并引用类中的变量和方法进行计算               。不过我们还剩有两个未解释清楚的问题:主方法main()和构造函数constructor   ,我们将一一进行解释                  。

  public static voidmain(Stringargs[]){}是初学者包括我都很不解的一个函数形式   。实际上                  ,Java运行时首先会执行main()方法               ,就和c语言一样            。而main方法是由Java虚拟机调用的,所以必须是public               ,虚拟机调用的main()方法的时候                  ,不需要产生任何对象   ,所以main()方法声明为static            ,且不需要返回值                  ,所以必须声明为void                  。String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数      。

  接下来我们解释构造函数constructor         。我们在主方法中的对象 cal 就是由Calc()构造函数创建的                  。实际上      ,无需我们进行定义         ,每一个类会自动生成与类同名的构造函数(方法)         。一个类中能有多个构造函数      。它们没有函数类型                  ,不返回任何值         ,且默认类中定义的变量为0                  。因此      ,如果我们不在主方法中声明cal.num1=3;cal.num2=5                  ,那么输出结果将会是0            。如下图:

  当然            ,我们还可以自行定义构造函数以改变变量的默认值   ,甚至是函数的参数   。

  如下图所示                  。我们取消了声明cal.num1=3;cal.num2=5                  ,而是在构造函数Calc()中直接将3               ,5分别赋值给num1, num2,在另外一个构造函数Calc(int number1,int number2)中将number1               ,number2分别赋值给num1, num2                  ,而在主函数中   ,对象cal2的构造函数中的3            ,4将分别赋值给number1                  ,number2               。分别输出cal1.result和cal2.result      ,得到的结果大家肯定也知道了。

好了这就是这次博客的全部内容         ,谢谢你们能够看完               。更详细的关于main()函数的解释可以看https://www.cnblogs.com/wannianma/archive/2011/04/03/wannianma.html

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
美国服务器cn2(美国服务器的性能如何测试)