定义一个类NarcissisticNumber,其中有一个非静态方法public boolean isNarcissisticNumber(int num),用于判断num是否为水仙花数(返回true表示“是”,返回false表示“不是”)。
水仙花数(Narcissistic Number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
编写测试类,在程序主入口main()方法中创建一个NarcissisticNumber对象,调用isNarcissisticNumber方法并输出(测试数据自定,也可以由键盘输入)。
思考:静态方法与非静态方法使用起来有什么区别?
1.静态方法可以直接通过类名调用,不需要实例化对象,而非静态方法调用必须实例化对象
2.静态方法只能访问静态成员变量和其他静态方法,而非静态方法可以访问所有的成员变量和方法(包括静态的和非静态的)
总的来说,静态方法具有全局调用性、一成不变的特点,主要应用于工具方法;而非静态方法具有灵活性、可适应变化的特点,主要应用于面向对象编程中的封装和行为定义。
静态方法可以直接调用,类名调用和对象调用。(类名.方法名 / 对象名.方法名)
但是非静态方法只能通过对象调用。(对象名.方法名)
静态方法的生命周期跟相应的类一样长,静态方法和静态变量会随着类的定义而被分配和装载入内存中。一直到线程结束,静态属性和方法才会被销毁。(也就是静态方法属于类)
非静态方法的生命周期和类的实例化对象一样长,只有当类实例化了一个对象,非静态方法才会被创建,而当这个对象被销毁时,非静态方法也马上被销毁。(也就是非静态方法属于对象)