初学JAVA菜鸟 this到底该怎么用 初学菜鸟··· 高手指点一下 this到底要怎么用? 教程看了几遍就是没看懂! 什么对象,属性 引用 ··· JAVA的东西说法太怪异了 跟C比反差太大了 真不习惯 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好能举例说明下你的困惑,否则范围太大了,不知道要跟你说啥。this就是指本对象,比较常用的一种地方就是 set方法,比如:public class Student { private int age; public void setAge(int age) { this.age = age; }} 1.表示对当前对象的引用2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名时进行区分。(如楼上那个例子是最常用的this用法)3.。用于在构造方法中引用满足制定参数类型的构造器。但是这里必须非常注意:只能引用一个构造方法且必须位于开始。this不能用在static方法中 Java 中的 this 是不可变对象,因此相对于 JavaScript 中的 this 不知道简单到哪里去了,JavaScript 要能整明白那个 this 的话,可以说是进入了 JavaScript 中高级阶层了。举了一个涉及到 this 各方面的应用:public class TestThis { public static void main(String[] args) { JavaThis jt = new JavaThis("javathis"); // 由于 Student 属于 JavaThis 的内部类,因此要生成 Student // 对象时需要在外部类对象的基础上进行 new JavaThis.Student st = jt.new Student("student"); st.show("hello"); }}class JavaThis { private String name; private int age; public JavaThis(String name) { // 构造参数名与这个类的成员变量名相同,因此在赋值需要使用 this.name = name; 表示将 // 参数中的 name 值赋给 JavaThis 对象的 name 成员变量中去 // 如果不用这个 this. 就成了 name = name; 这样很明显就是不对的了 this.name = name; } public JavaThis(String name, int a) { // 使用 this 函数? // 这里指的是调用 JavaThis 这个类中带有 String 一个参数的构造方法,也就是先调用上面 // 那个构造 this(name); // 这里由于参数名不叫 age,因此这里可以直接使用 age = a; 当然了也可以写成 this.age = a; age = a; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println("javathis name: " + name); } public class Student { private String name; public Student(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void show(String name) { // 由于方法参数中有个 name,因此这里调用 name 是方法参数中的 System.out.println("my name: " + name); // 同上,由于方法参数中有个 name,要调用自己类中的成员变量 name 时需要使用 // this.name,如果方法参数中名字不叫 name,那么这里使用 name 或者 this.name // 都是同样的效果 System.out.println("my name: " + this.name); // 由于 Student 不是静态的内部类,而且外部类中的 name 与这个类中的 name // 名字一样,因此要引用外部类中的 name 时需要使用:<外部类名>.this.<外部类成员变量名> // 如果直接写 this.name 的话,那表示是自己的 name System.out.println("out name: " + JavaThis.this.name); // 同理,由于这里想调用外部类中的 show 方法,如果直接调用或者用 this.show() 的话, // 会被认为是调用自己的 show 方法,因此需要使用:<外部类名>.this.<外部类方法> // 下面这个调用等价于: // JavaThis outer = JavaThis.this; // outer.show(); JavaThis.this.show(); } }} this就是指自己本身例如一个类叫product 有属性id name 等等如果类中一个地方使用this那么this就代表当前的product类例如这个类得id字段,可以用this.id表示;返回这个类可以用return this表示 this可以理解成C里面的指针 指向自己 其实也就是对象自己在内存中的地址 this 就是在本类中的 属性 理解了this再去理解super就简单多了 this的具体应用方法还是应用于内部数据封装,使用一个get方法从外部获取值,内嵌this将值赋给实例内部的变量。这样做的好处是实例内部的变量与外部完全隔离,达到封装的效果。相当于外面有个人寄送包裹给你,达到你们公司门口的时候门房this说“交给我,我去给他,别的你不用管了”,这样。使用方法5楼很全,跪拜 在类中使用,就是定义的那个类中 ,this指的是当前创建的该类的实例 这是think in java中的一个例子,类LibTest.java经调试可通过编译,不可执行,不知为何,恳请大家指点 JAVA运行异常问题 swing中JScrollPane 能否直接加到JFrame上 为什么这段代码这样执行,在线等...... 关于 container 中的remove() 请问,JAVA有没有像MSDN一样的帮助文档 将递归修改为循环 swing写的程序在某些windows机器上无法load 如何调出另存为窗口 送分 SWT 如何实现拖拽缩放图片 [IO]修改文件的疑问?请教
private int age;
public void setAge(int age) {
this.age = age;
}
}
2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名时进行区分。(如楼上那个例子是最常用的this用法)
3.。用于在构造方法中引用满足制定参数类型的构造器。但是这里必须非常注意:只能引用一个构造方法且必须位于开始。this不能用在static方法中
// 对象时需要在外部类对象的基础上进行 new
JavaThis.Student st = jt.new Student("student"); st.show("hello");
}
}class JavaThis { private String name;
private int age; public JavaThis(String name) {
// 构造参数名与这个类的成员变量名相同,因此在赋值需要使用 this.name = name; 表示将
// 参数中的 name 值赋给 JavaThis 对象的 name 成员变量中去
// 如果不用这个 this. 就成了 name = name; 这样很明显就是不对的了
this.name = name;
} public JavaThis(String name, int a) {
// 使用 this 函数?
// 这里指的是调用 JavaThis 这个类中带有 String 一个参数的构造方法,也就是先调用上面
// 那个构造
this(name); // 这里由于参数名不叫 age,因此这里可以直接使用 age = a; 当然了也可以写成 this.age = a;
age = a;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public void show() {
System.out.println("javathis name: " + name);
} public class Student { private String name; public Student(String name) {
this.name = name;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public void show(String name) { // 由于方法参数中有个 name,因此这里调用 name 是方法参数中的
System.out.println("my name: " + name); // 同上,由于方法参数中有个 name,要调用自己类中的成员变量 name 时需要使用
// this.name,如果方法参数中名字不叫 name,那么这里使用 name 或者 this.name
// 都是同样的效果
System.out.println("my name: " + this.name); // 由于 Student 不是静态的内部类,而且外部类中的 name 与这个类中的 name
// 名字一样,因此要引用外部类中的 name 时需要使用:<外部类名>.this.<外部类成员变量名>
// 如果直接写 this.name 的话,那表示是自己的 name
System.out.println("out name: " + JavaThis.this.name); // 同理,由于这里想调用外部类中的 show 方法,如果直接调用或者用 this.show() 的话,
// 会被认为是调用自己的 show 方法,因此需要使用:<外部类名>.this.<外部类方法>
// 下面这个调用等价于:
// JavaThis outer = JavaThis.this;
// outer.show();
JavaThis.this.show();
}
}
}
例如一个类叫product 有属性id name 等等
如果类中一个地方使用this那么this就代表当前的product类
例如这个类得id字段,可以用this.id表示;返回这个类可以用return this表示