java问题:main和构造方法

最近看Java忽然感觉有些疑惑,大家都知道main方法是主类的静态方法,而静态方法是不能调用非静态变量或方法的。可是,大多数程序里都在main方法里用了构造方法,更让人疑惑的是即使构造方法用public修饰main方法依然可以调用它。这是为什么呢?本人初学Java,希望知道的可以告诉我一下,谢谢了……
用main方法调用构造方法的例子有很多啊!像我现在看的swing基础,里面好多都是在构造方法里设置好UI界面,然后在main里创建对象。

我把我的经验跟你说吧,第一,MAIN方法的主要任务是检测程序,也就是说,真正在写一些大型系统的时候,很少用到MAIN方法,所以你的疑惑也只是在你的这个时期才会存在,以后都会用一些工厂类方法实现数据和方法的调用,第二,就我本人这些年的经验来看,很少在MAIN方法里包含构造方法,所以有时候你看到别人写代码的时候吧构造方法放MAIN,然后你就疑惑了,我觉得这样欠妥,因为在我看来把构造方法写到MAIN非常失败,事实上也没多少人把构造方法放到MAIN里去!因为MAIN方法是静态的,所以在MAIN里只能调用静态的方法或者本类中已经定义的方法如类名.方法名,或本类的方法名,更多的时候是通过工厂类的方法来调用的如通过工厂获得一个类的实例,然后再通过该实例.方法名 调用方法,不管什么时候,思路都要清晰,别人所能帮助的也只是从思维方式上帮助你,不可能每时每刻都有人跟你细谈方法的编写的
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-11
main方法是java程序的入口点,类似于c的main,当然肯定不一样,因为java执行一般是靠java.exe这个程序加载,有好多的初始动作,最后定位于main。 静态方法可以通过对象调用非静态方法。构造方法肯定可以被调用了,通过调用构造就制造出了对象,public是公开这个函数或成员,那当然可以调用了,私有的都可以何况公开的呢
第2个回答  推荐于2017-10-03
没听说过可以在main中调用构造方法,怎么调用??真是七特啊。
只可以在main方法中创建对象,声明变量,但不能在main方法中访问在main之外创建的非静态对象,和在main之外声明的非静态变量。在main中创建对象和声明变量是可以的。当然在你创建对象的时候,可以对这个对象初始化,就像你在main中使用int i=1;一样,声明变量i,并初始化i的值为1。当然对象也是同样的道理,创建对象时并没有直接调用构造函数。晕本回答被提问者采纳
第3个回答  2010-03-11
而静态方法是不能调用非静态变量或方法的。可是,大多数程序里都在main方法里用了构造方法.

不能直接调用吧,可以创建实例然后调用!
第4个回答  2012-06-07
构造方法默认的就是static的 所以是可以在main方法里调用的

怎样理解JAVA的“构造方法”和“主方法”
主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。主方法的语法如下:在主方法的定义中可以看到主方法具有以下特性:主方法也是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的。主方法没有返回值。主方法的形参为数组。...

java类中构造方法是必须的吗?还是只有javabean中的构造方法是必须...
一、在java中,构造方法不是必须显示定义的,如果没有定义构造方法,那么该类就有一个默认的无参数构造方法 二、main方法也不是必须的,main方法是作为运行这个类的入口,如果你不是要单独的运行这个类则不用写main方法

java含有main函数的类的构造方法执行的疑问?
1、含有main函数的类的构造方法为什么没有被执行?答:因为你没有构造该类的实例。只有在构造类的实例时才会请求类的构造方法。2、包含main函数的类可否被实例化?答:可以。类可否被实例化跟类的内容无关,只需要参考该类的定义,只有虚基类不可被实例化(当然没有访问权限的更不可能)。3、开始做...

主函数与构造函数区别
1、public (访问修饰符,公共的)代表该类或者还函数访问权限是最大的 2、static 代表主函数随着类的加载就已经存在了 3、void 代表主函数没有具体的返回值 4、main main不是java中的关键字,它是一个特殊的单词,它能被JVM(java虚拟机)所识别 5、String[] args 函数的参数,参数类型是一个字符...

1. 一个Java应用程序必须且只有一个类含有 main___ 方法.
1. 一个Java应用程序必须且只有一个类含有 main___ 方法。2. 构造方法 是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并不返回任何数据类型。3. 子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量。4. 在Java语言中多态性体现在由方法重载实现的静...

关于java中的main方法
首先,main方法不能直接调用非静态方法,要调用非静态方法只能通过new实现,new后会调用类的构造器,所以main调用非静态方法那么就一定会调用其构造器;其次,构造器不属于静态的块,类的加载顺序中静态的会先加载,同样静态的会按顺序加载,你可以试试你就会发现静态的在构造器前或后都会比构造器先加载 最后...

java多线程在main函数里start()与在构造方法里start()有何区别_百度知 ...
在main里面的start()是启动类里面的 run()方法。。构造方法里面的start()是调用start()方法。

java中的成员方法和构造方法有什么区别
构造方法没有返回值,方法名和类名一样,其作用是用于在NEW一个类的时候,会总先调用这个类的构造方法,构造方法内部可以作一些变量的初始化或在创建这个类时必须调用的一些方法和运算,他是不用特意去调用的方法,会随着类的创建而自动去调用 例如:我们需要做一个i+j的运算,在这期间我们用到了构造...

java程序的main方法必须写在类里面吗
这个程序的方法必须写在类里面。main方法是程序的入口点,而类是Java的基本构造单位。将main方法放在类里面可以方便地组织和管理程序代码,并且符合Java的面向对象编程思想。Java程序需要一个类作为主类,包含main方法,以便JVM能够找到程序的入口点并执行程序。

求大神用java程序回答。
但因为我这里不考虑小数点才用的int型,所以如果想程序更加的准确,应该把int改为double并设置一个保留小数点的方法 创建运算符(+-*\/)的获取方法以及属性的输出方法 定义一个main方法,输出问题和让用户输入答案并判断对错 定义一个获取算术题的方法 运行得出结果:

相似回答