Java Web编程中对象自身引用this的研究
- 格式:pdf
- 大小:122.92 KB
- 文档页数:2
java中this()的用法this()是Java中的特殊语法,用于在一个类的构造函数中调用另一个构造函数。
在一个类中可以定义多个构造函数,每个构造函数可以接受不同数量或不同类型的参数。
如果我们希望在构造函数中使用另一个构造函数中的代码,则可以使用this()来调用。
举个例子:```public class Person {private String name;private int age;public Person() {this("unknown", 0);}public Person(String name) {this(name, 0);}public Person(int age) {this("unknown", age);}public Person(String name, int age) { = name;this.age = age;}}```这里我们定义了一个Person类,有4个构造函数,分别接受0个、1个或2个参数。
我们希望在任何情况下,最终都能调用一个拥有两个参数的构造函数来完成对象初始化。
这时就可以使用this(),比如在Person()构造函数中调用this("unknown", 0)来完成对象初始化。
这意味着,如果使用不带参数的构造函数创建Person对象时,实际上会在该构造函数中调用this("unknown", 0),从而调用两个参数的构造函数来完成对象初始化。
使用this()注意要点:1. this()必须在构造函数的第一行调用,因为初始化必须先完成。
2. 只能在构造函数中使用this(),其他方法不能使用。
3. this()只能调用同一个类的其他构造函数,不能调用父类或子类的构造函数。
android 中this的用法在Android开发中,this是一个非常常见的关键字,用于表示当前对象的引用。
它可以引用当前对象的方法,属性以及其他成员。
本文将一步一步回答关于在Android中使用this关键字的问题,并深入探讨其用法。
第一部分:什么是this关键字?在面向对象编程中,this是一个代表当前对象的隐式自引用的关键字。
它允许我们在一个类的方法中引用当前对象的成员。
在Android中,对象是指一个实例化的Activity、Fragment或者其他Android组件。
我们可以通过在方法中使用this关键字来访问当前对象的实例变量、实例方法以及其他成员。
它在许多场景中非常有用,特别是当我们需要在类的各个方法中引用当前对象的成员时。
第二部分:在构造函数中使用this关键字一个常见的用法是在构造函数中使用this关键字。
在构造函数中,this关键字用于调用当前类的其他构造函数。
例如:public class MyClass {private int value;public MyClass() {this(0); 调用带参构造函数,并传入0作为参数}public MyClass(int value) {this.value = value;}}在上面的例子中,我们在无参数的构造函数中使用this关键字来调用另一个带参数的构造函数。
这种用法可以让我们在构造函数中避免重复的代码,并提高代码的可读性和可维护性。
第三部分:在内部类中使用this关键字在Android开发中,常常会使用内部类来实现事件监听器等功能。
在内部类中,this关键字表示当前内部类的实例。
然而,如果我们希望在内部类中访问外部类的成员变量或方法,由于内部类和外部类的作用域不同,直接使用this关键字将会引起编译错误。
为了解决这个问题,我们可以在内部类中使用外部类的实例变量或方法时,使用外部类的类名加上this关键字。
例如:public class OuterClass {private int value;public void outerMethod() {InnerClass inner = new InnerClass();inner.innerMethod();}public class InnerClass {public void innerMethod() {OuterClass.this.value = 10;}}}在上面的例子中,我们使用了OuterClass.this.value来访问外部类的value变量。
谈谈你对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>。
this指针及用法this指针是C++中的一个特殊指针,它指向当前对象的地址。
它主要用于在类的成员函数中访问当前对象的成员变量和成员函数。
使用this指针有以下几个方面的用法:1. 访问成员变量:在类的成员函数中,可以使用this指针来访问当前对象的成员变量。
这是因为成员函数中的变量名可能与成员变量名相同,使用this指针可以明确指出要访问的是成员变量而不是局部变量。
例如:cpp.class MyClass {。
public:void setX(int x) {。
this->x = x; // 使用this指针访问成员变量x.}。
private:int x;};2. 返回当前对象:在类的成员函数中,可以使用this指针返回当前对象的引用。
这可以方便地实现链式调用。
例如:cpp.class MyClass {。
public:MyClass& setX(int x) {。
this->x = x;return this; // 返回当前对象的引用。
}。
private:int x;};3. 在构造函数中使用:在构造函数中,this指针指向正在创建的对象。
这可以用于在构造函数中进行成员变量的初始化。
例如: cpp.class MyClass {。
public:MyClass(int x) {。
this->x = x; // 使用this指针初始化成员变量x.}。
private:int x;};4. 解决命名冲突:当类的成员变量与函数参数或局部变量同名时,可以使用this指针来区分它们。
例如:cpp.class MyClass {。
public:void setData(int data) {。
this->data = data; // 使用this指针访问成员变量data.}。
private:int data;};总结起来,this指针在C++中用于在类的成员函数中访问当前对象的成员变量和成员函数,解决命名冲突以及返回当前对象的引用。
this关键字的作⽤java中this关键字有两个作⽤:
1.访问成员变量:在构造器或者⽅法中可以使⽤this关键字访问成员变量
2.访问构造器:可以在⽆参构造器中访问有参构造器,⽅法中不能访问构造器
public class Car {
//this关键字
String name;
String color;
//1.⽅法或者构造器中访问成员变量 2.访问构造器
public Car(){
//访问有参构造器,⽅法中不能访问构造器,this作为构造器时只能放在第⼀⾏
this("bwm","blue");
}
public Car(String name,String color){
//构造器中访问成员变量
= name;
this.color = color;
}
public void run(){
//⽅法中访问成员变量
System.out.println(+"跑起来了");
}
public static void main(String[] args) {
//访问有参构造器
Car car = new Car();//这⾥没有传⼊参数
System.out.println(+car.color);
//⽅法以及构造器中访问成员变量
Car car2 = new Car("benchi","red");
car2.run();
}
}
结果如下:
bwmblue
benchi跑起来了。
java中this的用法This,英语单词,发音:[英][ðɪs][美][ðɪs]。
常翻译为:这,这么。
java中this的用法有哪些呢?本文是店铺整理java中this的用法的资料,仅供参考。
java中this的用法11. this指当前对象。
当在一个类中要明确指出使用对象变量或函数时加上this引用。
如下面例子中:public class Hello {String s = "Hello";public Hello(String s){System.out.println("s = " + s);System.out.println("1 -> this.s = " + this.s);this.s = s;System.out.println("2 -> this.s = " + this.s);}public static void main(String[] args) {Hello x=new Hello("HelloWorld!");}}运行结果: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作为参数传递当你要把自己作为参数传递给别的对象时如:public class A {public A() {new B(this).print();}public void print() {System.out.println("Hello from A!");}}public class B {A a;public B(A a) {this.a = a;}public void print() {a.print();System.out.println("Hello from B!");}}运行结果:Hello from A!Hello from B!在这个例子中,对象A的构造函数中,newB(this)把对象A作为参数传递给了对象B的构造函数。
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 对象的理解在 JavaScript 中,this 是一个特殊的对象,它表示当前执行代码的上下文。
具体来说,this 的值取决于函数是如何被调用的。
this 在不同的上下文中具有不同的含义,下面是对 this 对象的一些常见理解:全局上下文:在全局上下文中(在任何函数外部),this 指向全局对象,通常是 window 对象(在浏览器环境中)。
javascriptCopy codeconsole.log(this); // 在全局上下文中,this 指向全局对象(例如,window)函数上下文:在函数内部,this 的值取决于函数是如何被调用的。
如果函数是作为普通函数调用的,this 将指向全局对象或 undefined(在严格模式下)。
如果函数作为对象的方法被调用,this 将指向调用该方法的对象。
javascriptCopy codefunction myFunction() {console.log(this);}myFunction(); // 在普通函数调用中,this 指向全局对象或undefinedconst obj = {myMethod: myFunction};obj.myMethod(); // 在对象方法调用中,this 指向调用该方法的对象(obj)事件处理程序:在事件处理程序中,this 通常指向触发事件的元素。
htmlCopy code<button id="myButton">Click me</button><script>document.getElementById("myButton").addEventListener("click ", function() {console.log(this); // 在事件处理程序中,this 指向触发事件的元素(#myButton)});</script>箭头函数:在箭头函数中,this 的值继承自外部函数的上下文,而不是动态绑定。
java中的this和super的作⽤和异同和C++中调⽤⽗类的构造函数这⼏天看到类在继承时会⽤到this和super,这⾥就做了⼀点总结,与各位共同交流,有错误请各位指正~thisthis是⾃⾝的⼀个对象,代表对象本⾝,可以理解为:指向对象本⾝的⼀个指针。
this的⽤法在java中⼤体可以分为3种:1.普通的直接引⽤这种就不⽤讲了,this相当于是指向当前对象本⾝。
2.形参与成员名字重名,⽤this来区分:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17class 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)); }}运⾏结果:初始化年龄:10Harry's age is 12可以看到,这⾥age是GetAge成员⽅法的形参,this.age是Person类的成员变量。
3.引⽤构造函数这个和super放在⼀起讲,见下⾯。
supersuper可以理解为是指向⾃⼰超(⽗)类对象的⼀个指针,⽽这个超类指的是离⾃⼰最近的⼀个⽗类。
super也有三种⽤法:1.普通的直接引⽤与this类似,super相当于是指向当前对象的⽗类,这样就可以⽤super.xxx来引⽤⽗类的成员。
2.⼦类中的成员变量或⽅法与⽗类中的成员变量或⽅法同名12 3 4 5 6 7 8 9 10 11 12 13class Country {String name;void value() {name = "China";}}class City extends Country {String name;void value() {name = "Shanghai";super.value(); //调⽤⽗类的⽅法 System.out.println(name);13 14 15 16 17 18 19 20 21 System.out.println(name);System.out.println();}public static void main(String[] args) { City c=new City();c.value();}}运⾏结果:ShanghaiChina可以看到,这⾥既调⽤了⽗类的⽅法,也调⽤了⽗类的变量。