《21天学通Java(第6版)》—— 1.7 问与答

简介: 有些面向对象编程语言确实将它们叫做函数(C++将它们叫做成员函数)。其他一些面向对象语言将位于类(对象)内、外的函数区分开来,因为在这些语言中,使用不同的术语对理解每个函数的工作原理至关重要。因为其他语言有这种区别,同时术语“方法”在面向对象技术中很常用,所以Java也使用这个术语。

本节书摘来异步社区《21天学通Java(第6版)》一书中的第1章,第1.7节,作者:【美】Rogers Cadenhead,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 问与答

21天学通Java(第6版)
问:实际上,方法是在类中定义的函数。既然它们无论从外观和行为方面都类似于函数,为什么不将它们叫做函数呢?

答:有些面向对象编程语言确实将它们叫做函数(C++将它们叫做成员函数)。其他一些面向对象语言将位于类(对象)内、外的函数区分开来,因为在这些语言中,使用不同的术语对理解每个函数的工作原理至关重要。因为其他语言有这种区别,同时术语“方法”在面向对象技术中很常用,所以Java也使用这个术语。

问:实例变量和实例方法同类变量和类方法之间有何区别?

答:在Java程序中,您所做的几乎每项工作涉及的都是实例(也叫对象)而不是类。然而,对于有些行为和属性,存储在类本身中要比存储在对象中更合理。例如,java.lang包中的Math类包含一个名为PI的变量,它存储的是兀的近似值。这个值是不变的,因此这个类的不同对象没有必要保留自己的PI变量。另一方面,每个String对象都包含了一个length( )方法,它计算该String中的字符数。这个值对于String类的每个对象都可能不同,因而它必须是实例方法。

类变量始终驻留在内存中,直到Java程序结束运行,因此应慎用类变量。如果类变量指向一个对象,该对象也将始终驻留在内存中。这是一种导致程序占据太多内存且运行缓慢的常见问题。

问:如果在Java类中导入整个包,是否会增大这个类编译后的尺寸?

答:不会。术语“导入”容易让人误解。关键字import不会将指定类或包的字节码加入到当前创建的类中,而只是使得在一个类中引用另一个类更容易。

通过导入,在Java语句中引用类时,可使用简短的名称,这是导入的唯一目的。在代码中,如果总是必须指定完整的类名,如javax.swing.JButton和java.awt.Graphics,而不是JButton和Graphics,那将非常繁琐。

相关文章
|
Java
《Java入门经典(第7版)》—— 6.9 问与答
答:一对双引号之间没有任何文本就表示空字符串。下面的代码创建一个名为georgeSays的字符串变量,并将其值设置为空:
1056 0
|
Java 程序员 编译器
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.10 问与答
问:在Java程序的每行中插入适当数量的空格有多重要? 答:对计算机而言,这完全不重要。空格无疑会让阅读计算机程序的人受益,但Java编译器对空格的数量并不关心。在编写Saluton程序时,你也可以不使用空格或Tab键进行缩进,而且它也能成功编译。
1330 0
|
Java C++
《21天学通Java(第7版)》—— 2.8 问与答
从逻辑上说,您可能认为该变量将被转换为与之接近的更大类型,但情况并非如此。相反,将发生溢出,即从一个极端回到另一个极端。例如,byte变量的值从127(可接受的值)变到128(不可接受)时,将转到最小的可接受值,即−128,然后往上增大。
1574 0
|
存储 Java C++
《21天学通Java(第7版)》—— 1.7 问与答
有些面向对象编程语言确实将它们叫做函数(C++将它们叫做成员函数)。其他一些面向对象语言将位于类(对象)内、外的函数区分开来,因为在这些语言中,使用不同的术语对理解每个函数的工作原理至关重要。因为其他语言有这种区别,同时术语“方法”在面向对象技术中很常用,所以Java也使用这个术语。
1273 0
|
1天前
|
存储 设计模式 并行计算
CopyOnWriteArrayList:深入理解Java中的线程安全List原理和应用
CopyOnWriteArrayList:深入理解Java中的线程安全List原理和应用
7 0
|
1天前
|
Java 测试技术 开发者
Java并发编程:深入理解线程池
本文将带领读者深入了解Java中的线程池,探索其内部机制、使用场景以及如何有效地利用线程池来提高程序的性能和可维护性。我们将通过实例演示如何创建和配置线程池,并讨论常见的并发模式和最佳实践。文章旨在为开发者提供实用的线程池应用知识,帮助他们在面对多线程编程挑战时,能够设计出更加高效和稳定的系统。
|
1天前
|
安全 Java 开发者
如何在Java中实现线程安全的单例模式
如何在Java中实现线程安全的单例模式
|
2天前
|
缓存 监控 安全
深入理解Java中的线程池和并发编程
深入理解Java中的线程池和并发编程
|
2天前
|
设计模式 安全 Java
如何在Java中实现线程安全的单例模式
如何在Java中实现线程安全的单例模式