Java 关键字之this

原创 2016年05月30日 18:10:29


this 是什么?

this 是一个引用类型,

在堆中的每一个java对象上都有this,

this 保存内存地址指向自身

public classThisTest01{

public static voidmain(string[] args){

//创建对象

MyDate t1=newMyDate(2008,8,8);

System.out.println(t1.year+”年”+t1.month+”月”+t1.day+”日”);

//创建对象

MyDate t2=newMyDate(2012,12,12);

System.out.println(t2.year+”年”+t2.month+”月”+t2.day+”日”);

}

}

//日期

Class MyDate{

//Field

Int year;

Int month;

Int day;

//Constructor

MyDtae(){

MyDate(int  _year,int _month,int  _day){

year=_year;

month=_month;

day=_day;

}

}

this能用到哪些地方?

One :可以用在成员方法中

Two:可以用在构造方法中

用在成员方法中,this就是当前对象

Public classthisTest02{

Public static voidmain(string[] args){

//创建对象

Employee e=newEmployee(7639,”smith“);

//工作

e.work();

//创建对象

Employee e1=newEmployee(7670,”mike“);

//工作

e1.work();

}

Class Employee{

//员工编号

Int empNo;

//员工名称

String empName;

//Constructor

Employee(){}

Employee(int_empNo,string _empName){

empNo=_empNo;

empName=_empName;

}

//提供一个员工工作的方法。

//this 用在成员方法中,谁去调用这个成员方法,this就代表谁

This 指的是当前对象。

Public void work(){

System.out.println(empName+“在工作”);

--优化后(this.可以省略)

System.out.println(this.empName+“在工作”);

}

}

This 可用来区分成员变量和局部变量

Public classThisTest03{

Public static voidmain(string[] args){

Manager m1=newManager("king”);

Manager m2=newManager();

m2.setName(“Ford”);

System.out.println(m1.getName);

System.out.println(m2.getName);

 

}

}

Class Manager{

//Field

private stringname;

//Constructor

Manager(){}

Manager(stringname){

this.name=name;

}

//Method

//成员方法

Public voidsetName(string name){

this.name=name;

}

//成员方法

Public stringgetName(){

return this.name;

}

this 不能用在静态方法中

静态方法的执行根本不需要java对象的存在,直接使用类名.的方式访问。

而this代表的是当前对象,所以静态方法中根本没有this

 

可以用在构造方法中

语法:this(实参),必须出现在构造方法的第一行

通过一个构造方法去调用另一个构造方法,目的:代码重用

 

需求:在创建日期对象时,默认日期是:1970-1-1

public classThisTest04{

public static voidmain(string[] args){

MyDate t=newMyDate();

System.out.println(t.year+”年”+t.month+”月”+t.day+”日”);

}

Class MyDate{

Int year;

Int month;

Int day;

//Constructor

MyDtae(){

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;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

java关键字之final关键字解析

在java中,final关键字和static关键字一样,都可以用来修饰类,方法,成员变量,通常可以用来改善应用程序的性能,但是final强调的是“不可变性”。 1.修饰变量 fin...
  • qq1404510094
  • qq1404510094
  • 2018年01月29日 02:18
  • 16

java中的return关键字

return关键字的用法,它包括两方面,它代表已经做完,离开此方法,其次代表此方法产生了一个值,这个值要放在return语句后面,返回此值。 如果方法的返回类型是void,那return关键字的作用...
  • q35445762
  • q35445762
  • 2015年07月14日 15:48
  • 611

java关键字大全

abstract  boolean  break - byte  case  catch  char  class  continue  default  do  double ...
  • yhsbzl
  • yhsbzl
  • 2014年02月06日 14:18
  • 1893

PHP 类和对象(static静态关键字)

静态属性和方法可以在不实例化类的情况下调用,直接使用  类名: :方法名  的方式 进行调用。所以伪变量$this在此处不可用。 静态属性不可以由对象通过“->”操作符来访问。 用静态...
  • actorWen
  • actorWen
  • 2017年12月17日 11:29
  • 41

java中“53”个关键字(含2个保留字)

1.java的关键字(keyword)有多少个?    51+2个保留字=53个关键字(java的关键字都是小写的!!)         2.java的保留字(re...
  • u012506661
  • u012506661
  • 2016年10月08日 14:40
  • 12002

Java关键字合集

本文摘录的是个人在java语言使用中所遇到的一些关键字,将使用过程中的心得体会写在这里给自己和他人一些帮助;...
  • evan_man
  • evan_man
  • 2016年02月28日 08:54
  • 878

java多线程(六)深入理解volitale关键字

我们继续来讨论java的多线程编程,今天我们一起来学习一下java多线程中的另一个关键字——volitale。 一、java内存模型与多线程编程中的三个感念 1、原子性 原子性是指一些操作或者全...
  • xingjiarong
  • xingjiarong
  • 2015年08月26日 09:12
  • 4360

java线程里关键字与关键方法

java线程里关键字与关键方法@线程 @sleep @yield @synchronized @wait @join @notify @notifyAll @run @start @volatilej...
  • a101070096
  • a101070096
  • 2016年07月29日 17:08
  • 818

Java面试准备六:Java关键字

这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢。下文参考Java关键字总结 final关键字 static关键字 1. final最终、不可改变可用来修饰类...
  • u013349237
  • u013349237
  • 2017年04月12日 11:21
  • 441

Java之extends关键字

extends关键字 1.Java中使用extends关键字实现类的集成机制 2.通过继承子类自动拥有了基类(superclass)的所有成员(成员变量和成员方法) 3.Java只支持单...
  • nvliba
  • nvliba
  • 2016年12月07日 12:39
  • 634
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 关键字之this
举报原因:
原因补充:

(最多只允许输入30个字)