本篇介绍函数的定义,构造函数、finalize()函数、函数重载、可变参数等。
package com.example.javatest;
/**
* Author:W
* 函数
* 1.构造函数:对象创建时,自动调用默认调用,可以重载
* 2.finalize()函数:类似C++里析构函数,在对象销毁时调用
* 3.函数重载:名称相同,但返回值、参数类型、数量或顺序不一样的函数
* 4.可变参数函数:同类型的参数,但数量不明确的函数
*/
class Dog
{
public String name;
public int age;
//默认构造函数
public Dog()
{
System.out.println("狗对象创建(默认)");
}
//构造函数【函数重载】
public Dog(String name,int age)
{
this.name = name;
this.age = age;
System.out.println("狗对象:"+this.name+"创建");
}
//类似析构函数,对象销毁回收时调用
protected void finalize() throws java.lang.Throwable {
super.finalize();
System.out.println("狗对象 " + this.name + "被销毁");
}
//狗吃的东西(可变参数)
public void eat(String ...foodTypes)
{
if (foodTypes.length>0)
{
for (int i=0;i<foodTypes.length;i++)
{
System.out.println("狗能吃的东西:"+foodTypes[i]);
}
}
}
}
public class MainTest {
public static void main(String[] args)
{
Dog dog1 = new Dog("XiaoHuang",3);
dog1.eat("Apple");
dog1.eat("Meat","Fish");
dog1 = null;
System.gc();
}
}
运行结果如下: