自学Java系列 笔记2 高级类特性1
关键字static(静态的)
在Java类中声明变量、方法和内部类时,可使用关键字static做为修饰符。
static标记的变量或方法由整个类(所有实例)共享,如访问控制权限允许,可不必创建该类对象而直接用类名加‘.’调用。
static成员也称类成员或静态成员,如:类变量、类方法、静态方法等
总结:
1.若需要一个类的多个对象共享一个变量,则该变量需要使用static 修饰
2.因为static 修饰的变量为类的所有实例所共享,所以 static 成员不属于某个类的实例,而属于整个类,所以在访问权限允许的情况下,可以使用“类名.”直接访问静态成员。
3.注意:在static方法内部只能访问类的static属性,不能访问类的非static属性。而在非static方法中可以直接来访问类的static属性
4.因为不需要实例就可以访问static方法,因此static方法内部不能有this,(也不能有super )
5.静态初始化指 对类的静态属性进行初始化。
5.1 不应该在构造器中对静态成员进行初始化:因为静态成员不因类的实例而改变
5.2静态代码块:使用 static 修饰的代码块,在类被加载时执行一次,且执行一次,可以在静态代码块中对静态成员变量进行初始化,先于非静态代码块和构造器执行
5.3 非静态代码块:先于构造器执行,每创建一个对象都会执行一次
静态初始化
1、一个类中可以使用不包含在任何方法体中的静态代码块(static block ),当类被载入时,静态代码块被执行,且只被执行一次,静态块经常用来进行类属性的初始化。
2、static块通常用于初始化static (类)属性
class Person {
publicstatic int total;
static{
total = 100;//为total赋初值
}
……//其它属性或方法声明
}
类方法(classMethod)
1.在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。
2.静态方法不能以任何方式引用this和super关键字。与上面的道理一样,因为静态方法在使用前不用创建任何实例对象,当静态方法被调用时,this所引用的对象根本就没有产生。
3.main() 方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main()方法中,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员,这种情况,我们在以后的例子中会多次碰到
类属性、类方法的设计思想
1.类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为类属性。相应的方法设置为类方法。
2. 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用
自学Java系列 笔记2 高级类特性1相关推荐
- Java系列笔记(1) - Java 类加载与初始化
2019独角兽企业重金招聘Python工程师标准>>> 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如 ...
- Java系列笔记(4) - JVM监控与调优【转】
Java系列笔记(4) - JVM监控与调优[转] 目录 参数设置 收集器搭配 启动内存分配 监控工具和方法 调优方法 调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也 ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- 自学java基础笔记
java基础教程 基础字符 public 公共的 class 类 static 静态的 void 无返回类型 main 主要的 String 字符串 args 参数 System 系统的 out 输 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- 【Java 系列笔记】语法基础 + Spring + Spring MVC + SpringBoot + 数据结构
Java 强化笔记目录 Java 语言基础 Java 架构师体系课程 一些课程 前端笔记:前端学习笔记 Java 语言基础 回头补基础(此基础非小白)系列,学校教的其实真的就是一些皮毛而已,怕是连门都 ...
- Java学习笔记Day06 工具类及常用算法
第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...
- 自学java核心技术笔记(康师傅)
java初级笔记 文章目录 java初级笔记 第一章 Java技术简介 一.Java的性质 面向对象 可移植性 动态性 二.关于对Java常见误解的解释 1.Java是HTML的拓展 2.Java是专 ...
- Java技术笔记1:类与对象实例之系统常用类
待我君临天下,结发与蕊可好.@夏瑾墨 一直在反思最近的时间安排,知识没有总结和积累很容易发生遗忘,如果要让自己在短期内能有大的提升,那就需要每天的知识流输入,减去你生活中看起来也是重要的东西,然而性命 ...
最新文章
- RabbitMQ错误检查
- ICMP隧道工具ptunnel
- 网络推广是做什么的教你在网站优化中正确处理死链的技巧!
- 2013手机App发展趋势预测:遇冷和洗牌
- 网站加速和服务器加速区别,cdn加速与不加速区别
- ios7 苹果原生二维码扫描(和微信类似)
- fputc会覆盖吗_蔬菜覆盖地膜有什么好处?选择什么膜好?
- 云计算(1)---基础知识
- SpringMVC实现list表单(六)
- 无人驾驶路径规划(一)全局路径规划 - RRT算法原理及实现
- 默认主页被篡改为360导航如何解决!
- EmmyLua的安装与使用
- 常用媒体查询以及手机横竖屏监听
- Unity中制作图片字体
- ffmpeg(六)视频缩放及像素格式转换
- 外酥里嫩的锅包肉做法
- js:简单的盒子碰撞
- 电子琴节奏包制作_MIDI音乐制作基础必备
- 带exp在线计算机计算器使用,电脑系统自带科学计算器使用方法
- 浏览器被万恶的hao123锁定主页