黑马程序员-标识符与关键字

------- 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是对当前对象的引用,是运行期间当前对象本身

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值