我刚开始学习JAVA
请教大家一个问题,刚接触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个程序有什么区别?
------解决方案--------------------呵呵 哥们 继续看视频吧,没有的话就给我要,,,
------解决方案--------------------
上面那个是创建了一个Test的构造函数,
所谓构造函数通俗易懂就是:你想让这个类,一初始化(一被new出来)就有的东西。
举个简单的例子吧:比如你去KFC,你需要点套餐,那么,这时你需要找到服务员这个对象,
服务员内部就封装好了A,B,C套餐,换句话说,她一初始化就具备点套餐这个功能,而你只需要去找到这个对象就可以完成点套餐了,现在明白点了吧LZ,你可以理解为,我第一种是叫套餐A或B或C,而第二种就好比是,你单点:汉堡,可乐等,最终的结果是一样的,但是当然是直接点套餐省事了,而多个构造函数是以重载的形式存在的,就是说,ABC都叫套餐,但是里面食物(功能) 却不一样。
所谓重载就是方法名相同 套餐()
但是参数列表不同,比如参数的顺序,类型,个数等 (就是括号里的东西) >>这里就好比是套餐里的食物不一样但是又都叫套餐
方法重载跟返回值类型和修饰符无关
那么在执行时,你传给方法哪些参数,java虚拟机就会去找对应的方法执行(所以不用担心混乱)
------解决方案--------------------
给LZ总结了一下比较书面的说法
对象一建立就会调用与之对应的构造函数。
构造函数的作用:可以用于给对象进行初始化。
构造函数的小细节:
当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。
当在类中自定义了构造函数后,默认的构造函数就没有了。
构造函数和一般函数在写法上有不同。
在运行上也有不同。
构造函数是在对象一建立就运行。给对象初始化。
而一般方法是对象调用才执行,是给对象添加对象具备的功能。
一个对象建立,构造函数只运行一次。
而一般方法可以被该对象调用多次。
什么时候定义构造函数呢?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
------解决方案--------------------呵呵,区别就是你把
Date d = new Date();
System.out.println(d);
放在类的无参数构造函数里面实现了。 这样的效果是你在实例化这个Test类的时候就会执行这段代码,你客户端调用不是变简单了么? 一般来说,如果这是一个业务实现,当然最好是把这些写在类的方法中实现,然后客户端调用通过实例化类,再通过实例的方法调用。 这样才是面向对象。 全在main方法实现,那就是面向过程了。当然,面向对象没这么简单,这是最基本的。