在定义类时,经常需要抽象出它的属性,并定义在类的主体中。下面就来介绍与属性相关的内容。

常量属性

在类中定义的属性有常量属性和成员属性之分。常量属性用final关键字修饰,常量只能赋值一次,在程序中不能修改它的值。一般来说,在类中定义的常量属性用大写字母命名。

例如:

成员属性

成员属性是抽象出来的类属性,成员属性不能直接被外部访问或修改,需要通过get和set方法来访问或修改属性值,成员属性一般用private关键字修改,表明为私有成员,禁止外部直接访问。

成员属性的作用范围为整个类文件,作用范围就是成员属性的有效工作范围,在整个类文件中,成员属性都可以被访问和使用。

例如:

Fruits类有三个成员属性,分别是water(汁液含量)、sugar(糖分含量)、fragrance(芳香度),这三个属性被修饰为private,禁止外部访问和修改。外部如果要访问和修改类属性,需要调用类提供的get和set方法,如getWater()方法可以获取water属性的值,setWater(String water)方法可以设置water属性的值,另外两个属性,依次类推。

对于成员属性,Java提供了三种初始化方式。

(1)使用默认值初始化

Java为声明的成员属性或变量提供了默认初始化机制,当声明成员属性或变量时即使没有显式赋值,Java也会为以下类型的成员属性或变量提供默认值:

(2)使用显式值初始化

声明成员属性的同时,进行赋值。

例如:

(3)使用类构造方法初始化

通过类构造方法来初始化属性(类构造方法后面介绍),可参考本节的Fruits类构造方法。

成员变量

变量前面已经介绍过了,变量的主要作用是存储程序运行过程中的临时数据,程序退出后,变量存储的内容不再存在。在类体中声明的变量称为成员变量。

成员变量的作用范围为整个类文件,在整个类文件中,成员变量都可以被访问和使用。

例如:

与成员属性不同的是,成员变量无需提供get和set方法。成员变量一般用于类内部存储临时数据使用。

局部变量

在类方法体中声明的变量为局部变量。

局部变量的作用范围为方法体,在方法体中,局部变量可以被访问和使用,局部变量在方法体外无效,不能被访问和使用。

例如:

其中,在showArea()方法中声明的r为局部变量,局部变量必须要声明并赋值后才能使用。

■ 知识点拨

Java类的成员属性和成员变量有所区别,成员属性是类所表述事物的共同特征,成员属性不能被外部直接访问和修改,必须通过类提供的get和set方法访问和修改成员属性。成员变量一般用于类内部存储临时数据使用,不需要提供get和set方法。

■ 思考与练习

请说明类成员属性、成员变量、局部变量的区别。

java 类 属性数量_跟我学java编程—Java类的属性与成员变量相关推荐

  1. java数据库的量级_程序员学Python还是Java?分析了8张图后得出这个结论

    Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...

  2. 找工作java还是python有用_你觉得学 Python 还是 Java 更好找工作?

    不管现在大家如何追捧和吹嘘Python,培训机构怎么勾搭,广告怎么打,你打开招聘网站,在相同的搜索条件下搜下"Python"和"Java"两个关键词,认真的查看 ...

  3. 定义一个名为Rectangle的类表示矩形,其中含有length和width两个double型的成员变量表示长和宽。要求为每一个变量定义访问方法和修改方法......

    标题定义一个名为Rectangle的类表示矩形,其中含有length和width两个double型的成员变量表示长和宽.要求为每一个变量定义访问方法和修改方法,定义求矩形周长的方法getPerimet ...

  4. java 注解 属性 类型_跟光磊学Java开发-Java注解

    注解概述 注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记以后,java编译器.开发工具或者其他的框架就可以通过反射来获取类以及类的成员上的注解,然后通过作相应的处 ...

  5. 小白学习python好还是java好_小白应该学Python还是Java?

    Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...

  6. java 日志_跟着Tomcat学编码:Java 原生日志框架分析

    背景 调试 Tomcat 源码过程中,控制台日志打印的都是 INFO 级别的日志,于是就想修改下日志级别,打印 Digester 类的 DEBUG 级别的日志,便于观察 Digester 类解析 se ...

  7. java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!

    程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 10 分钟. 来源:https://yq.aliyun.com/articles/662001 在 Java 程序中,性能问题的大部 ...

  8. java 进程 线程数量_如何查询一个进程下面的线程数(进程和线程区别)

    在平时工作中,经常会听到应用程序的进程和线程的概念,那么它们两个之间究竟有什么关系或不同呢? 一.对比进程和线程 1)两者概念 -  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程 ...

  9. java声明变量简单程序_零基础学编程之java变量

    01使用变量的意义 变量相当于自然语言中的代词,代词具有代替.指示作用,比如每个人的姓名,代表的就是真实的一个个体.如果没有名字,我们在交流的时候,讨论某一个人就需要说:身高1米75,单眼皮,双下巴的 ...

最新文章

  1. 织梦直接写php标签,非常实用的织梦dede所有标签调用方法大全 .
  2. C/C++程序基础 (八)数据结构
  3. MySQL每秒57万的写入,带你飞~
  4. NOIP2011 提高组 Day1
  5. php 光速,PHP的光速教程
  6. java怎么将加载图片消除_Java中加载图片的方法
  7. java filesystem_Java FileSystem isReadOnly()用法及代码示例
  8. php mongodb 子查询,MongoDB数组子查询elemMatch
  9. 运用循环判断语句和列表的购物车程序
  10. ppt中流程图旁边怎么添加_辅食中的黑芝麻酱怎么添加呢?
  11. java从文件读入个人信息_Nacos 作为配置中心 读取Properties配置信息
  12. Python超级码力在线编程大赛初赛题解
  13. Altium Designer封装库的绘制
  14. 软件-浏览器-GoogleChrome:Google Chrome
  15. linux多点触控软件测试,视频:Linux系统也可支持多点触控操作
  16. python getattrribute_Python学习——面向对象高级之反射
  17. java jar 最大内存大小_Java运行Jar包内存配置的操作
  18. about 日问输入法
  19. android 微信高仿,Android 高仿微信发朋友圈浏览图片效果(转)
  20. [oeasy]python0125_汉字打印机_点阵式打字机_汉字字形码

热门文章

  1. 对数周期天线hfss建模_HFSS也有金手指,FADDM招式详解
  2. html页面内分栏显示不全,怎么消除Word文档分栏后栏间不平衡现象
  3. android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...
  4. android 机顶盒 view 焦点,AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案...
  5. java加锁多线程改为单线程_GUI为什么不设计为多线程(用户事件和底层事件的流程是相反的,每层都加锁效率太低,共用一把锁那就是单线程)...
  6. setScaledContents的看法
  7. 三个等价c语言表达式,C语言习题综合(20页)-原创力文档
  8. db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
  9. 比特协议是骗局吗_山寨币也玩收割,“BTG比特黄金”挖矿骗局大揭秘
  10. 计算机一级资料书推荐,推荐版 全国计算机一级考试试题【史上最全面的资料,不看你就亏!】.doc...