当前位置:首页 » 编程语言 » java类方法中this

java类方法中this

发布时间: 2022-09-12 02:38:31

java 中this的用法

用this可以调用本类的属性,方法,构造方法,
this(x,y,0)是用来调用public
Point3D(int
x,
int
y,
int
z)这个构造方法的,这个时候本类的3个属性就都有值了:x,y是外来传入的值,z的值直接就是0了!
为什么要用this.x=x
,this.y=y
,
this.z=z,是为了区分外来的值名与本类下属性名的重名,this.x就是调用的属性!
还可以调用方法,如:this.方法名(),这样就调用本类下的这个方法!

㈡ java中的this是什么意思

this代表当前对象的意思。
这个this肯定是用在某个类的方法里吧。呵呵,我们继续往下说。

举个例子:
public class persion{

private String name=null;
private int age;

public void setName(String name){
this.name=name;
}
public String getName(){

return name;
}

}

在这个类中setName方法中第一个变量用this是为了和本方法的参数this做区别,表示这个name指的是Person这个类的name属性,而不是name参数,如果去掉这个this,执行完这个方法后,Person类的name属性仍然为null
getName方法返回的Person类的name,之所以不用this是因为没有必要,因为编译器会知道这个name就指的是Person的name而不是其他的name(因为找个方法没有name变量和它混淆)。当然,这个方法你也可以显示的使用return this.name,没错。
这些都是最基本的了。开始学只要记住这个就可以了。慢慢的其他的用法也就无师自通了!

㈢ java中this的作用及用法是什么

使用this调用本类中的属性

现在观察以下代码,看会有那些问题:

public void setName(String name){

name = name ;

}

这里面的两个name都是setName方法中的name参数。

此时,特别希望可以通过一个指定的标识明确的表示要把传入的name参数的值给类中的属性,所以此时就需要使用this关键字,使用this.name就表示类中的属性。

class Person{

private String name ;

private int age ;

public Person(String name,int age){

this.setName(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年龄:"+this.age) ;

}

};

public class Demo35{

public static void main(String args[]){

Person p1 = new Person("张三",30) ;

p1.print() ;

}

};

使用this还可以从一个构造方法中调用其他构造方法。

例如:有以下一个要求,一个类中存在了三个构造方法,但是要求,不管怎么调用,最终都要求可以在对象实例化的时候打印一个“新的对象产生了”的提示。

class Person{

private String name ;

private int age ;

public Person(){

System.out.println("新的对象产生了。。。") ;

}

public Person(String name){

System.out.println("新的对象产生了。。。") ;

this.setName(name) ;

}

public Person(String name,int age){

System.out.println("新的对象产生了。。。") ;

this.setName(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年龄:"+this.age) ;

}

};

以上代码虽然可以实现功能,但是同样的代码出现了三次,而且后面的两次出现纯属多余吧。用this()的形式可以调用类中的无参构造方法。

class Person{

private String name ;

private int age ;

public Person(){

System.out.println("新的对象产生了。。。") ;

}

public Person(String name){

// 最终都是调用无参构造方法

this() ;

this.setName(name) ;

}

public Person(String name,int age){

this(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年龄:"+this.age) ;

}

};

public class Demo36{

public static void main(String args[]){

Person p1 = new Person("张三",30) ;

p1.print() ;

}

};

注意点1:

如果使用了this调用其他构造方法,则此语句,必须写在构造方法的首行。

public void fun(){

// 发现在调用fun方法的时候,必须先设置name的值

this("zhangsan") ;

}

public Person(String name,int age){

this.setAge(age) ;

this(name) ; //--> 必须放在首行

}

注意点2:

使用this可以调用本类中的其他构造方法,但是至少留一个构造方法,作为程序的出口。

public Person(){

this("a",10) ;

System.out.println("新的对象产生了。。。") ;

}

public Person(String name){

// 最终都是调用无参构造方法

this() ;

this.setName(name) ;

}

public Person(String name,int age){

this(name) ; //--> 必须放在首行

this.setAge(age) ;

}

this最重要的特性 —— 表示当前对象

当前对象在程序中用以下形式体现:

· 当前操作此方法的对象,就称为当前对象。

class Demo{

public void print(){

System.out.println(this) ;

}

};

public class Demo38{

public static void main(String args[]){

Demo d1 = new Demo() ;

System.out.println(d1) ;

d1.print() ;

System.out.println("---------------------") ;

Demo d2 = new Demo() ;

System.out.println(d2) ;

d2.print() ;

}

};

回顾:

之前讲解的两个对象比较的程序。

// 在类的内部增加一个比较的方法

public boolean compare(Person p){

Person p1 = this ;

Person p2 = p ;

if(p1.name.equals(p2.name)&&p1.age==p2.age){

return true ;

}else{

return false ;

}

}

分析程序的运行过程:

class A{

private B b = null ;

public A(){

this.b = new B(this) ;

this.b.fun() ;

}

public void hello(){

System.out.println("Hello World!!!") ;

}

};

class B{

private A a = null ;

public B(A a){

this.a = a ;

}

public void fun(){

this.a.hello() ;

}

};

public class OODemo40{

public static void main(String args[]){

A aa = new A() ;

}

};

㈣ java里this是什么意思

Java关键字this只能用于方法方法体内。

个对象创建后,Java虚拟机(JVM)就会给这 个对象分配一个引用自身的指针,这个指针的 名字就是 this。因此,this只能在类中的非静 态方法中使用,静态方法和静态的代码块中绝 对不能出现this,这在“Java关键字static、fina l 使用总结”一文中给出了明确解释。并且this只 和特定的对象关联,而不和类关联,同一个类 的不同对象有不同的this。

㈤ Java类中this();作用是什么,只在构造方法中出现吗

java中this关键字有三个作用:

  1. 区别全局变量和局部变量

  2. 在方法中this表示谁调用该方法 this就代表谁

    例如:public void show(){

    Synchronized(this){

    ……}

    }

    同步代码块表示 哪个对象调用该方法 就得到哪个对象的对象锁

  3. 构造器中this()表示调用形式参数相同的同一个类中的另一个构造器,这样就可以代码复用

    就拿你那段代码来说 this()就表示调用该类中 名称是Note 形参是空的构造器 让里面的代码在这个有参的构造器中再跑一遍


㈥ java 的this的运用

在java中,this关键字有很多种用法。 在java中,这是一个引用当前对象的引用变量。

java this关键字的用法如下:

  • this关键字可用来引用当前类的实例变量。

  • this关键字可用于调用当前类方法(隐式)。

  • this()可以用来调用当前类的构造函数。

  • this关键字可作为调用方法中的参数传递。

  • this关键字可作为参数在构造函数调用中传递。

  • this关键字可用于从方法返回当前类的实例。

  • 建议:如果你是java初学者,只学习 this 关键字的前三个用法就可以了。

    更详细可以查询一些教程,例如:https://www.yii.com/java/this-keyword.html

㈦ Java中this能出现在类方法中吗

不可以,类方法(静态方法)是属于类级别的,为所有对象共有的,在类加载进内存的时候就存在了,此时还没有对象,this就无法指向任何对象,所以是不可以的。

㈧ java中“this”的用法是什么

一、指自己所在的对象。
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了。
二、看一个小例子中“this”的用法!

/**

* @author feng-neusoft

*

* 本示例为了说明this的三种用法!

*/

package test;

public class ThisTest {

private int i=0;

//第一个构造器:有一个int型形参

ThisTest(int i){

this.i=i+1;//此时this表示引用成员变量i,而非函数参数i

System.out.println("Int constructor i——this.i: "+i+"——"+this.i);

System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

//从两个输出结果充分证明了i和this.i是不一样的!

}

// 第二个构造器:有一个String型形参

ThisTest(String s){

System.out.println("String constructor: "+s);

}

// 第三个构造器:有一个int型形参和一个String型形参

ThisTest(int i,String s){

this(s);//this调用第二个构造器

//this(i);

/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。

但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调

用一个且仅一次构造器!*/

this.i=i++;//this以引用该类的成员变量

System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);

}

public ThisTest increment(){

this.i++;

return this;//返回的是当前的对象,该对象属于(ThisTest)

}

public static void main(String[] args){

ThisTest tt0=new ThisTest(10);

ThisTest tt1=new ThisTest("ok");

ThisTest tt2=new ThisTest(20,"ok again!");

System.out.println(tt0.increment().increment().increment().i);

//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,

//接着又返回在上面返回的对象基础上i++的ThisTest对象!

}

}

运行结果:

Int constructor i——this.i: 10——11

String constructor: ok

String constructor: ok again!

Int constructor: 21

String constructor: ok again!

14

细节问题注释已经写的比较清楚了,总结一下,其实this主要要三种用法:

1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

㈨ 对于java中this关键字的理解

this关键字可以简单的理解为,谁调用this所在的方法,this就是谁。
类的构造函数与getter、setter方法常用到this关键字(JavaBean)

JavaBean是一种可重用的Java组件,它可以被Applet、Servlet、SP等Java应用程序调用.也可以可视化地被Java开发工具使用。它包含属性(Properties)、方法(Methods)、事件(Events)等特性。
public class Person {
//==========静态属性===========
//--想学编程的可以来我这看看----
private String name; //姓名
private int age; //年龄
private String gender; //性别

//==========动态行为===========
public void readBook(String book) {
System.out.println("reading " + book);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;//this.name就是上面的private String name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}
}
官方定义
this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
this 的用法在 Java 中大体可以分为3种:
1.普通的直接引用
这种就不用讲了,this 相当于是指向当前对象本身。
2.形参与成员名字重名,用 this 来区分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年龄:"+age);}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}

希望对您有所帮助!~

㈩ this()在java中什么意思

this表示类实例本身。

this的用法:

1、表示对当前对象的引用!

publicclassA{

publicAgetA(){

returnthis;//表示获取当前实例本身

}

}

2、表示类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!

publicclassA{

privateinta=0;//位置1

publicAgetA(inta){

this.a=a;//前面this.a表示位置1的a,赋值=号右侧的表示参数a

}

}

3、用于在构造方法中引用满足指定参数类型的构造器。

publicclassA{

publicA(inta){

}

publicA(){

this(1);//这里调用自身的构造函数publicA(inta){

}

}

热点内容
甘蔗苗存储 发布:2025-07-01 21:47:03 浏览:663
选定文件夹 发布:2025-07-01 21:45:14 浏览:227
数据库或且 发布:2025-07-01 21:40:54 浏览:997
pythoneve 发布:2025-07-01 21:33:49 浏览:142
解压玩具怎么做只用水就可以做 发布:2025-07-01 20:52:56 浏览:161
解压放松室 发布:2025-07-01 20:52:43 浏览:125
存储器坏了 发布:2025-07-01 20:46:11 浏览:512
iphone怎么设锁屏密码 发布:2025-07-01 20:46:10 浏览:622
服务器如何处理千万请求 发布:2025-07-01 20:30:53 浏览:334
plsqldeveloperjob 发布:2025-07-01 20:29:59 浏览:805