请教大家一个问题,刚接触JAVA,边学边练一下,
package test.aa;
import java.util.Date;
class Test
{
public Test() {
Date d = new Date();
System.out.println(d);
}
public static void main(String[] args)
{
Test t = new Test();
System.out.println("Hello lcrystal !");
}
}上面程序和下面程序执行的结果是一样的,区别在哪里呢?
为什么非要上面很复杂的过程呢?
package test.aa;
import java.util.Date;
class Test
{
public static void main(String[] args)
{
Date d = new Date();
System.out.println(d);
System.out.println("Hello lcrystal !");
}
}
上面2个程序有什么区别?
package test.aa;
import java.util.Date;
class Test
{
public Test() {
Date d = new Date();
System.out.println(d);
}
public static void main(String[] args)
{
Test t = new Test();
System.out.println("Hello lcrystal !");
}
}上面程序和下面程序执行的结果是一样的,区别在哪里呢?
为什么非要上面很复杂的过程呢?
package test.aa;
import java.util.Date;
class Test
{
public static void main(String[] args)
{
Date d = new Date();
System.out.println(d);
System.out.println("Hello lcrystal !");
}
}
上面2个程序有什么区别?
解决方案 »
- gef (draw2d) 中 flowLayout与borderLayout布局嵌套
- 求教
- AWT和SWING讨论
- 用JavaServerSocket开发多人联机棋牌游戏服务器端,大概能撑多少人?
- 如何让程序完全实时监测一个事件(如果不用循环)?
- 为什么JAVA有时候倒和所有包不起作用?如import java.io.*;不起作用,必须导入具体的类如:import java.io.InputStream;
- 一个测网络延迟和带宽的程序,发10M的数据有问题
- 怎么输出文件列表???/
- 关于转行的问题[讨论,没分,不好意思]
- 菜鸟求助!如何声明一个自定义位数的二进制数?
- 怎么用jsoup将网页中的正文提取成txt文本
- java运行时会栈溢出这是为什么啊
所谓构造函数通俗易懂就是:你想让这个类,一初始化(一被new出来)就有的东西。 举个简单的例子吧:比如你去KFC,你需要点套餐,那么,这时你需要找到服务员这个对象,
服务员内部就封装好了A,B,C套餐,换句话说,她一初始化就具备点套餐这个功能,而你只需要去找到这个对象就可以完成点套餐了,现在明白点了吧LZ,你可以理解为,我第一种是叫套餐A或B或C,而第二种就好比是,你单点:汉堡,可乐等,最终的结果是一样的,但是当然是直接点套餐省事了,而多个构造函数是以重载的形式存在的,就是说,ABC都叫套餐,但是里面食物(功能) 却不一样。
所谓重载就是方法名相同 套餐()
但是参数列表不同,比如参数的顺序,类型,个数等 (就是括号里的东西) >>这里就好比是套餐里的食物不一样但是又都叫套餐 方法重载跟返回值类型和修饰符无关
那么在执行时,你传给方法哪些参数,java虚拟机就会去找对应的方法执行(所以不用担心混乱)
Date d = new Date();
System.out.println(d);放在类的无参数构造函数里面实现了。 这样的效果是你在实例化这个Test类的时候就会执行这段代码,你客户端调用不是变简单了么? 一般来说,如果这是一个业务实现,当然最好是把这些写在类的方法中实现,然后客户端调用通过实例化类,再通过实例的方法调用。 这样才是面向对象。 全在main方法实现,那就是面向过程了。当然,面向对象没这么简单,这是最基本的。
Test3 t = new Test3();
程序中:
第一个放在构造方法里面的,是属于某个对象的。
第二个是放在main中的,是属于类的。
demo2是main方法中创建的