static final

实例变量  变量属于对象所有

 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

类变量 变量属于类所有

静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。

静态变量初始化的时机在成员变量之前:

类加载:java源程序xxx.java---->编译---xxx.class保存到磁盘上(程序的运行 有两个条件,第一进入内存,第二分配到cpu的时间片),将磁盘上的xxx.class类文 件加载到java的jvm(java虚拟机运行在内存中),这个过程就叫类加载,在类加载的 过程中完成类变量的初始化,在类加载完成后,实例化对象,才初始化成员变量

而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响

public  class Computer {
	public  static String name; 
	public static void main(String args[]){
		Computer c1 = new Computer();
		Computer c2 = new Computer();
		c1.name = "联想";
		c2.name="三星" ;
		System.out.println("c1.name:"+c1.name);
	}
}

static方法一般称作静态方法.

由于静态方法不依赖于任何对象就可以使用类名进行访问.类名.静态方法

因此对于静态方法来说,是没有this的。如下图

在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用

静态方法中只能访问静态成员

static修饰块

static修饰的代码块称为静态块。

静态代码块在初始化的时候只初始化一次,一般用于初始化某个变量,并且只初始一次。

static块可以置于类中的任何地方,类中可以有多个static块。

在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次

static{}

static修饰类特殊情况,用于后面内部类中

static修饰类只有一种情况,即静态内部类,static不能修饰普通的JAVA类

final

Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。

final修饰变量

用final修饰的成员变量表示常量,值一旦给定就无法改变!常量不一定是在声明的时候赋值,但必须在使用之前赋初始值.

final修饰的变量有三种:静态变量实例变量局部变量,分别表示三种类型的常量 。

final 修饰的静态变量必须在声明的时候赋予初始值

final 修饰的实例变量可以在构造函数中赋值,不同的对象同一个常量的值可以不同。

final修饰的参数 在方法体中不能修改参数的值。参数看成局部变量

如下图

final修饰的局部变量可以在使用之前赋值.

final修饰对象的时候该对象可以修改属性,但不能重新为对象赋值如下图

Public class Student{
Public int age;
Public static void main(String args[]){
final Student stu =new Student();
//修改对象的属性值可以
stu.age =20;
stu.age = 30;
//为对象重新赋值不可以
//stu =new Student();
}
}

2.

final修饰方法

final修饰的方法该方法不能被重写

3.

final修饰类

当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法

static 不能修饰局部变量

static是说明这个东西是属于整个类的
而局部变量的作用域只能在他所属的{}之内。不可能是属于类或对象的。
所以矛盾,故static不能修饰局部变量

public class Test {
public static int a=1;//成员变量,允许
public static void main(String[] args) {
static int b=1;//错误
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值