Java 类的特性2

类属性、类方法的设计思想

  • 类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为类属性。相应的方法设置为类方法。
  • 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用

关键字–static

1、使用范围:

  • 在Java类中,可用static修饰属性、方法、代码块、内部类

2、被修饰后的成员具备以下特点:

  • 随着类的加载而加载
  • 优先于对象存在
  • 修饰的成员,被所有对象所共享
  • 访问权限允许时,可不创建对象,直接被类调用

类变量(class Variable)

类变量(类属性)由该类的所有实例共享

public class Person {private int id;public static int total = 0;public Person() {total++;id = total;}}

类方法(class Method)

  1. 没有对象的实例时,可以用类名.方法名()的形式访问由static标记的类方法。
  2. 在static方法内部只能访问类的static属性,不能访问类的非static属性。
  3. 因为不需要实例就可以访问static方法,因此static方法内部不能有this。(也不能有super? YES!)
  4. l重载的方法需要同时为static的或者非static的。

Java 类的特性2相关推荐

  1. Java 类的特性1

    Java 类的特性1 继承 1.为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 2.此处的多个类称为子类,单独的 ...

  2. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法

    面向对象的三大特征:继承.封装.多态 继承的实现 继承让我们更加容易实现类的扩展.子类是父类的扩展 使用extends实现继承 package cn.sxt;public class Test {pu ...

  3. Java 16 新特性:record类

    以前我们定义类都是用class关键词,但从Java 16开始,我们将多一个关键词record,它也可以用来定义类.record关键词的引入,主要是为了提供一种更为简洁.紧凑的final类的定义方式. ...

  4. Java 8新特性:Optional类

    Java 8新特性:Optional类 在上一篇介绍Stream流式数据处理的文章中提到了Optional类,这是Java 8新增的一个类,用以解决程序中常见的NullPointerException ...

  5. 中南林业科技大学Java实验报告六:类的特性

    实验6:类的特性 6.1 实验目的 掌握类的私有成员和共有成员的定义: 掌握类的私有成员的访问方法: 理解类的构造方法的作用和执行过程: 掌握类的构造方法的定义和关键词this的使用: 类的静态变量: ...

  6. java11 是长期支持_这里有你不得不了解的Java 11版本特性说明

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  7. java类为什么要建两个class_ClassLoader的几个概念、类和对象的解释

    首先,转载一篇文章,个人认为是看到过了讲得最清楚的 XD 当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | exten ...

  8. Java这个高级特性-泛型,很多人还没用过!

    点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...

  9. Java这个高级特性,很多人还没用过!

    点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...

最新文章

  1. linux系统下文件命令详解
  2. 自定义控件的getChildCount
  3. 在moss页面出错时,显示详细的错误信息.
  4. 利用计算机或图形计算器在,图形计算器在函数教学中的应用
  5. python中调用万年历_python 打印万年历
  6. 怎样在计算机中创建d盘,我在电脑D盘内新建了一个文件夹,怎么才能给 – 手机爱问...
  7. c++ 类的sizeof
  8. Pyqt+QRcode 生成 识别 二维码
  9. VS2017如何创建c语言项目
  10. Python项目实战:抓取全网王者荣耀皮肤,收藏最好看的
  11. ifconfig安装
  12. python zip(*zipped)的疑问
  13. 第15周项目二—洗牌(1)
  14. 块存储、文件存储、对象存储及内容分发CDN
  15. MySQL--eq_range_index_dive_limit参数学习
  16. 打印skb内容的一小段代码
  17. 如何自学Axure(0基础入门教程)
  18. 15分钟内制作自己的文本编辑器:Yandex的实践
  19. 杨百万:调整后最值得关注的10大金股
  20. 海康威视NVR(网络硬盘录像机)回放功能 不依靠sdk实现

热门文章

  1. python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
  2. mysql深度解析_百万级数据下的mysql深度解析
  3. java connection 共享_java 使用HttpURLConnection发送数据简单实例
  4. Python学习(变量与字符串)
  5. Python 常见的内置模块
  6. bzoj4919 [Lydsy1706月赛]大根堆
  7. 【openssl】利用openssl完成X509证书和PFX证书之间的互转
  8. 为Android应用程序添加社会化分享功能
  9. Winodws Socket I/O模型的整理
  10. 简单的动画函数封装(2)