java中的this关键字
2015-06-12 09:55
399 查看
1.this是什么?this是一个引用类型,在堆中的每一个java对象上都有this,this保存内存地址指向自身。2.this能用在哪些地方?第一:this可以用在成员方法中.第二:this可以用在构造方法中.语法:this(实参);通过一个构造方法去调用另一个构造方法。目的:代码重用。this(实参);必须出现在构造方法的第一行第三:this不能用在静态方法中。静态方法的执行不需要java对象的存在,直接使用"类名."的方式去访问,this代表的是当前对象,所有不用用在静态方法中。
本文出自 “gaogaozi” 博客,请务必保留此出处http://hangtiangazi.blog.51cto.com/8584103/1661111
class MyDate{ //Field int year; int month; int day; //Constructor //需求:在创建日期对象的时候,默认的日期是:1970-1-1 MyDate(){ this(1970,1,1); /* this.year = 1970; this.month = 1; this.day = 1; */ } MyDate(int _year,int _month,int _day){ year = _year; month = _month; day = _day; }
/* this能用在成员方法中。 this就是当前对象. */ public class ThisTest02{ public static void main(String[] args){ //创建对象 Employee e = new Employee(7369,"SMITH"); //工作 e.work(); //创建对象 Employee e1 = new Employee(7370,"FORD"); //工作 e1.work(); e.m1(); } } class Employee{ //员工编号 int empno; //员工名 String ename; //Constructor Employee(){} Employee(int _empno,String _ename){ empno = _empno; ename = _ename; } //提供一个员工工作的方法. //this用在成员方法中,谁去调用这个成员方法,this就代表谁。 //this指的就是当前对象。 public void work(){ System.out.println(this.ename + "在工作"); //System.out.println(ename + "在工作"); //this. 可以省略 } //成员方法 public void m1(){ this.m2(); m2(); } //成员方法 public void m2(){ System.out.println("TESTING"); } }注意:this不能用在静态方法中。
/* this不能用在静态方法中. 静态方法的执行根本不需要java对象的存在。直接使用“类名.”的方式访问。 而this代表的是当前对象。所以静态方法中根本没有this */ public class ThisTest04{ String str; //入口 public static void main(String[] args){ Person.m1(); //str是一个成员变量,必须由 引用. 访问 //System.out.println(str); ThisTest04 tt = new ThisTest04(); System.out.println(tt.str); //null } } class Person{ //Field String name; //Constructor Person(){} Person(String name){ this.name = name; } //静态方法 public static void m1(){ //System.out.println(this.name); //如果要想访问name只能: Person p1 = new Person("刘德华"); System.out.println(p1.name); } }
本文出自 “gaogaozi” 博客,请务必保留此出处http://hangtiangazi.blog.51cto.com/8584103/1661111
相关文章推荐
- Java 获取指定日期的方法总结
- Java中接收键盘输入的三种方法
- 【JAVA连接HBase】(一)关于主机无法打开虚拟机上的HADOOP(50070)
- Struts2 Domain Model 多个bean嵌套使用
- Win7下更改Eclipse SVN插件subclipse用户
- 利用java实现的一个发送手机短信的小例子
- java对接网银支付案例
- java中的参数传递
- java:Excel操作(poi)
- java-String中的 intern()
- 译文:理解Java中的弱引用
- Java中线程休眠编程实例
- Java获得正则表达式
- Android Eclipse下工程移植到Android Studio详细步骤
- Java Collection分类(转)
- spring MVC 中json格式数据发送与接收
- struts2.0的工作原理
- Java报错系列――split
- springmvc @PathVariable("b") double b 丢失精度问题
- java如何防止反编译