this关键字的含义

合集下载

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:方法的形式参数与类的成员变量同名:例如: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。

Java里的this到底是什么意思

Java里的this到底是什么意思

Java里的this到底是什么意思
this代表当前对象的意思。

这个this肯定是用在某个类的方法里吧。

呵呵,我们继续往下说。

举个例子:
public class persion{
private String name=null;
private int age;
public void setName(String 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 ,没错。

这些都是最基本的了。

开始学只要记住这个就可以了。

慢慢的其
他的用法也就无师自通了!。

c#this 的使用方法

c#this 的使用方法

this(C# 参考)this关键字引用类的当前实例。

以下是this的常用用途:∙限定被相似的名称隐藏的成员,例如:复制代码public Employee(string name, string alias){ = name;this.alias = alias;}∙将对象作为参数传递到其他方法,例如:复制代码CalcTax(this);∙声明索引器,例如:复制代码public int this [int param]{get { return array[param]; }set { array[param] = value; }}由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有this指针。

在静态方法中引用this是错误的。

示例在本例中,this用于限定Employee类成员name和alias,它们都被相似的名称隐藏。

this还用于将对象传递到属于其他类的方法CalcTax。

复制代码// keywords_this.cs// this exampleusing System;class Employee{private string name;private string alias;private decimal salary = 3000.00m;// Constructor:public Employee(string name, string alias){// Use this to qualify the fields, name and alias: = name;this.alias = alias;}// Printing method:public void printEmployee(){Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);// Passing the object to the CalcTax method by using this: Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));}public decimal Salary{get { return salary; }}}class Tax{public static decimal CalcTax(Employee E){return 0.08m * E.Salary;}}class MainClass{static void Main(){// Create objects:Employee E1 = new Employee("John M. Trainer", "jtrainer");// Display results:E1.printEmployee();}}输出Name: John M. TrainerAlias: jtrainerTaxes: $240.00比如你的类中有一个成员变量为a。

C#中几个关键词internal,base,this的用法

C#中几个关键词internal,base,this的用法

1.关键词internal的访问限制:在定义一个类库ClassLibrary后,在给原有的类MyExternalClass,的基础上再添加一个internal关键词修饰的类internal class MyInternal,然后生成一下这个类库。

再新建一个项目,并把这个类库的.dll包用添加引用的方式添加到这个项目中,并把项目名用using 添加到开头,在这个项目的主函数中添加下列代码:MyInteralClass myObj = new MyExternal();Console.WriteLine("myObj.ToString()");Console.ReadKey();运行出现错误,分析到关键字internal说明MyInternal类是内部的,外部不能访问。

如果换成MyExternal类运行正确!2.关键词base和this:class ManAge{public int age = 0;public void PrintAge(){int tAge;tAge = age + 1;Console.WriteLine("age1={0}", tAge);}}class Program:ManAge{static void Main(string[] args){Program callPor = new Program();callPor.PrintAge();Console.ReadKey();}new public void PrintAge(){int age = 20;Console.WriteLine("age2={0}", age);Console.WriteLine("age3={0}", this.age);base.age = 25;base.PrintAge();}}运行结果为:age2=20;age3=0;ge1=26;开始百思不得其解,最后了解到,this代表“这个对象”,而base 代表“这个对象”的基类,age2很容易理解,age3是当前对象的值this.age,对象继承自基类,所以为0;而age1,在子类的方法中有base.age=25,代表的是当前对象的基类中的age为25,再调用基类方法,使25加1,所以得26。

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 的构造函数。

PHP常用的关键字

PHP常用的关键字

PHP常用的关键字PHP常用的关键字PHP可编译成具有与许多数据库相连接的函数。

将自己编写外围的函数去间接存取数据库。

通过这样的途径当更换使用的数据库时,可以轻松地修改编码以适应这样的变化。

下文yjbys店铺为大家分享的是PHP常用关键字,一起来看看吧!final:在PHP中final关键字充当锁的作用,当定义类的时候该类不能被继承,当用来定义方法的时候该方法不能被重载self:用来访问当前类中内容的关键字,类似于$this关键字,但$this需要类实例化后才能使用,$this不能够访问类中的静态成员,self可以直接访问当前类中的`内部成员,包括静态成员。

$this关键字类实例化后可以使用,也可以在类的内容访问非静态化成员static:单独占据内存,只初始化一次,访问静态成员要用::,类中的静态成员和方法可以直接访问,不需要实例化const:用来定义类中的常量,类似PHP外部定义的常量的关键字define();CONSET只能修饰类当中的成员属性!常量建议都大写,不使用$关键字是不需要加$的。

在类中访问常量也是用self关键字举例:/** Created on 2012-2-12** To change the template for this generated file go to* Window - Preferences - PHPeclipse - PHP - Code Templates */abstract class cl1{static $ss='我的电脑';//静态成员变量public $aa='你的电脑';abstract function fun1();abstract function fun2();abstract function fun3();function ok(){echo self::$ss;//在类的内部访问static成员也要用的self关键字echo $this->aa;}}class cl2 extends cl1{function fun1(){}function fun2(){}function fun3(){return 1;}}$instance=new cl2();echo $instance->fun3().$instance->ok();echo cl1::$ss;//无需实例化也可以访问到变量ss?>【PHP常用的关键字】。

map方法的四个参数

map方法的四个参数

map方法的四个参数标题:深入解析map方法的四个参数引言概述:在JavaScript中,map()方法是数组对象的一个常用方法,它能够对数组中的每个元素进行操作并返回一个新的数组。

map()方法接受四个参数,包括回调函数、this值、当前索引以及原数组。

本文将深入探讨map()方法的四个参数,帮助读者更好地理解和应用该方法。

正文内容:1. 回调函数参数1.1 回调函数的定义回调函数是作为参数传递给map()方法的函数。

它可以接受三个参数:当前元素的值、当前元素的索引和原数组本身。

1.2 使用回调函数的目的回调函数的作用是定义对每个元素的操作。

通过在回调函数中编写逻辑,我们可以对每个元素进行处理、修改或者生成新的值。

2. this值参数2.1 this值的含义this值指定了回调函数中的this关键字的值。

它决定了在回调函数中如何使用this关键字,以及this关键字所指向的对象。

2.2 this值的默认设置如果不传递this值参数,map()方法将使用全局对象作为默认的this值。

但是,建议在使用map()方法时显式地指定this值,以避免不必要的问题。

3. 当前索引参数3.1 当前索引的作用当前索引参数表示当前元素在数组中的索引位置。

它可以用于在回调函数中进行条件判断、计算或者其他操作。

3.2 使用当前索引的注意事项当前索引参数在一些特定的情况下非常有用,但在一般情况下,我们应该谨慎使用它。

过度依赖索引可能导致代码可读性下降和维护困难。

4. 原数组参数4.1 原数组的作用原数组参数表示调用map()方法的数组本身。

它可以在回调函数中用于访问和操作原数组的其他元素。

4.2 使用原数组的注意事项在回调函数中修改原数组可能会导致不可预料的结果,因此我们应该避免直接修改原数组。

如果需要修改原数组,应该使用其他方法或者创建一个新的数组。

总结:综上所述,map()方法的四个参数分别是回调函数、this值、当前索引和原数组。

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){ //定义⼀个带形式参数的构造⽅法}}在上述代码中,定义了两个构造⽅法,⼀个带参数,另⼀个没有带参数。

vue中this理解

vue中this理解

vue中this理解Vue.js是一款流行的JavaScript框架,它的核心概念之一就是this 关键字。

在Vue中,this是指向当前组件实例的引用。

理解this的含义对于正确使用Vue来构建应用程序非常重要。

本文将从不同角度探讨Vue中this的用法和理解。

一、this的指向在Vue组件中,this指向当前组件实例。

这意味着我们可以通过this来访问组件的属性和方法。

例如,我们可以通过this.message 来访问组件的data中定义的message属性。

我们也可以通过this.methodName来调用组件中定义的方法。

这种通过this来访问组件实例的方式使得我们可以在Vue中轻松地操作组件的状态和逻辑。

二、this的作用域在Vue中,this的作用域取决于其所在的上下文。

在Vue的生命周期钩子函数中,this指向当前组件实例。

在Vue实例的选项中,例如methods、computed等属性中,this同样指向当前组件实例。

然而,在回调函数中,this的指向可能会发生变化。

为了确保this 指向的正确性,我们常常使用箭头函数或使用bind方法绑定this。

三、this的用法在Vue中,this的用法非常灵活。

除了访问属性和方法之外,this还可以用于事件处理、计算属性、过滤器等方面。

1. 事件处理在Vue中,我们可以使用v-on指令来监听DOM事件,并通过方法来处理事件。

在方法中,this指向当前组件实例,我们可以在方法中使用this来访问组件的属性和方法。

例如:```html<button v-on:click="handleClick">点击我</button>``````javascriptmethods: {handleClick() {console.log(this.message);}}```在上述代码中,当点击按钮时,handleClick方法会被调用,并输出组件的message属性。

c语言的37个关键字及其含义

c语言的37个关键字及其含义

c语言的37个关键字及其含义C语言是一种广泛使用的编程语言,拥有许多关键字,这些关键字在程序中具有特殊的用途和含义。

下面是C语言的37个关键字及其含义:1. auto:用于声明自动存储类别的局部变量。

2. break:在循环或switch语句中,用于跳出当前循环或switch分支。

3. case:在switch语句中,用于标识不同的选择分支。

4. char:用于声明字符类型的变量或函数。

5. const:用于声明常量,其值不能被修改。

6. continue:用于跳过当前循环迭代,转到下一次迭代。

7. default:在switch语句中,用于定义默认情况的代码块。

8. do:用于创建一个执行语句块直到满足特定条件的循环。

9. double:用于声明双精度浮点数类型的变量或函数。

10. else:在if语句中,用于定义条件不为真时执行的代码块。

11. enum:用于声明枚举类型和枚举常量。

12. extern:用于声明变量或函数是在其他文件或模块中定义的。

13. float:用于声明单精度浮点数类型的变量或函数。

14. for:用于创建一个循环,指定初始条件、循环条件和循环迭代。

15. goto:用于无条件地转移到程序中的标记语句。

16. if:用于执行条件语句块,如果条件为真,则执行代码块。

17. int:用于声明整数类型的变量或函数。

18. long:用于声明长整数类型的变量或函数。

19. register:用于声明寄存器存储类别的局部变量。

20. return:用于从函数中返回值。

21. short:用于声明短整数类型的变量或函数。

22. signed:用于声明有符号数类型的变量或函数。

23. sizeof:用于获取数据类型或变量的大小。

24. static:用于声明静态存储类别的局部变量。

25. struct:用于声明结构体类型和结构体变量。

26. switch:用于多个选择分支的条件语句。

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;

C#类的构造方法(this、方法重载)、析构方法

C#类的构造方法(this、方法重载)、析构方法

今天这节课我们来学习类的构造方法和析构方法,同学们现在回忆一下在类一系列中,学习到创建一个类ClassName的实例,也就是对象ObjName时基本语法为:ClassName bjName=new ClassName();我说过,new后面的ClasName()实际上指的是这个类的构造方法,而且我也说过,这个()中可以有参数,这个有参数,就是指构造方法可以有参数,那么什么是类的构造方法呢?构造方法--------------------------------------------------------------------------------构造方法又叫构造函数,也有人叫做构造器,其实就是对类进行初始化。

构造方法是一种特殊的方法,在类实例创建之前执行,用来初始化对象,完成对象创建前所需的相关设定,构造方法允许将类实例初始为有效状态的特殊方法,这就是构造方法的定义,用通俗的话说,就是开车前的暖车工作,用洗衣机之前的接上电源的工作,参数可以有多个可以这样理解,洗衣机的插头有两头的、有三项的,在创建洗衣机对象的时候,要分清插头的种类,才能创建成功对象。

为什么说构造方法是特殊的方法呢?因为构造方法本身没有返回值,并且通常是public访问类型,方法的名称必须与类名相同,当我们没有明确的在类中定义构造方法的时候,例如我们以前所定义的类,都是没有定义构造方法的,这时系统会使用默认的构造方法,如创建ClassName类的默认构造方法,public ClassName(){}。

默认的构造方法并没有进行任何类初始化行为,你可以自己定义构造方法,当然如果你有自定义构造方法,那么默认的构造方法就会失效了。

也就是说,当我们在ClassName类中没有定义构造方法时,C#语言会生成一个空的构造方法ClassName(),当然这个空的方法是什么也没做,只是为了让我们定义的类能够在创建对象时顺利的实例化而已。

构造方法可以有两个,因为参数的不同区别开,这就构成了方法的重载,方法重载的最大的好处在与可以利用相同的名称来组织应用程序的方法成员,当一个复杂的类被创建的时候,对功能相同的方法最好采用相同的命名方式,用不同的参数来区别,比如,计算面积时,我们就可以把四边形面积的计算方法的名字起同一个,用参数来区别如正方形定义一个参数(一个边长),长方形定义三个参数(一个长,一个宽,另一个长方形的标志如0),梯形定义三个参数(一个底,一个高,另一个梯形的标志如1),通过第三个参数标志区别长方形和梯形不同的面积公式。

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对象的理解?

谈谈你对This对象的理解?1、this总是指向函数的直接调⽤者(⽽⾮间接调⽤者);2、如果有new关键字,this指向new出来的那个对象;3、在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window;看看下边⼏个例⼦,或许可以更好的理解this对象this的指向this表⽰当前对象,this的指向是根据调⽤的上下⽂来决定的,默认指向window对象全局环境全局环境就是在<script></script>⾥⾯,这⾥的this始终指向的是window对象,<script>console.log(this)</script> 指向window对象局部环境在全局作⽤域下直接调⽤函数,this指向window<script>function func(){console.log(this) ;//this指向的还是window对象}func();</script>对象函数调⽤,哪个对象调⽤就指向哪个对象<input type="button"id="btnOK" value="OK"><script>varbtnOK=document.getElementById("btnOK");btnOK.onclick=function(){console.log(this);//this指向的是btnOK对象}</script>使⽤ new 实例化对象,在构造函数中的this指向实例化对象。

<script>var Show=function(){this.myName="Mr.Cao"; //这⾥的this指向的是obj对象}var obj=new Show();</script>使⽤call或apply改变this的指向<script>var Go=function(){this.address="深圳";}var Show=function(){console.log(this.address);//输出深圳}var go=new Go();Show.call(go);//改变Show⽅法的this指向go对象</script>。

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

this关键字的含义
问题:this关键字的含义回答:
this是一个保留字,仅限于构造函数和方法成员中使用
在类的构造函数中出现表示对正在构造的对象本身的引用,在类的方法中出现表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中出现表示对调用该方法的结果的引用
this保留字不能用于静态成员的实现里,因为这时对象或结构并未实例化
在C# 系统中,this 实际上是一个常量,所以不能使用this++ 这样的运算
this保留字一般用于限定同名的隐藏成员、将对象本身做为参数、声明索引访问器、判断传入参数的对象是否为本身
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example10
{
class Class1
private double c;
private string value;
public double C
{
get
{
return c;
}
}
public Class1(double c)
{
//限定同名的隐藏成员
this.c = c;
}
public Class1(Class1 value) {
//用对象本身实例化自己没有意义if (this != value)
{
c = value.C;
}
public override string ToString()
{
//将对象本身做为参数
return string.Format(“{0} Celsius = {1} Fahrenheit”, c, UnitTransClass.C2F(this));
}
//由于好奇,在这做了一个效率测试,想看看到底哪种方式访问成员变量更快,结论:区别不大。

public string Test1()
{
long vTickCount = Environment.TickCount;
for (int i = 0; i
this.value = i.ToString();
return string.Format(“Have this.: {0} MSEL”, Environment.TickCount –vTickCount);
}
public string Test2()
{
long vTickCount = Environment.TickCount;
for (int i = 0; i
value = i.ToString();
return string.Format(“Don’t have this.: {0} MSEL”, Environment.TickCount –vTickCount);
}
}
class UnitTransClass
{
public static double C2F(Class1 value)
{
//摄氏到华氏的转换公式
return 1.8 * value.C + 32;
}
}
class Program
{
static void Main(string[] args)
{
Class1 tmpObj = new Class1(37.5);
Console.WriteLine(tmpObj);
Console.WriteLine(tmpObj.Test1());
Console.WriteLine(tmpObj.Test2());
Console.ReadLine();
}
}
}
结果:
37.5 Celsius = 99.5 Fahrenheit Have this.: 4375 MSEL Don’t have this.: 4406 MSEL。

相关文档
最新文档