public class A()

{

int yy=0;

public static void main(String[] agrs)

{

A aa=new A();

}

}

我想知道的是,A是一个类,而main方法是A类中的一个方法,为什么可以在main方法里创建一个自己的对象?那是不是也可以使用aa.main(参数)的形式来调用它?请高人解释。

public static void main(String[] agrs)

我知道这是程序主入口

我想知道的是为什么可以这样在类的内部创建自己的对象,那不是无限循环创建对象了吗

你主要的疑惑是,为什么类中的方法可以创建它本身。

类和方法的写法都是一种声明, 所谓声明,就是说是对行为的描述,而不是要真正执行它。

例如class 小狗{

public void 吃饭(){

小狗 abc = new 小狗();

}

}

这里声明 一个叫小狗 的 类, 他有一个方法,吃饭()。到这里没有任何问题, 我只是描述了一个类,和吃饭的行为。这个时候系统什么都没发生, 因为只是声明而已。说的是小狗 “可以” 吃饭, 但并不是声明完就必须立即调用吃饭()。但这样的话,谁去调用他呢, 我可以写另一类 比如person类,但是谁去调用person呢?说来说去就必须有一个不需要创建对象也能调用的方法。java里面就是main方法(这个main方法只需要放到任意一个类中即可)。public static void main(String[] args) {

小狗 a = new 小狗();

a.吃饭();

}

当你用java执行这个类时,系统会寻找main方法作为入口执行。流程如下

进入 main方法,调用 小狗 a= new 小狗(), 这样系统才真正创建一个小狗 类(class)的 一个实例(instance),2 然后调用 a.吃饭(), 这个时候系统执行了吃饭的方法, 即又创建了abc, 一个新的小狗,3 程序结束, 返回。

系统寻找main的时候不关心main是否在哪个类里,所以实际上main和他的宿主在生命周期上没有关联。之所以写在这个类里只是不需要import类,图方便而已。上面2中,创建a小狗, 吃饭()调用后,创建了abc小狗, 两者并没有什么关系

java在类中创建自己对象_java 在类中创建自己的对象相关推荐

  1. java 9对象_java(9)类和对象

    一.理解什么是类和对象 万事万物皆对象 1.1.属性--对象具有的特征(特点) 1.2.方法--对象可执行的操作(能干什么事) 1.3.对象的定义: 是一个客观存在的,看的见或摸得着的实体,由属性和方 ...

  2. java基础类与对象_Java基础---类与对象

    类创建原则 一个类只承担一个功能,只有一条public class语句,但是可以有多条class 对象实例化 我们知道类是抽象的,对象是实际的,比如猫类我们可以写为public class Cat,而 ...

  3. 怎么向java窗口中插入XSL表_Java向word中插入Excel文件对象

    前言: 在word文件中,虽然也有表格.但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中. ...

  4. java hashmap 转对象_Java – 从HashMap中获取正确的转换对象

    我正在开发一个具有多个系统的应用程序(在我的例子中,系统是我的应用程序中的可加载组件,它处理特定任务,例如:翻译,配置处理,音频等--).这些系统共享一些常用方法,因此我创建了一个接口: public ...

  5. java中怎样定义实数_Java Math 类中的新功能,第 1 部分: 实数

    在这篇由两部分组成的文章中,Elliotte Rusty Harold 与您一起探讨经典 java.lang.Math 类中的"新"功能.第 1 部分主要讨论比较单调的数学函数.第 ...

  6. java继承时父类常量覆盖吗_Java父类继承中的static和final用法

    1.父类中staitic修饰的静态方法,不能覆盖.不能继承. 2.父类中staitic修饰的变量或常量,能覆盖.不能继承. static修饰的变量和方法,只属于类本身,不属于对象:当声明一个对象时,并 ...

  7. java socket通信需要另外加密么_Java Socket实战之五 使用加密协议传输对象

    前面几篇博文提到了Socket中一些常用的用法,但是对于一些有安全要求的应用就需要加密传输的数据,此时就需要用到SSLSocket了. 还是一样需要一个实现了java.io.Serializable接 ...

  8. excel 日期加时间java程序里被转成浮点型_Java工具类之:包装类

    我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工具类,你会发现它能很大程度 ...

  9. java中作用是什么_Java在编程中的作用是什么?

    2017-07-28 Java编程中更新XML文档的常 JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口. ...

最新文章

  1. mysql查看数据库创建语句_mysql-模糊查找数据库和查看数据库的创建语句
  2. 深度学习可视化工具visdom使用
  3. Programming Computer Vision with Python (学习笔记七)
  4. java http响应头,java – HTTP响应标头内容处理附件
  5. java 标识符_java标识符的基础知识
  6. 1023. Have Fun with Numbers (20)
  7. python爬虫淘宝视频_python爬虫视频教程:一篇文章教会你用Python爬取淘宝评论数据...
  8. iOS APP安全杂谈
  9. 需求分解与需求跟踪矩阵
  10. 人工神经网络算法的应用,人工神经网络发展历史
  11. 关于matlab运行的一些报错迷惑
  12. Photoshop制作会员登录界面(保姆级别教程)
  13. aws修改服务器端口,AWS Linux修改SSH默认端口失败的原因与解决方法
  14. 零基础做一个微信答题小程序(二)
  15. 案例:用python将中文翻译的和英文原文合成新的word文档
  16. 多台路由器连接,实现全网可达
  17. python中,ttk.Combobox的background、foreground和font属性的设置问题
  18. Vue响应式原理整理笔记
  19. Scott Hanselman的2006 Windows最终开发者和高级用户工具列表
  20. 基于Matlab的鲁棒控制实现(一)

热门文章

  1. 在学校表中分别显示各个学校的教师和学生人数,查询总数
  2. Mysql数据库基础语句总结
  3. 干货 | 从47%到80%,携程酒店APP流畅度提升实践
  4. 分享一些我觉得比较好的网站
  5. react如何使用dva
  6. Mobx原理: 手写mobx
  7. 离婚冷静期来了,需要赶快去离个婚了!
  8. 在C#中让Winform应用程序窗口自动适应高DPI缩放
  9. 深度学习常见损失函数总结+Pytroch实现
  10. 【密码学笔记】代替技术