static 与final
1.变量的声明和内存地址的开劈
class A{
}
A a;(这样没有开辟内存空间,只有new对象时才有)
static关键字
静态的 :可以用来修饰类,属性,方法,代码块
1.属性
如果用static来修饰,则变量的内存在静态区。(被共享);
当属性定义为static则该属性为该类所有的对象共享,
以最后一次改变为所有对象里的最终值;
static属性,又叫类属性
调用方式:1.可以通过对象调用;
2.可以直接通过类名调用;
2.静态方法:
static方法中不能调用非静态属性
(重写失去意义)方法如果定义为static ,对象在调用方法的时候只和对象定义的类型相关
static方法叫做类方法。这一类对象共享的方法;
调用方式:直接用类名调用;
可以通过对象调用
一般情况下。static属性和方法直接通过类名来调用;
3.代码块
public class A()[
public static void main(String[] args){
System.out.println("A");
}
//代码块
{
System.out.println("b");
}
//静态代码块
{
System.out.println("c");
}
}
4.类前面。static修饰内部类;
java程序的执行过程!!!!
编写:.java文件-->翻译成.class字节码文件-->执行.class文件
1首先 .class文件加载到内存中(加载类)
首先加载static属性,静态块,静态方法(不执行,只加载);加载到类的内存空间
2.执行主函数 在创建这个类的对象时,(再将非静态的方法,加载到对象的空间里面),,,,将非静态代码块,非静态属性执行
在加载的过程当中,属性和代码块会先执行,方法必先等到调用时在执行;
*****************************************************************************
final关键字
final可以用来修饰类,属性,和方法
final,最终的,不可修改的
类似于C语言里的const
1.final修饰类的时候,表示该类不可以被继承
2.final修饰方法时,不可以被重写,可以重载;
3.final修饰属性时,必须初始化并且只能一次,不可以改变值;
class Student {
public final String n;
public Student(){
n="S";
}
}
这样定义也行,因为构造方法先实行(除了static修饰的方法和属性之外)
4.final修饰局部变量,定义时可以不赋值,但是只能赋值一次;
5.final 修饰参数,在参数前加final,,传入方法后只能用,不能改变。。(防止传入的值被修改;)
相关推荐
java 关键字final和static
面向对象部分让人搞晕的几个关键字,我这里专门针对这几个关键字进行了整理相关的面试题,只要你能做对80%,就证明你面向对象基本学懂了
Java 菜鸟必备 详细总结了键字final、static的使用 和限制
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
Java编程中static和final关键字的陷阱.pdf
第二十二天,对抽象类,static关键字以及final关键字的学习
主要介绍了详解Java编程中static关键字和final关键字的使用,是Java入门学习中的基础知识,需要的朋友可以参考下
static、this、super、final的JAVA用法
接口中的变量默认类型是public static final,也是就是说是 公有静态常量 。 而方法默认是public abstract,公有抽象方法,但是事实真的是这样吗? 一.新特性 Java 1.8对接口有两个方面的增强:接口中可以添加使用...
java 中的static关键字和final关键字的不同之处,需要的朋友可以参考一下
第1章-第3节(重载、this关键字、构造器、static、final、封装、单例模式).md
本文主要给大家谈谈小编对java关键字final和static的理解,本文给大家介绍的较详细,需要的朋友参考参考下
因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同...
主要介绍了java多线程关键字final和static详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
B类继承A类,相当于对A类的功能进行扩展,如果不希望对A类进行扩展,可以给A类加final关键字,这样的话,A类就无法继承了。 源代码中String就是没有子孙的 结论:final修饰的类无法被继承 二、final修饰的方法 ...
本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: ...