final,最后的,最终的;决定性的;不可更改的。在java中final可以用来修饰类,方法和属性。
(1)修饰类:则此类不能再被继承
package TestCode1;
public final class Test1 {
String name;
}
(2)修饰方法:不能再被子类覆写,但可以被重载
package TestCode1;
public class Test1 {
public final void talk(){
System.out.println("Happy");
}
}
(3)修饰属性:变量即成常量,不可再被改变
statice静态的,可以用来修饰方法和属性,在java程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。
(1)修饰方法:用static修饰的方法可以被类中其他方法直接调用而不用实例化 ,而不用static则不能直接调用
而不用static的话
(2)修饰属性:如果属性被static修饰,那么它可以被称为全局变量,即被所有对象共享,这样可以带来很大的方便
不用static修饰:
package TestCode1;
public class People {
String name;
int age;
String city="BJ";
public People(String name,int age){
this.name=name;
this.age=age;
}
public void info(){
System.out.println("姓名:"+this.name+",年龄:"+this.age+",城市:"+this.city);
}
}
这样假若所有的对象的city属性都要改变为SH,就需要一个一个操作,三个无所谓,但是300个,300000个呢,这就很不方便,所以可以使用static修饰,这样city属性被共享,其中一个改变就全部改变。
package TestCode1;
public class People {
String name;
int age;
static String city="BJ";
public People(String name,int age){
this.name=name;
this.age=age;
}
public void info(){
System.out.println("姓名:"+this.name+",年龄:"+this.age+",城市:"+this.city);
}
}
至于静态块,即用static修饰的代码块,它在类被编译的时候执行一次,优于其他方法执行。而且无论类被实例化几次,静态块只执行一次,而代码块则是实例化一次便执行一次
package TestCode1;
public class Test1 {
static {//静态块
System.out.println("执行了静态块");
}
{//代码块
System.out.println("执行了代码块");
}
public Test1(){
System.out.println("执行了构造方法");
}
}
package TestCode1;
public class Test2 {
public static void main(String args[]){
new Test1();
new Test1();
new Test1();
new Test1();
}
}
结果:
执行了静态块
执行了代码块
执行了构造方法
执行了代码块
执行了构造方法
执行了代码块
执行了构造方法
执行了代码块
执行了构造方法
- 大小: 11 KB
- 大小: 15.7 KB
- 大小: 18 KB
- 大小: 31.6 KB
- 大小: 19.1 KB
- 大小: 27.7 KB
- 大小: 28.9 KB
分享到:
相关推荐
Java 菜鸟必备 详细总结了键字final、static的使用 和限制
java 关键字final和static
第二十二天,对抽象类,static关键字以及final关键字的学习
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
主要介绍了java多线程关键字final和static详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
面向对象部分让人搞晕的几个关键字,我这里专门针对这几个关键字进行了整理相关的面试题,只要你能做对80%,就证明你面向对象基本学懂了
本文主要给大家谈谈小编对java关键字final和static的理解,本文给大家介绍的较详细,需要的朋友参考参考下
主要介绍了详解Java编程中static关键字和final关键字的使用,是Java入门学习中的基础知识,需要的朋友可以参考下
java 中的static关键字和final关键字的不同之处,需要的朋友可以参考一下
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
B类继承A类,相当于对A类的功能进行扩展,如果不希望对A类进行扩展,可以给A类加final关键字,这样的话,A类就无法继承了。 源代码中String就是没有子孙的 结论:final修饰的类无法被继承 二、final修饰的方法 ...
static、this、super、final的JAVA用法
Java编程中static和final关键字的陷阱.pdf
接口中的变量默认类型是public static final,也是就是说是 公有静态常量 。 而方法默认是public abstract,公有抽象方法,但是事实真的是这样吗? 一.新特性 Java 1.8对接口有两个方面的增强:接口中可以添加使用...
主要介绍了Java final static abstract关键字的相关资料,需要的朋友可以参考下
1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: ...
第1章-第3节(重载、this关键字、构造器、static、final、封装、单例模式).md
有关static、this、super、final关键字的分析介绍,希望能够帮助还不是很明白它们的朋友。