------- android培训、java培训、期待与您交流! ----------
static静态关键字
/*
* static静态关键字修饰:属性,方法,内部类,代码块
* 1:static修饰的资源属于类级别,全体对象实例共享的资源
* 2:静态属性是在类的加载期间初始化。使用类名.属性访问
* 3:实例变量属于对象的属性。使用对象.属性访问
*/
public class a1_static<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">关键字</span>
{
public static void main(String[] args) {
System.out.println(Abb.i);//0
Abb a1=new Abb();//1
Abb a2=new Abb();//2
System.out.println(a1.inta+"_"+a2.inta+"_"+Abb.i);//0_1_2
//新建实例构造函数都会i++,而Abb.i是静态变量
}
}
class Abb{
int inta;//实例变量
static int i=0;//静态变量
public Abb() {
inta=i++;
System.out.println(i);
}
}
static修饰的方法,不能直接访问本类中的非静态成员,
但本类的非静态方法可以访问本类的静态成员。
静态方法不能出现this关键字
static方法
/*
* 使用static声明的方法,属于类的方法,一般用来表达工具方法。
* 在类加载后可以直接调用,不用创建实例对象
*/
public class a2_static方法 {
public static void main(String[] args) {
int a=Maa.add(1,2);
System.out.println(a);
}
}
class Maa{
int i=11;
static int t=12;
//静态方法是属于类的方法,是公共工具的方法
//静态方法不能访问属于对象的资源
public static int add(int i, int j) {
// TODO Auto-generated method stub
return i+j+t;
}
}
静态代码块
/*
* 静态代码块是在类加载期间运行的代码块,由于类值加载一次,所以静态代码块只执行一次
* 静态代码块一般用于在类加载以后初始化一些静态资源时使用:如:加载配置文件
*/
public class a3_静态代码块 {
public static void main(String[] args) {
Soo a=new Soo();//类加载 创建对象 构造器
}
}
class Soo{
{
System.out.println("创建对象");
}
static{
System.out.println("类加载");//优先度最高
}
Soo(){
System.out.println("构造器");
}
}
final 关键字
* final类将不能被继承
* final类的方法也是final方法
* final不能修饰构造方法
* final方法不能被覆盖
* final变量变成常量,只能在初始化时直接赋值,一旦赋值不能修改
* final引用,引用指向不能修改,但对象属性可以改。
abstract抽象关键字
/*
* 抽象方法只有行为的概念,没有具体的行为实现
* 1:使用:abstract 关键字修饰,没有方法体
* 2:包含抽象方法的类,一定是抽象类
* 3:抽象类不能直接创建实例
* 4:抽象类只能被继承,一个具体类继承一个抽象类,必须实现所有抽象方法
*/
public class a5_抽象类abstract {
public static void main(String[] args) {
//Animal animal=new Animal() 抽象类不能直接创建实例
new Dog().call();
}
}
abstract class Animal{
abstract void call();//使用:abstract 关键字修饰,没有方法体
//包含抽象方法的类,一定是抽象类
void call2(String str){
System.out.println(str);
}
}
class Dog extends Animal{
void call() {
System.out.println("汪汪");
}//抽象类只能被继承,一个具体类继承一个抽象类,必须实现所有抽象方法
}
this是对当前对象的引用,是运行期间当前对象本身