static和final关键字的区别:
都可以修饰类、方法、成员变量。
static关键字:
1)在类内部使用,用来修饰属性或方法的,在类加载期间加载;
2)优于对象存在
3)静态变量属于类级别,类的所有对象共享;
4)静态变量只有一份,而实例属性是每个对象都有一份
5)访问时,直接使用类名.静态变量或类名.静态方法
6)方法中不能定义静态变量
7)静态方法中只能访问静态成员(变量或方法),普通方法中既可以访问静态成员,
也可以访问普通成员
public class Penguin {
String name="QQ";
//static修饰变量为静态变量
static String sex="Q妹";
//静态方法
public static void show(){}
//普通方法
public void show1(){}
//静态方法
public static void print(){
name="1";//静态方法不能直接调用普通变量------(x)
sex="Q仔";//静态方法能直接调用静态变量
show1();//静态方法内只能调用静态方法,不能调用普通方法 ----(x)
show();
}
public static void main(String[] args) {
Penguin p1= new Penguin();
p1.name="Q1";
p1.sex="Q仔";
System.out.println("我的名字是:"+p1.name+";我的性别是:"+p1.sex); //---Q1 Q仔
Penguin p2= new Penguin();
System.out.println("我的名字是:"+p2.name+";我的性别是:"+p2.sex);//--QQ Q仔
}
}
public class Demo {
public static int sum=0;
public Demo(){
sum+=3;
}
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
System.out.println(d1.sum);//----6 //静态变量只有一份,以最终值为准
}
}
final关键字:
1、定义常量
static final double PI=3.1415;
2、final总结
1)final可修饰变量 方法 类
2)final修饰的变量,只能初始化一次,不能再修改
3)·final修饰的类,不能被继承
4)·final修饰的方法,不能被重写
5)static final 共同修饰的叫常量 比如圆周率PI
static final double PI=3.1415;
常量名一般大写;
this的用法
1、无法区分成员变量和局部变量时,必须使用this关键字
2、调用本类中的其他构造方法,只能放在构造方法的第一句,具体根据参数匹配!!!
public Dog(String name, int health, int love, String str) {
this("逗哦都",20);
this.love = love;
this.str = str;
3、出现在类的方法中,代表调用当前方法的对象
public void print(){
system.out.println(this.name);
}