this关键字的作用

合集下载

【C#】关键字this和base比较

【C#】关键字this和base比较
{
int num;
public BaseClane("in BaseClass()");
}
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int {0})", num);
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Friends Name: {0}", E[i]);
}
Console.ReadLine();
get { return this._age; }
}
// 打印雇员资料
public void PrintEmployee()
{
// 将Employee对象作为参数传递到DoPrint方法
Print.DoPrint(this);
Console.ReadLine();
}
}
/**//*
控制台输出:
in BaseClass()
in BaseClass(1)
*/
注意:
从静态方法中使用 base 关键字是错误的。
base 主要用于面向对象开发的对态这方面,在示例2中有体现。
+++++++++++++++++++++++++++++ 文章二 +++++++++++++++++++++++++++++

vue中的this用法

vue中的this用法

vue中的this用法Vue是一种流行的JavaScript框架,用于构建用户界面。

在Vue中,this关键字是非常常见的使用方法之一。

它用于引用当前组件实例,并提供了访问和操作组件属性和方法的能力。

本文将探讨在Vue中使用this关键字的各种用法。

1. 在Vue组件中使用this在Vue组件中,this关键字用于引用当前组件实例。

Vue组件是Vue应用程序中的基本构建块,可以将其看作是自定义HTML元素。

当我们在组件中使用this关键字时,它指的是当前的组件实例。

可以在Vue组件的生命周期钩子函数中使用this关键字。

生命周期钩子函数是在组件创建、更新和销毁的不同阶段被调用的函数。

以下是几个常用的生命周期钩子函数和它们与this的使用方法:- created: 在组件实例被创建后立即调用。

在这个钩子函数中,可以访问组件的属性和方法。

```javascriptexport default {created() {console.log(this.message); // 访问组件属性this.sayHello(); // 调用组件方法},data() {return {message: 'Hello Vue!',};},methods: {sayHello() {console.log('Hello!');},},};```- mounted: 在组件挂载到DOM后调用。

可以在这个钩子函数中执行DOM操作。

```javascriptexport default {mounted() {this.$refs.myButton.addEventListener('click', this.handleClick); },methods: {handleClick() {console.log('Button clicked!');},},};```- destroyed: 在组件实例被销毁前调用。

this关键字有什么作用?

this关键字有什么作用?

this关键字有什么作用?
问题:this关键字有什么作用?回答:
this关键字表示的是“当前对象”,当出现在类的实例方法中,代表的是调用该方法的对象;当出现在类的构造方法中时,代表的是调用该构造方法创建的对象。

在下列两种情况下,必须使用this:方法的形式参数与类的成员变量同名:
例如:
class Person{
String name;
int age;
public Person(String name, int age){
=name;
this.age=age;
}
}
一个类中的构造器调用同一个类中的另一个构造器:
调用的方法:
this([参数列表]) //处于构造器的第一行位置上
例如:
class Person{
String name;
int age;
public Person(String name){
=name;
}
public Person(String name, int age){
this(name); //调用另一构造器,必须放在第一条语句位置上this.age=age;
}
}。

java this关键字

java  this关键字
System.out.println("下面是调用方法的值");
me.getname("kate");
}
}
执行上述代码,结果如图6-17所示。
图6-17 this的用法
在该文件中,this表示当前对象。 =name语句表示一个赋值语句,是指当前对象具有的变量name,“name”表示的参数传递过来的数值。
}
public static void main(String[] args)
{
Obj_this me=new Obj_this("luci",20);
System.out.println("输出对象的属性");
System.out.println();
System.out.println(me.age);
public Obj_this(String name,int age) //构造方法
{
=name;
this.age=age;
}
public void getname(String name)
{
=name;
System.out.println(thiΒιβλιοθήκη );
java this
this关键字是Java中常用的关键字,可用于任何实例方法内,指向当前对象。也可指向对其调用当前方法的对象或在需要当前类型的对象引用时使用。
下面通过创建一个实例,来说明this关键字的用法。示例代码如下所示。
public class Obj_this
{
String name;
int age;

Java中的两个关键字——super、this

Java中的两个关键字——super、this

Java中的两个关键字——super、thisJava中的两个关键字——super、this ⼀、supersuper 是java中⽅的⼀个关键字,⽤它可以引⽤⽗类中的成员:super可⽤于访问⽗类中定义的属性super可⽤于调⽤⽗类中定义的成员⽅法super可⽤于在⼦类构造器中调⽤⽗类的构造器使⽤super关键字注意事项:1、当⼦类和⽗类都有同名的属性时,在⼦类中如果要使⽤⽗类的属性 super . 属性2、 super只能应⽤在成员⽅法和构造⽅法中,不能⽤在静态⽅法中(和this是⼀样的)3、如果在构造⽅法中使⽤必须放在第⼀⾏4、在构造⽅法中this()和super()不能同时出现super没有什么需要解释的地⽅,我们⽤代码来看看super具体的⼀些强⼤功能吧⽰例⼀、使⽤super调⽤基类的属性:public class Father { int num=20;}public class Child extends Father{ int num; public void print(){ num=10; super.num=30; System.out.println("num="+num); System.out.println("="+super.num); }}public class Test { public static void main(String[] args) { Child xm=new Child(); xm.print(); }}运⾏结果:⽰例⼆、使⽤super调⽤基类中的构造⽅法:public class Father { int num; public Father() { System.out.println("⽗类中的⽆参构造⽅法---"); } public Father(int num){ System.out.println("⽗类中的有参的构造⽅法----"+num); }}public class Child extends Father{ int num; public Child() { super(30); System.out.println("⼦类⽆参构造⽅法---"); } public Child(int num) { this.num = num; System.out.println("⼦类中的有参的构造⽅法---"+num); }}解释⼀下上⾯的这段代码:在Child类中的第⼀个构造函数⾥⾯,super(30);它会去调⽤⽗类中嗲有⼀个int型参数的构造⽅法。

this的用法归纳总结

this的用法归纳总结

this的用法归纳总结一、this关键字的基本概念与用法在许多编程语言中都有一个关键字叫做this,它代表当前对象或者当前执行上下文。

在JavaScript中,this是一个非常重要的概念,在不同的情况下具有不同的含义和作用。

本文将对this的用法进行归纳总结,帮助读者更好地理解和使用this关键字。

1.1 this的含义和作用简单来说,this关键字用于指向当前正在执行代码的对象。

它可以在方法内部引用对象自身,并提供了一种灵活的方式来访问对象属性和调用方法。

通过使用this,我们可以避免使用硬编码来引用对象,从而使得代码更加通用和可重复使用。

1.2 this的指向问题在JavaScript中,this的指向是动态确定的,取决于函数被调用时所处的上下文。

以下列举几种常见情况:1.2.1 方法调用时:当一个函数作为某个对象的方法调用时,this指向该对象。

1.2.2 函数调用时:当一个独立函数被直接调用时(不作为对象的方法),this指向全局对象(浏览器环境下是window)。

1.2.3 构造函数创建实例时:当通过new关键字调用构造函数创建一个新的实例时,this指向新创建的对象。

1.2.4 apply和call方法调用时:当使用apply或call方法来调用函数时,通过传递上下文参数,可以手动控制this的指向。

1.3 this的常见使用场景1.3.1 在对象内部访问属性和方法:通过使用this关键字,可以直接在对象内部访问自身的属性和方法。

例如:```javascriptconst person = {name: 'Alice',sayHello() {console.log(`Hello, ${}!`);}};person.sayHello(); // 输出 "Hello, Alice!"```1.3.2 DOM事件处理函数中:当给DOM元素添加事件处理函数时,该函数中的this指向触发事件的DOM元素。

this关键字的作用

this关键字的作用

this 关键字的作用this 关键字的作用this 关键字的用法1.this 是指当前对象自己。

当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this 引用。

如下面这个例子中: 矚慫润厲钐瘗睞枥庑赖賃軔朧。

public class Hello {String s =public Hello(String s){System.out.println(System.out.println(this.s = s;System.out.println(}public static void main(String[] args) {Hello x=}}运行结果:s = HelloWorld!1 -> this.s = Hello2 -> this.s = HelloWorld!在这个例子中, 构造函数Hello 中,参数s 与类Hello 的变量s 同名, 这时如果直接对s 进行操作则是对参数s 进行操作。

若要对类Hello 的成员变量s 进行操作就应该用this 进行引用。

运行结果的第一行就是直接对构造函数中传递过来的参数s 进行打印结果; 第二行是对成员变量s 的打印; 第三行是先对成员变量s 赋传过来的参数s 值后再打印,所以结果是HelloWorld! 聞創沟燴鐺險爱氇谴净祸測樅。

2.把this 作为参数传递当你要把自己作为参数传递给别的对象时,也可以用this 。

如: public class A {public A() {new B(this).print();}public void print() {System.out.println(}}public class B {A a;public B(A a) {this.a = a;}public void print() {a.print();System.out.println(}}运行结果:Hello from A!Hello from B!在这个例子中,对象 A 的构造函数中, 用new B(this) 把对象 A 自己作为参数传递给了对象 B 的构造函数。

Javathis关键字详解(3种用法)

Javathis关键字详解(3种用法)

Javathis关键字详解(3种⽤法)Java this关键字详解(3种⽤法)this 关键字是常⽤的关键字,可⽤于任何实例⽅法内指向当前对象,也可指向对其调⽤当前⽅法的对象,或者在需要当前类型对象引⽤时使⽤。

下⾯我们根据⽰例分别讲解 this 关键字的作⽤。

this.属性名⼤部分时候,普通⽅法访问其他⽅法、成员变量时⽆须使⽤ this 前缀,但如果⽅法⾥有个局部变量和成员变量同名,但程序⼜需要在该⽅法⾥访问这个被覆盖的成员变量,则必须使⽤ this 前缀。

例 1假设有⼀个教师类 Teacher 的定义如下:1. public class Teacher {2. private String name; // 教师名称3. private double salary; // ⼯资4. private int age; // 年龄5. }在上述代码中 name、salary 和 age 的作⽤域是 private,因此在类外部⽆法对它们的值进⾏设置。

为了解决这个问题,可以为 Teacher 类添加⼀个构造⽅法,然后在构造⽅法中传递参数进⾏修改。

代码如下:1. // 创建构造⽅法,为上⾯的3个属性赋初始值2. public Teacher(String name,double salary,int age) {3. = name; // 设置教师名称4. this.salary = salary; // 设置教师⼯资5. this.age = age; // 设置教师年龄6. }在 Teacher 类的构造⽅法中使⽤了 this 关键字对属性 name、salary 和 age 赋值,this 表⽰当前对象。

=name语句表⽰⼀个赋值语句,等号左边的 是指当前对象具有的变量 name,等号右边的 name 表⽰参数传递过来的数值。

创建⼀个 main() ⽅法对 Teacher 类进⾏测试,代码如下:1. public static void main(String[] args) {2. Teacher teacher = new Teacher("王刚",5000.0,45);3. System.out.println("教师信息如下:");4. System.out.println("教师名称:"++"\n教师⼯资:"+teacher.salary+"\n教师年龄:"+teacher.age);5. }运⾏该程序,输出的结果如下所⽰。

vue中的this用法

vue中的this用法

vue中的this用法Vue是一种流行的JavaScript框架,用于构建用户界面。

在Vue中,this是一个非常重要的关键字,用于引用当前组件实例。

本文将介绍Vue中this的不同用法和示例。

1. 访问数据在Vue组件中,数据通常存储在data对象中。

使用this关键字,我们可以访问和操作data中的属性。

下面是一个例子:```javascript<template><div><p>{{ message }}</p><button @click="changeMessage">Change Message</button></div></template><script>export default {data() {return {message: 'Hello Vue!'}},methods: {changeMessage() {this.message = 'Hello World!'}}}</script>```在上面的例子中,this.message引用了data中的message属性。

当点击按钮时,changeMessage方法被调用,修改message的值为'Hello World!'。

2. 调用方法在Vue组件中,我们可以在methods对象中定义各种方法。

通过this关键字,我们可以在组件中调用这些方法。

下面是一个例子:```javascript<template><div><p>{{ message }}</p><button @click="changeMessage">Change Message</button> </div></template><script>export default {data() {return {message: 'Hello Vue!'}},methods: {changeMessage() {this.updateMessage('Hello World!')},updateMessage(newMessage) {this.message = newMessage}}}</script>```在上面的例子中,changeMessage方法通过调用updateMessage方法来更新message的值。

this关键字

this关键字

this关键字this代表它所在函数所属对象的引⽤。

简单说:哪个对象在调⽤this所在的函数,this就代表哪个对象。

this关键字主要有以下三个作⽤:this调⽤本类中的属性,也就是类中的成员变量;this调⽤本类中的其他⽅法;this调⽤本类中的其他构造⽅法,调⽤时要放在构造⽅法的⾸⾏。

(this语句只能定义在构造函数的第⼀⾏,因为在初始化时须先执⾏)this关键字的基本⽤法引⽤成员变量public class Person{String name; //定义成员变量nameprivate void SetName(String name) { //定义⼀个参数(局部变量)name=name; //将局部变量的值传递给成员变量}}如上⾯这段代码中,Person类中有⼀个成员变量name,同时在SetName⽅法中有⼀个形式参数,名字也是name,然后在⽅法中将形式参数name的值传递给成员变量nam。

虽然我们可以看明⽩这个代码的含义,但是作为Java编译器它是怎么判断的呢?到底是将形式参数name的值传递给成员变量name,还是反过来将成员变量name的值传递给形式参数name呢?也就是说,两个变量名字如果相同的话,那么Java如何判断使⽤哪个变量?此时this这个关键字就起到作⽤了。

this这个关键字其代表的就是对象中的成员变量或者⽅法。

也就是说,如果在某个变量前⾯加上⼀个this 关键字,其指的就是这个对象的成员变量或者⽅法,⽽不是指成员⽅法的形式参数或者局部变量。

因此在上述代码中,代表的就是对象中的成员变量,⼜叫做对象的属性,⽽后⾯的name则是⽅法的形式参数,代码=name就是将形式参数的值传递给this指向对象的成员变量。

⼀看到这个this关键字就知道现在引⽤的变量是成员变量或者成员⽅法,⽽不是局部变量。

这⽆形中就提⾼了代码的阅读性。

调⽤类的构造器⽅法public class Person {public Person(){ //⽆参构造器⽅法this(“Hello!”);}public Person(String name){ //定义⼀个带形式参数的构造⽅法}}在上述代码中,定义了两个构造⽅法,⼀个带参数,另⼀个没有带参数。

this关键字的使用

this关键字的使用

this关键字的使⽤this关键字介绍:this关键字的使⽤:1.this可以⽤来修饰或者调⽤:属性、⽅法、构造器2.this修饰属性和⽅法:理解为:当前对象。

当修饰构造器的时候:理解为当前正在创造的对象在类的⽅法中,我们可以使⽤“this.属性”或者“this.⽅法”的⽅式,调⽤当前对象属性或⽅法。

但是通常情况下我们都选择省略“this.”。

特殊的:如果⽅法的形参和类的属性同名时,必须使⽤this关键字(this.变量),表明此变量是属性,⽽⾮形参。

在类的构造器中,我们可以使⽤“this.属性”或者“this.⽅法”的⽅式,调⽤当前对象属性或⽅法。

但是通常情况下我们都选择省略“this.”。

特殊的:如果构造器的形参和类的属性同名时,必须使⽤this关键字(this.变量),表明此变量是属性,⽽⾮形参。

this可以在⽅法⾥⾯调⽅法,构造器⾥⾯调构造器this()我们在类的构造器中,可以显⽰的使⽤“this(形参列表)”⽅式,调⽤本类中指定的其他构造器构造器中不能通过“this(形参列表)”⽅式调⽤⾃⼰如果⼀个类中有n个构造器,则最多有n-1构造器中使⽤了“this(形参列表)”规定:“this(形参列表)”必须声明在当前构造器的⾸⾏构造器内部,最多只能声明⼀个“this(形参列表)”,⽤来调⽤其他构造器package com.myobjectoriented01.nonworking;public class Person10 {private String name;private int age;public Person10() {}public Person10(int age) {this.age=age;}public Person10(String name,int age) {this(age);=name;}public String getName() {return name;}public int getAge() {return age;}}package com.myobjectoriented01.nonworking;public class Person10Text {public static void main(String[] args) {Person10 p1=new Person10("lily",20);System.out.println(p1.getAge()+p1.getName());}}题⽬⼀:Boy类的代码:package com.myobjectoriented.nonworking;/**** @Desciption* @author Abraham* @email 1290807550@* @version JDK1.8* @date 2021年3⽉24⽇下午4:48:33*/public class Boy {private String name;private int age;public Boy(String name,int age) {=name;this.age=age;}public void setName(String name) {=name;}public String getName() {return ;}public void setAge(int age) {this.age=age;}public int getAge() {return this.age;}public void marry(Girl girl) {System.out.println("我想娶"+girl.getName());}public void shout(int age) {if(this.age>22) {System.out.println("我想结婚!");}else {System.out.println("年纪不够,再去打打酱油");} }}Girl类的代码:package com.myobjectoriented.nonworking;/**** @Desciption* @author Abraham* @email 1290807550@* @version JDK1.8* @date 2021年3⽉24⽇下午4:48:39*/public class Girl {private String name;private int age;public Girl(String name,int age) {=name;this.age=age;}public void setName(String name) {=name;}public String getName() {return ;}public void marry(Boy boy) {System.out.println("我想嫁给"+boy.getName());boy.marry(this);}public void compare(Girl girl) {if(this.age>girl.age) {System.out.println("我⼤");}else if(this.age<girl.age){ System.out.println("她⼤");}else System.out.println("⼀样⼤");}}测试类的代码:package com.myobjectoriented.nonworking;/**** @Desciption* @author Abraham* @email 1290807550@* @version JDK1.8* @date 2021年3⽉24⽇下午5:20:04*/public class BoyGirlText {public static void main(String[] args) {Boy boy=new Boy("梁⼭伯",25);boy.shout(25);System.out.println(boy.getAge());Girl girl=new Girl("祝英台",23);//boy.marry(girl);girl.marry(boy);Girl girl01=new Girl("苍⽼师",23);pare(girl01);}}银⾏账户练习题⽬:先造⼀个银⾏账户的类package com.myobjectoriented.nonworking;/**** @Desciption* @author Abraham* @email 1290807550@* @version JDK1.8* @date 2021年3⽉24⽇下午5:48:36*/public class BankAccount {private int ID;//账户名private double balance;//余额private double annualInterestRate;//年利率public BankAccount(int ID,double balance,double annualInterestRate) {//构造器:直接传递客户信息 this.ID=ID;this.balance=balance;this.annualInterestRate=annualInterestRate;}public int getID() {return this.ID;}public double getbalance() {return this.balance;}public double getannualInterestRate() {return this.annualInterestRate;}public void setID(int ID) {this.ID=ID;}public void setbalance(double balance) {this.balance=balance;}public void setannualInterestRate(double annualInterestRate) {this.annualInterestRate=annualInterestRate;}public void withdraw(double amount) {//取钱if(amount>balance) {System.out.println("余额不⾜,取款失败!");return;}this.balance-=amount;System.out.println("成功取出"+amount+"元");}public void deposit(double amount) {//存钱this.balance+=amount;System.out.println("成功存⼊"+amount+"元");}public void printBankAccountMoney(){System.out.println("当前账户余额为:"+balance);}}然后造⼀个客户的类package com.myobjectoriented.nonworking;/**** @Desciption* @author Abraham* @email 1290807550@* @version JDK1.8* @date 2021年3⽉24⽇下午7:37:29*/public class Customer {private String firstName;private String lastName;private BankAccount account;public Customer(String f,String l) {firstName=f;lastName=l;}public String getFirstname() {return this.firstName;}public String getLastname() {return stName;}public BankAccount getBankAccount() {return account;}public void setBankAccount(BankAccount account) {this.account=account;}public void customerinfomation() {System.out.println("客户名:"+firstName+" "+lastName+" "+"账户名:"+account.getID()+" "+"账户余额:"+account.getbalance()+" "+"当前利率:"+account.getannualInterestRate()); }}最后造⼀个案例类:package com.myobjectoriented.nonworking;public class Customertext {public static void main(String[] args) {Customer customer=new Customer("Jane","Smith");BankAccount accountJane=new BankAccount(1000,2000,0.0123);//下⾯三⾏是错误写法,不需要这么⿇烦//customer.getBankAccount().setID(1000);//customer.getBankAccount().setbalance(2000);//customer.getBankAccount().setannualInterestRate(0.0123);customer.setBankAccount(accountJane);customer.getBankAccount().deposit(100);customer.getBankAccount().withdraw(960);customer.getBankAccount().withdraw(2000);customer.customerinfomation();}}package com.myobjectoriented11.nonworking;public class Account {private double balance;//余额public Account(double init_balance) {//初始化余额this.balance=init_balance;}public double getBalance() {return this.balance;}public void deposit(double money) {if(money>0) {this.balance+=money;System.out.println("成功存⼊款项"+money+"元,"+"当前账户余额为:"+this.balance+"元。

python中this用法

python中this用法

python中this用法在Python中,this是一个非常常用的语法结构,它通常用于处理可变参数和回调函数。

这个结构在许多情况下都非常有用,可以简化代码并提高代码的可读性。

本文将详细介绍Python中的this用法,包括其定义、常见用法和注意事项。

一、定义在Python中,this是一个约定用于表示传递给回调函数或可变参数的当前对象。

它通常以小写字母t开头,后面跟着一个空格,表示当前对象。

这个结构的使用可以帮助开发者更好地理解代码,因为它明确地指出了当前正在处理的对象。

二、常见用法1.可变参数处理在Python中,可变参数允许您传递任意数量的参数给函数。

在处理可变参数时,使用this可以帮助您明确指定当前正在处理的参数。

例如:```pythondefprocess_arguments(*args,**kwargs):forarginargs:print(f"Argument:{arg}")forkey,valueinkwargs.items():print(f"Keywordargument:{key}={value}")```在这个例子中,args是一个可变参数列表,而kwargs是一个关键字参数字典。

使用this语法可以明确指定当前正在处理的参数类型。

2.回调函数在Python中,回调函数是一种常见的设计模式,用于处理异步操作或事件驱动的编程。

在回调函数中,this可以用来引用当前正在处理的实例或对象。

例如:```pythonclassCallbackExample:def__init__(self):self.count=0self.callbacks=[]defregister_callback(self,callback):self.callbacks.append(callback)print(f"Callbackregistered:{callback}")defhandle_event(self):self.count+=1forcallbackinself.callbacks:print(f"Handlingevent:{this}")#使用this引用当前对象callback(self)#调用回调函数并传递当前对象作为参数```在这个例子中,回调函数是一个简单的函数对象,它接受一个当前对象作为参数。

java中this用法总结

java中this用法总结

java中this⽤法总结1,当局部变量和成员变量重名的时候,在⽅法中使⽤this表⽰成员变量以⽰区分。

class Demo{String str = "这是成员变量";void fun(String str){System.out.println(str);System.out.println(this.str);this.str = str;System.out.println(this.str);}}public class This{public static void main(String args[]){Demo demo = new Demo();demo.fun("这是局部变量");}}分析:上⾯的类Demo中有⼀个成员变量str和⼀个局部变量str(类⽅法中的形式参数),很显然局部变量和成员变量重名,这个时候⼀般在⽅法中直接使⽤str实际上是使⽤局部变量str,对成员变量str没有任何影响,此时如果需要对成员变量做点什么,就必须使⽤this关键字。

有个问题,如果⽅法中没有str,那么在⽅法中使⽤成员变量str会是什么情况呢?实际上是⽅法内的所有操作都是针对成员变量str的。

java编程思想的84页中部有这样⼀句话:如果在⽅法内部调⽤同⼀个类的另⼀个⽅法,就不必使⽤this。

同样,在⼀个⽅法中如果没有局部变量和成员变量同名,那么在这个⽅法中使⽤成员变量也不必使⽤this,可以运⾏下⾯的代码看看。

class Demo{String str = "这是成员变量";void fun(String str1){System.out.println(str1);System.out.println(str);}}public class This{public static void main(String args[]){Demo demo = new Demo();demo.fun("这是局部变量");}}2,this关键字把当前对象传递给其他⽅法这⾥有个很经典的例⼦,就是java编程思想的85页的例⼦。

this指向的理解

this指向的理解

this指向的理解在JavaScript中,`this`关键字是一个特殊关键字,用于引用当前正在作用的对象。

它是JavaScript中操作DOM对象和函数时的一个重要概念。

`this`关键字在作用域中的位置非常重要。

只有在函数定义中使用`this`,它才会指向当前函数所在的作用域。

如果在函数体中使用`this`,则`this`会指向函数体本身。

下面是一个简单的示例,说明`this`关键字在作用域中的用法: ```javascriptfunction myFunction() {console.log("this is within myFunction");}myFunction(); // this is within myFunction```在上面的示例中,`.myFunction()`本身是一个函数调用,`this`会指向函数调用本身。

当函数调用`myFunction()`时,`this`也会指向函数调用本身。

另一个示例是:```javascriptfunction myFunction() {console.log("this is within myFunction");}myFunction.call(this); // this is within myFunction```在这个示例中,`myFunction.call(this)`将函数call到`myFunction`对象上,并将`this`指向调用的函数本身。

除了使用`call()`和`apply()`方法之外,`this`关键字还可以通过属性引用来访问对象的属性。

例如:```javascriptfunction myFunction() {console.log("this is within myFunction"); = "John";} = "Jane"; // this is within myFunction ```在这个示例中,我们将``更改为`"Jane"`。

Java语言中this关键字的用法详解_王丽丽

Java语言中this关键字的用法详解_王丽丽
由运行结果可以看出,通过n a m e=n a m e并没有正确的将内
容赋给中
的,跟类中的属性完全不沾边。
另外,这个程序代码中,有一个成员变量n a m e,同时在方
法中有个形式参数,参数名也是n a m e。然后在方法中将形式参
数name的值传递给成员变量name。虽然我们可以看明白这个代
}
public Student (String name)
{ System.out.println("新对象实例化") ; = name ;
}
public Student (String name,int age) // 通过构造方
法赋值
{
System.out.println("新对象实例化") ;
也是相同的道理。在方法体内定义的变量称为局部变量,在类的 内部方法体的外部定义的变量称为成员变量。如果成员变量和方 法中的局部变量的名字相同时,那么在方法中成员变量将会被屏 蔽。如果这个时候还要使用成员变量,就需要使用关键字t h i s。 使用this引用成员变量的方法格式:this.成员变量名。
“this(参数列表)”的形式完成,用this修改以上的代码如下:
class Student
{ private String name ; private int age ; public Student(){
System.out.println("新对象实例化") ; } public Student (String name)
示出哪一个是类中的属性,就要加上“t h i s.属性名称”的操作,
将student类的代码改进如下:
class Student { private String name;

Java中this,static,final,const用法详解

Java中this,static,final,const用法详解

Java中this,static,final,const⽤法详解⼀、this⽤类名定义⼀个变量的时候,定义的应该只是⼀个引⽤,外⾯可以通过这个引⽤来访问这个类⾥⾯的属性和⽅法,那们类⾥⾯是够也应该有⼀个引⽤来访问⾃⼰的属性和⽅法纳?JAVA提供了⼀个很好的东西,就是 this 对象,它可以在类⾥⾯来引⽤这个类的属性和⽅法。

Java关键字this只能⽤于⽅法⽅法体内。

当⼀个对象创建后,Java虚拟机(JVM)就会给这个对象分配⼀个引⽤⾃⾝的指针,这个指针的名字就是 this。

因此,this只能在类中的⾮静态⽅法中使⽤,静态⽅法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使⽤总结”⼀⽂中给出了明确解释。

并且this只和特定的对象关联,⽽不和类关联,同⼀个类的不同对象有不同的this。

总结⼀下,this主要要三种⽤法:1、表⽰对当前对象的引⽤!2、表⽰⽤类的成员变量,⽽⾮函数参数,注意在函数参数和成员变量同名是进⾏区分!其实这是第⼀种⽤法的特例,⽐较常⽤,所以那出来强⼀下。

3、⽤于在构造⽅法中引⽤满⾜指定参数类型的构造器(其实也就是构造⽅法)。

但是这⾥必须⾮常注意:只能引⽤⼀个构造⽅法且必须位于开始!注意:this不能⽤在static⽅法中!所以甚⾄有⼈给static⽅法的定义就是:没有this的⽅法!虽然夸张,但是却充分说明this不能在static⽅法中使⽤!⼆、staticstatic表⽰“全局”或者“静态”的意思,⽤来修饰成员变量和成员⽅法,也可以形成静态static代码块,但是Java语⾔中没有全局变量的概念。

被static修饰的成员变量和成员⽅法独⽴于该类的任何对象。

也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,Java虚拟机就能根据类名在运⾏时数据区的⽅法区内定找到他们。

因此,static对象可以在它的任何对象创建之前访问,⽆需引⽤任何对象。

this,super关键字

this,super关键字

this和super 和
• private String strain;//品种在子类中使用 在子类中使用this的前提就是 在子类中使用 的前提就是 父类中存在无参构造。 父类中存在无参构造。 • public Dog(String strain){this();父类必须存在无参 父类必须存在无参 • this.strain=strain;} • public Dog(String name1,String strain){ • super(name1);显式调用父类有参 显式调用父类有参 • this.strain=strain; } • public Dog(){ } • 如果子类的构造函数中没有通过 子类的构造函数中没有通过super显式调用父类的有 子类的构造函数中没有通过 显式调用父类的有 参构造方法,则系统默认会调用父类的无参构造方法 系统默认会调用父类的无参构造方法。 参构造方法 系统默认会调用父类的无参构造方法 this(),super()不能用于同一个构造 不能用于同一个构造因为他们都要位于构造 不能用于同一个构造 的第一条语句.
this和static的区别 和 的区别
• static修饰 修饰的属性和方法称为类属性 类变 类属性(类变 修饰 类属性 类方法.不用static修饰的属性和方法 量)和类方法 类方法 称为实例属性 实例变量 实例方法 实例属性(实例变量 实例方法。 实例属性 实例变量),实例方法 • this指的是当前实例【不能使用类方法中】。 当前实例【 当前实例 不能使用类方法中】 • 由于静态成员函数存在于类一级 静态成员函数存在于类一级,并且不 静态成员函数存在于类一级 是对象的一部分,因此没有 this 指针。在 没有 指针 静态方法中引用 this 是错误的。

第五章:this关键字的用法

第五章:this关键字的用法

this关键字this可以强调用的是本类中的方法,还可以表示类中的属性、可以使用this调用本类中的方法、this表示当前的对象。

一.使用this调用本类中的属性在程序中可以使用this调用本类属性class Preason{private String name;private int age;public void Preason(String n,int a){name=n;age=a;}public String getInfo(){return "姓名:"+name+",年龄:"+age;}}在此构造方法中目的很明确,就是为类中的属性赋值,但是从构造方法的传递参数很难看出参数n和a的意义,所以为了可以清楚的表示参数的意义,可以进行如下修改:class Preason{private String name;private int age;public void Preason(String name,int age){name=name;age=age;}public String getInfo(){return "姓名:"+name+",年龄:"+age;}}此时可以从参数的名称中看出其真实意义,要传递的第一个参数是姓名,第二个参数是年龄,但是构造方法内部会出现错误,运行结果为:姓名:null,年龄:0从程序运行结果中可以发现,姓名为null,年龄为0,并没有把构造方法传递进去的参数值赋给属性,那么就证明现在的构造方法并不能成功的把传递进去的值赋值给类中的属性。

由于在赋值时属性并不是明确地被指出,所以造成此错误,而之中错误就可以用this关键字来解决。

代码修改如下:class Person{private String name;private int age;public Person(){}public Person(String name,int age){=name;this.age=age;}public String getInfo(){return "姓名:"++",年龄:"+this.age;}}public class ThisDemo01{public static void main(String[] args){Person per1=new Person("张三",30);System.out.println(per1.getInfo());}}运行结果:姓名:张三,年龄:30从结果来看,程序的目的达到了。

this的用法

this的用法

1.this关键字:super代表父类对象。

this指对象本身。

this,super都不能放在静态方法里,因为他们时实例(对象)相关的。

注意,main 方法也是静态方法。

用法1:private int stuNo;public void setStuNo(int stuNo){this.stuNo=stuNo;}public int getStuNo(){return this.stuNo;}用法2:类的构造器可以相互调用,调用方式是使用this关键字来实现。

如:public Point(){this(0,0);相当于this.x=0;this.y=0;有this了,super就没有了。

不 } 执行super了。

public Point (double x,double y){//super();this.x=x;this.y=y;}在构造器中,super()和this(0,0);这样的,不能同时出现。

如:super();生成一个对象this(0,0);又生成一个对象都显示就有问题,super构造与this构造不能同时出现。

☆:this代表的是对象的本身。

Java语言中,方法重载要求( A )A.采用不同的参数列表。

B.采用不同的返回值类型。

C.调用时,用类名或对象名做前缀。

D.在参数列表中使用的参数名不同。

this:构造器中指该构造器所创建的新对象。

方法中指调用该方法的对象。

顺序:比如创建Person p=new Person(); extends Animal首先执行构造方法中Super这时,先走Animal类的变量定义,有赋值的给变量赋值。

然后走Animal的构造方法,然后走person类的变量定义,然后走person的构造方法。

(这是一步步递归)。

2.初始化块:不管使用哪个构造器创建对象,它都会被首先运行,在成员运行之后,然后才是构造器的主体部分被执行。

如下面的初始化块:作用是给属性赋值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

this关键字的作用
this关键字表示的是“当前对象”,当出现在类的实例方法中,代表的是调用该方法的对象;当出现在类的构造方法中时,代表的是调用该构造方法创建的对象。

在下列两种情况下,必须使用this:方法的形式参数与类的成员变量同名:例如:class Person{String name;int age;public Person(String name, int age){=name;this.age=age;}}一个类中的构造器调用同一个类中的另一个构造器:调用的方法:this([参数列表]) //处于构造器的第一行位置上例如:class Person{String name;int age;public Person(String name){=name;}public Person(String name, int age){this(name); //调用另一构造器,必须放在第一条语句位置上this.age=age;}
1。

相关文档
最新文档