java中的this、super、static关键字
2015-02-08 16:06
429 查看
this关键字:
1.用于指代本对象
2.用于指代类中的成员,解决变量同名问题
下面是关于这个代码的内存分析:
从图中可以清晰的看到this关键字存的就是一个指针,并且他指向对象本身在堆中的首地址
static修饰符关键字:
static修饰的成员属于类(只有一份)而不属于某一个具体的对象,因此访问时可以通过对象引用或者类名(不需要实例化)
1.static修饰的成员变量(不能修饰局部变量)位于静态数据段,第一次使用便存在,直到程序运行结束。
2.static修饰的成员方法是静态方法,静态方法不再针对某一个对象,所以静态方法里面不能访问非静态成员(因为非静态成员属于一个对象)
3.static一般用于计数
下面是一个关于static的测试代码:
从内存图中可以看出,static成员变量在数据区,第一次使用时便被初始化,直到程序结束。
super关键字
super同this类似,指向父类的指针,用它可以应用父类对象或者解决父类对象中和子类同名的变量
1.用于指代本对象
2.用于指代类中的成员,解决变量同名问题
/*this 关键字*/ public class Leaf{ int i = 0; Leaf(int i){ this.i = i; } Leaf increament(){ i++; return this; } void print(){ System.out.println("i="+i); } public static void main(String args[]){ Leaf leaf = new Leaf(100); leaf.increament().increament().print(); } }
下面是关于这个代码的内存分析:
从图中可以清晰的看到this关键字存的就是一个指针,并且他指向对象本身在堆中的首地址
static修饰符关键字:
static修饰的成员属于类(只有一份)而不属于某一个具体的对象,因此访问时可以通过对象引用或者类名(不需要实例化)
1.static修饰的成员变量(不能修饰局部变量)位于静态数据段,第一次使用便存在,直到程序运行结束。
2.static修饰的成员方法是静态方法,静态方法不再针对某一个对象,所以静态方法里面不能访问非静态成员(因为非静态成员属于一个对象)
3.static一般用于计数
下面是一个关于static的测试代码:
public class Cat{ private static int sid = 0; private String name; private int id; Cat(String name){ this.name = name; id = sid++; } public void info(){ System.out.println("my name is "+name+" No."+id); } public static void main(String args[]){ Cat.sid = 100; Cat mimi = new Cat("mimi"); Cat bibi = new Cat("bibi"); mimi.info(); bibi.info(); } }下面是关于这段代码的内存分析:
从内存图中可以看出,static成员变量在数据区,第一次使用时便被初始化,直到程序结束。
super关键字
super同this类似,指向父类的指针,用它可以应用父类对象或者解决父类对象中和子类同名的变量
相关文章推荐
- Java中this,static,super及final关键字和代码块
- Java关键字:static、this、super
- JAVA基础--关键字 final/static/this/super
- Java程序设计6——static、final、this、super关键字介绍
- Java中几个关键字 static final this super
- Java基础之六:关键字this、super、static
- java中的关键字一(this,super,static)
- Java中的关键字static、this、super、final详解
- JAVA初学之this ,static , super 与final关键字
- Java关键字:this、super、static
- JAVA基础--关键字 final 、static、this、super
- java关键字abstract,static,final,this,super
- java基础9 main函数、this、static、super、final、instanceof 关键字
- 黑马程序员_Java基础_this,super,static,final关键字
- Java关键字final、static、this、super使用总结
- Java中的this、super、static和final关键字的详解
- Java中的this、super、static和final关键字
- Java关键字final、static、this、super使用总结
- Java中this,static,super及final关键字和代码块
- Java中的static、final、this、super