版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!

恰饭广告

static:(静态修饰符)面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的成员变量一般称作类成员变量,而static修饰的方法一般称作类方法。

分类:

1、static变量,也叫作静态变量或者类变量。另一种是没有被static修饰的变量,叫实例变量。

2、static方法,也叫作静态方法或者类方法,静态方法中不能定义静态变量,实例方法也不能。

3、static代码块,静态块中,可以访问静态变量,调用静态方法。

注意事项:

1、static不依附于任何对象,就没有this方法。

2、static方法不可以调用非static方法,但非static方法可以调用static方法。

3、被static修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

4、static方法不能被重写,当子类与父类中同时存在一样的static方法时,默认调用的是父类的静态方法,子类的静态方法就被隐藏了。

5、static块一般用于初始化类中的静态变量。在先执行static修饰的内容基础上,遵循先定义先执行的原则。

6、如果变量或方法经常被调用的话,就使用static修饰。否则少用,避免造成内存泄漏。

静态变量的代码例子:

public class Test{

static int a=1; //静态变量

int b=2; //实例变量

public static void main(String[] args){

System.out.println(Test.a); //System.out.print(a);

System.out.println(b); //直接输出变量b会报错

Test t=new Test(); //创建实例对象

System.out.println(t.b); //对象调用变量

}

}

静态方法的代码例子:

public class Test{

static int a=1; //静态变量

int b=2; //实例变量

static void A(){ //静态方法

B(); //报错,静态方法不可以调用非静态方法

System.out.println(Test.a); //System.out.print(a);

}

void B(){ //非静态方法

Test.A(); //A();非静态方法可以调用静态方法

System.out.println(b);

System.out.println(Test.a); //System.out.print(a);

}

public static void main(String[] args){

Test.A(); //A();

B(); //报错,非静态方法需要通过实例对象进行调用

Test t=new Test();

t.B();

}

}

/*

* 是否能被重写

*/

class StaticSon extends Test{ //子类继承父类

void A(){ //报错,父类的静态方法不能被重写

/*......*/

}

static void A(){ //这是子类的静态方法,严格来说并不是重写父类的静态方法

}

}

静态块的代码例子:

public class Test{

int c=3;

static int a=1;

static int b=2;

static{

a=10;

b=20;

c=30; //报错,静态块里的变量必须是静态变量

System.out.println(a+b);

}

public static void main(String[] args){

Test t=new Test();

System.out.println(t.c); //先执行静态变量,再执行实例变量

}

}

final:理解为不可变的。

注意事项:

1、final与static经常放在一起使用。

2、final修饰的变量,只能进行一次赋值操作。

3、final方法不能被重写,但可以被重载。

4、final类不能被继承。

5、final和abstract这两个关键字是相反的,不可能同时修饰类。因为final不能被重写,而abstract又必须重写。

6、final关键字不同于finally关键字,后者用于异常处理。

7、大多数情况下,并不用final来修饰方法和类,因为其可拓展性不好。

8、final在一定的环境下使用,可以提高程序的运行性能,优化程序的结构。

final变量与final类的代码例子:

public final class Test{

final static int a=1;

static {

a=10; //报错,只能进行一次赋值操作

}

}

class FinalSon extends Test{ //报错,final类不能被继承

}

final方法的代码例子:

public class Test{

final static int a=1;

final void A(){ //final方法

System.out.println(a);

}

}

class FinalTest extends Test{

void A(){ //报错,final方法不能被重写

System.out.println("err");

}

}

final abstract class FinalErr{ //final和abstract不能同时存在

/*......*/

}

让我恰个饭吧.ヘ( ̄ω ̄ヘ)

支付宝 ——————- 微信

恰饭广告

java static final关键字_Java的static与final关键字相关推荐

  1. java中static什么意思_java中static什么意思

    java中,static表示"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,或者进行静态导包.static的特点:1.随着类的加载而被加载:2.优先于 ...

  2. cal java中的用法_Java中static用法

    Java中static用法 转自 http://blog.pfan.cn/sword2008/13772.html 一.static 请先看下面这段程序: public class Hello{ pu ...

  3. java static 块 时机_java的static块执行时机

    之前一直认为static块是在class load的时候执行,今天在验证Spring初始化Context loader的时候,发现bean的static块并没有执行. Class A{ static{ ...

  4. java静态变量特点_Java中static的特点

    前两天面试时被问到静态的特点,当时回答地不是很好,现在来总结一下 在了解某样东西的时候我们通常会从它是什么,为什么,和怎么样在三方面来衡量,对于java中的static,我们也这样讨论下,要明确以下几 ...

  5. java中static什么意思_Java中static的含义和用法

    static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享区; 2.被static修饰后的成员变量只有一份! 3.当成员被static修饰之后, ...

  6. java static变量销毁_JAVA里static 变量在程序执行结束后是否被消毁

    static变量是属于类的,一般情况下,程序执行结束后,类所占空间会被回收, static变量自然就被销毁了. 如下所示: public class StaticVar{ public static ...

  7. java私有表示标识_java里面的标识符、关键字和类型

    1. 注释 Java中有三种注释: (1) // -单行注释,注释从"//"开始,终止于行尾: (2)  -多行注释,注释从""结束: (3)  -是Java特 ...

  8. java 多线程 关键字_java多线程基础(synchronize关键字)

    线程:进程(process)就是一块包含了某些资源的内存区域.操作系统利用进程把它的工作划分为一些功能单元. 线程:进程中所包含的一个或多个执行单元称为线程(thread).进程还拥有一个私有的虚拟地 ...

  9. java定义接口的关键字_Java中定义接口的关键字是什么?

    Java中定义接口的关键字是"interface"."interface"是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合 ...

最新文章

  1. web项目数据存入mysql数据库中文乱码问题
  2. datagrip mysql乱码_DataGrip 2019.1.2 x64 连接MySQL出错解决
  3. Java注释@interface的用法【转】
  4. Linkis生产部署服务器配置参考指南
  5. 从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)
  6. mysql 去重后拼接_mysql学习笔记(三)—— 查询select
  7. java与C++变量类型对应表
  8. 27. netstat
  9. excel转word后表格超出页面_妙招!Word和Execl“联姻”实现数据高效处理!
  10. 操作SDO_GEOMETRY字段
  11. java8读流_JAVA: Java8流逐行读取文件
  12. 基于STM32MP157调试MIPI-DSI屏幕
  13. 用html计算长方形的面积公式,【长方形正方形的面积计算公式】《长方形、正方形的面积计算》优秀教学反思...
  14. c++11 regex
  15. 牛客竞赛:第三届超越杯程序设计团体赛题解
  16. python爬虫——汽车之家数据
  17. 图像梯度算法中算子的由来
  18. 求最小公倍数(C++牛客网)
  19. 全基因组测序 从头测序(de novo sequencing) 重测序(re-sequencing)
  20. 编程序也得劳逸结合,不能太累。。。

热门文章

  1. java被3整除的数_java中计算1-200以内可以被3整除的数,输出这些数并统计一共有多少个....
  2. Windows 平台下基于MinGW和Qt 的OpenCV 之CMake 项目配置
  3. dhclient常用命令
  4. 【解题报告】VijosP1448校门外的树(困难版)
  5. GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令
  6. C# WebService 基础实例
  7. excel导入到mysql
  8. Win7下安装git
  9. delphi 汉字的编码 转换
  10. 动态规划——最小路径和(Leetcode 64)