static变量
public class Helloworld{
static String name=”nuocheng”;
String name3=”jiajia”;
public static void print(){
System.out.println(name);
//但是这里的使用System.out.println(name3);
//原因是静态方法中只能使用静态变量,不能使用非静态方法
//那如何调用非静态变量呢
Helloworld n=new Helloworld()
System.out.println(n.name3);
}
}
static 方法
public class Helloworld{
public static void print(){
System.out.println(“这是静态函数”);
}
public void show(){
System.out.println(“这是非静态函数”);
}
public static void main(String[] args){
//静态函数
print();
//非静态函数
Helloworld hello=new Helloworld();
hello.show();
}
}
static 使用静态初始化块
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量
public class Helloworld{
int num1;
int num2;
static int num3;
//构造法
public Helloworld{
num1=91;
System.out.println(“构造方法给num1赋值”);
}
//初始化块
{
num2=74;
System.out.println(“初始化方法给num2赋值”);
}
//静态初始化块
static{
num3=83;
System.out.println(“静态初始化方法给num3赋值”);
}
public static void main(String[] args){
Helloworld hello=new Helloworld();
System.out.println("num1:"+hello.num1);
System.out.println("num2:"+hello.num2);
System.out.println("num3:"+num3);
Helloworld hello2=new Helloworld();
}
}
final的使用规范:
1.final定义的类不能被继承
2.final定义的数据成员不能被更改
3.final定义的方法不能被重写
注意点
A类是B类的父类
{
A a;
B b=new B();
a=b;
}
(用父类引用指向子类,a不能引用B类中新方法,如果A类(父类)的方法被B类(子类)重写,a可以作用到重写的方法上)