成员变量
1.实列变量
2.静态变量
用Static修饰
静态变量
1.属于类,存储在方法区中,只有一份
2.通过类名打点来访问
3何时用:所有对象所共享的的数据(图片,音频,视频)
静态方法:
1.属于类,存储在方法区中,只有一份
2.通过类名打点来访问
3.静态方法没有隐式this传递,所以不能直接访问实列对象,只能直接访问静态成员
4.何时用:方法的操作与对象无关(不需要操作对象的数据)
静态块:
属于类,在类被加载期间自动执行,一个类只被加载一次,所以静态块只执行一次
何时用:初始化/加载静态资源(图片,音频,视频等)
class Moo{
int a ; //实例变量(对象点来访问)
static int b;//静态变量(类名点来访问)
void show(){//有隐式this
System.out.println(this.a);
System.out.println(Moo.b);
}
static void test(){
//静态方法没有隐式this传递
没有this就意味着没有对象
而实列变量a必须由对象来点来访问
System.out.println(a);//编译错误
System.out.println(Moo.b);
}
}
//演示静态方法何时用
class Noo{
int a; //实例变量(描述对象的属性)
//在show()中访问对象的属性a了,说明show()与对象有关,不能设计为静态方法
void show(){
System.out.println(a);
}
//在plus()中并没有访问对象的属性,说明plus()与对象无关,可以设计为静态方法
static int plus(int num1,int num2){
int num = num1+num2;
return num;
}
}
public class StaticDemo {
public static void main(String[] args) {
Moo.test(); //常常通过类名点来访问
}
}
final:最终的,不可改变的 ------单独应的概率比较低
-修饰变量:变量不能改写
-修饰方法:方法不能被重写
-修饰类:类不能被继承
- 修饰变量:变量不能被改变
```java
class Eoo{
final int num = 5;
void show(){
//num = 55; //编译错误,final的变量不能被改变
}
}
```
- 修饰方法:方法不能被重写
```java
//演示final修饰方法
class Foo {
final void show(){}
void test(){}
}
class Goo extends Foo{
//void show(){} //编译错误,final的方法不能被重写
void test(){}
}
```
- 修饰类:类不能被继承
```java
//演示final修饰类
final class Hoo{}
//class Ioo extends Hoo{} //编译错误,final的类不能被继承
class Joo{}
final class Koo extends Joo{} //正确,不能当老爸,但能当儿子
```