个人通俗理解:

1、final:首先被final修饰的变量就自动变成的不能被修改的常量了。被修饰的类会自动变成太监类,只能有父类,不能有子类;被修饰的方法也不能被子类重写了;被修饰的引用变量值也不能更改了地址值了;但在修饰成员变量前必须赋值(可以使用构造方法,因为构造方法时初始化的,最早执行的)。

2、static:可以理解为static是用于将对象或者方法中的相同的东西提取出来进行静态下,在定义类的时候一并定义了,需要注意的是:它是属于类的,不是某个对象的,是早于对象存在的,存在在静态区的(不在堆栈中)。在一个类中,静态方法只能访问静态方法,但是可以被普通方法访问(因为普通方法肯定在其后面进行创建的)。进行调用的时候因为其属于类,所以最好用类名来调用。

3、匿名对象:

顾名思义就是没有定义具体的对象(变量名),只是把地址值给某个变量,算是一种节省代码。

(理解上也就这些了,其他的基本上都是需要记忆的了)

一、final关键字:

1、概念:

  final的意思是最终,不可变。它是个修饰符,用来修饰类、类的成员及局部变量;不能修饰构造方法。

2、特点:

①、final修饰符不可以被继承,但是可以继承其他类;

②、final修饰的方法不可以被子类重写,但是父类中没有被final修饰的方法可以被子类重写,并且可以加final;

③、final修饰的变量为常量,这些变量只能赋值一次,且终身不变;

④、引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改;

⑤、修饰成员变量,需要在创建对象前赋值,否则报错。(当没有显式赋值时,多个构造方法的均需要为其赋值。)可以在创建对象时调用的构造方法中,为变量N赋值。

二、static关键字:

1、概念:

static是静态修饰符,一般用来修饰类中的成员。

2、特点:

①、被static修饰的成员变量属于类,不属于这个类的某个对象。(也就是说,多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值跟着改变,即多个对象共享同一个static成员变量)

②、被static修饰的成员可以并且建议通过类名直接访问。

访问静态成员的格式:

类名.静态成员变量名

类名.静态成员方法名(参数)

3、注意事项:

①、静态内容是优先于对象存在,只能访问静态,不能使用this/super(this 是本来对象,super是父类对象)。静态修饰的内容存于静态区。

②、 同一个类中,静态成员只能访问静态成员,普通的可以访问静态的。

③、main方法为静态方法仅仅为程序执行入口,它不属于任何一个对象,可以定义在任意类中。

④、多态调用方法中,编译看=左边,父类有,编译成功,父类没有,编译失败

运行,静态方法,运行父类中的静态方法,

运行,非静态方法,运行子类的重写方法

成员变量,编译运行全是父类

4、定义静态常量:

通常使用public static final修饰的变量来完成定义。此时变量名用全部大写,多个单词使用下划线连接。

public static final 数据类型 变量名 = 值;

当我们想使用类的静态成员时,不需要创建对象,直接使用类名来访问即可。

5、注意事项:

接口中的每个成员变量都默认使用public static final修饰。

所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问。

三、匿名对象:

1、概念:

匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。

2、特点:

①、创建匿名对象直接使用,没有变量名。

②、匿名对象在没有指定其引用变量时,只能使用一次。

③、匿名对象可以作为方法接收的参数、方法返回值使用。

Java之final、static关键字及匿名对象的更多相关文章

  1. Java基础super关键字、final关键字、static关键字、匿名对象整理

    super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...

  2. 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等

    今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...

  3. Java final static关键字

    Java中的final关键字 使用 final 关键字做标识有 “最终的” 含义. final 可以修饰 类.方法.属性.变量 final 修饰类: 则该类不允许被继承 final 修饰方法:则该方法 ...

  4. Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  5. 再议Java中的static关键字

    再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:<Java中的static关键字解析>. 今天我们再来谈一谈st ...

  6. (转)Java中的static关键字解析

    转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: &q ...

  7. 关于Java中的static关键字

    Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较 ...

  8. Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  9. (转)Java中的static关键字解析

    转自http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “sta ...

随机推荐

  1. IOS造成卡顿的主要原因

    1. cellForRowAtIndexPath, 单元格视图重用, 注意尽量让所有视图重用, 只根据单元格row和section的不容更换不同的数据, 而不是每次都生成新的单元格, 这是程序奔溃的前 ...

  2. Bayesian 网络分类算法

    1:贝叶斯网络的定义和性质 一个贝叶斯网络定义包括一个有向无环图(DAG)和一个条件概率表集合.DAG中每一个节点表示一个随机变量,可以是可直接观测变量或隐藏变量,而有向边表示随机变量间的条件依赖:条 ...

  3. Linux编写Shell脚本入门

    一. 一般编写shell需要分3个步骤 1. 新建一个脚本文件,并编写程序 vi hello.sh #!/bin/bash #注释 #输出 printf '%s\n' "Hello Worl ...

  4. Flutter实战视频-移动电商-26.列表页_使用Provide控制子类-2

    26.列表页_使用Provide控制子类-2 主要实现功能,点击一级分类,二级分类跟着变.这里主要用哦我们的provide 新建provide provide文件夹下创建:child_category ...

  5. 小白使用Web Deploy在vs2015中发布到iis遇到的问题及操作流程

    整体流程详细参照:http://www.cnblogs.com/potential/p/3751426.html 问题1.未能连接到远程计算机,请确保在远程计算机上安装了 Web Deploy 并启动 ...

  6. laravel 视图调用方法并传递参数

    视图层 route 中文 路由 <a href="{{route('cc',array('id'=>11111))}}">446454</a> 路由层 ...

  7. timewrap 算法

    何为延迟补偿?如何进行坐标差值?B客户端屏幕上A已经跑到东边了,但是收到服务器说"A正在西边往北跑",B到底该何去何从?我若干年前的一个实现版本,将简明扼要的解决这个问题: 影子跟 ...

  8. TFS 无法找到新加的Windows用户

    Windows 用户加入后,无法在TFS中的"浏览"中找到(只有已经加入TFS的Windows用户显示出来) 其实这时候只要直接输入 用户名 然后点击"保存更改" ...

  9. uoj#268. 【清华集训2016】数据交互(动态dp+堆)

    传送门 动态dp我好像还真没咋做过--通过一个上午的努力光荣的获得了所有AC的人里面的倒数rk3 首先有一个我一点也不觉得显然的定理,如果两条路径相交,那么一定有一条路径的\(LCA\)在另一条路径上 ...

  10. linux命令行挂载NTFS文件系统的移动硬盘

    环境 ubuntu 12.04 桌面版 由于我的ubuntu 是安装在vmware 上,如果接入移动硬盘后,它没有办法自动识别ntfs 格式的文件系统,导致mount 盘失败 从网上找到一个方法 首先 ...