本节书摘来异步社区《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,那将非常繁琐。

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

  1. 21天学通java第7版pdf_21天学通Java.第7版.pdf

    <21天学通Java(第7版)>是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习:同时全面涵盖了Java 8这一新标准以及与And ...

  2. 《21天学通Java(第7版)》—— 第2章 Java编程基础 2.1 语句和表达式

    本节书摘来异步社区<21天学通Java(第7版)>一书中的第2章,第2.1节,作者: [美]Rogers Cadenhead(罗格斯 卡登海德),更多章节内容可以访问云栖社区"异 ...

  3. 《21天学通Java(第6版)》—— 1.4 属性和行为

    本节书摘来异步社区<21天学通Java(第6版)>一书中的第1章,第1.4节,作者:[美]Rogers Cadenhead,更多章节内容可以访问云栖社区"异步社区"公众 ...

  4. 21天学通Java学习笔记-Day01

    21天学通java 中文第6版 下载地址:点击打开链接 Day01: 命令行查看和设置classpath: 查看:echo %classpath% 设置:set classpath = %classp ...

  5. 21day学通python epub_21天就让你掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  6. ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  7. 21天学通Java学习笔记-Day12(MYsql-JDBC)

    JDBC MYQL 基础: 用命令行进入MYSQL:shell > mysql -h host(主机) -u user(用户名) -p 回车,等待输入密码 退出MYSQL:mysql >  ...

  8. 21天学通java 3_《21天学通Java》PDF 下载

    第一篇  基 础 篇 第1章  Java简介 1.1  Java的平台简介 1.2  安装工具包 1.3  程序开发过程 1.4  编码规范 1.5  HelloWorld:第一个Java程序 1.6 ...

  9. 21天学通Java学习笔记-Day04

    Day04: 静态数组是一组对象,每个元素都是一个对象,所以用 new 创建新的数组实例. class test{public static void main(String[]args){a[] a ...

  10. 21天学通Java学习笔记-Day02

    Day02: java 程序是由 类,对象 组成.对象和类是由 方法,变量组成.方法是由 语句,表达式 组成.表达式是由 运算符 组成. 3种变量: 实例变量:定义对象的属性. 类 变 量 : 定义类 ...

最新文章

  1. 如何創建一個自己的 Composer/Packagist 包 (PHP)
  2. Java的新项目学成在线笔记-day7(一)
  3. Docker笔记3 docker的数据管理
  4. kafka分区分配策略
  5. Java构建工具:Maven与Gradle的对比
  6. 《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式...
  7. 支持向量机(Support Vector Machine SVM)
  8. 8年项目总结:4个G,项目经理必备模板全汇总
  9. JavaScript 视频、图片转成Base64格式
  10. Genesys Business Continuity 部署
  11. html5首字母大小写,css中如何设置英文首字母大写
  12. 两个鸡蛋测试:从100层楼往下扔鸡蛋,求最坏情况下确认保证鸡蛋可以不破的最大楼层所需次数
  13. macos 输入法切换卡顿 macos monterey (已解决)
  14. js实现键盘数字输入
  15. 哔哩哔哩(B站)的前端之路
  16. 关于gif进度条的问题
  17. 普通人如何做到“我命由我不由天”
  18. 我的世界的‘’Herobrine‘’伪装指令(最新版)
  19. 简易在线留言板(上)——树洞留言板
  20. 《机械制造业智能工厂规划设计》——3.2 机械制造业智能工厂参考模型

热门文章

  1. 2022系统软件开发公司排行榜
  2. python 数据分析 电信_实例 | 教你用Python写一个电信客户流失预测模型
  3. java 生成32位字符串
  4. 凸集、凸函数、凸优化和凸二次规划
  5. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1.doc...
  6. 【AD18新手入门】从零开始制造自己的PCB
  7. 人工智能(AI)测试方法
  8. 堆排序-java实现
  9. 中英文国家名及手机号码前缀
  10. 市场主流单片机的介绍和选择指南