问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在JAVA中new 和this的作用,用法,在什么情况下使用?

发布网友 发布时间:2022-05-02 17:15

我来回答

5个回答

热心网友 时间:2022-06-21 00:39

new 在创建对象时使用 例如String s=new String("abc");

java中的this随处可见,用法也多,现在整理有几点:

1. 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 = Hello
2 -> 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("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的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。

3. 注意匿名类和内部类中的中的this。
有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:

public class A {
int i = 1;

public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie) { }

}
}
}; //注意这里有;
thread.start();
}

public void run() {
System.out.println("i = " + i);
i++;
}

public static void main(String[] args) throws Exception {
new A();
}
}

在上面这个例子中, thread 是一个匿名类对象,在它的定义中,它的 run 函数里用到了外部类的 run 函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。

4。在构造函数中,通过this可以调用同一class中别的构造函数,如

public class Flower{
Flower (int petals){}
Flower(String ss){}
Flower(int petals, Sting ss){
//petals++;调用另一个构造函数的语句必须在最起始的位置
this(petals);
//this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数
}
}

值得注意的是:
1:在构造调用另一个构造函数,调用动作必须置于最起始的位置。
2:不能在构造函数以外的任何函数内调用构造函数。
3:在一个构造函数内只能调用一个构造函数。

热心网友 时间:2022-06-21 00:39

new只出现在构造方法之前用来生成对象
即:Student a = new Student();

this
1、当全局变量跟局部变量重名时,表示使用全局变量(此时this指代本类对象)
例有一类class A{
String name;
void setName(String name){
this.name = name;
}
}
2、构造方法相互调用,此时this指代本类类名
注意this只能放在构造方法第一句
如class B{
String name;
B(){
this("name");//会自动调用带String参数的构造方法
}

B(String name){
this.name = name;
}

}

热心网友 时间:2022-06-21 00:40

new 是类创建对象用的。
class A
{
int h;
pubic void a(int n)
{
this.h=n;
}
}
在其他类中用调用A中的a方法就的这样
A aa = new A();
aa.a(4);
即对象调用方法。
this:就是该类中的成员变量。
上面的this.h = n;就是h=n;

热心网友 时间:2022-06-21 00:40

new 是新建一个对象,不管什么情况,只要有new就是新建一个对象。

this就是相当于这个类名,把this换成类名,往下读读看(虽然不符规矩)。

这样你再看图形界面的时候就应该清楚了吧。

热心网友 时间:2022-06-21 00:41

这个已经过时了, 用不动的,
在struts中都是自动生成 ,
你不用想太多,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国男篮有哪些优势和不足呢 tbc法师寒冰刺骨要点吗 有人在淘宝店里买的"Coolpad/酷派 9930 5寸米米Pad2智能手机 5.3寸平板... 酷派8730、联想K860、三星I9200和S2哪个好 ...大概5寸吧,求帮忙到底该不该买?具体点,谢了哈。O(∩_ 安卓2.3优美X3评测:又一部5.3吋巨屏猛机 三星i9250和i9220哪个好 i9250对比i9220评测 请将无限循环小数2点155的循环化成分数 为什么我的QQ会被封禁 5s冲电玩的时候发热,是正常吗 进入大学后有什么感受 redis源码好在哪里之命令处理 Java中,关键字this是什么作用? 刚刚进入大学的时候你是什么心情? 上海正宗陕西小吃 java里面的this有什么作用? 你对于大学第一天有什么感受? java 的this有哪些用途 java中的this 类使用它有什么作用,举例看下呀 java里的“this”到底是什么意思 初进大学,你最强烈的感受什么? 秦镇米皮第一味在哪 Java类中this();作用是什么,只在构造方法中出现吗? java 中this什么作用 小白提问 JAVA中this有什么作用? 安装centos卡住了,如图 centos7系统在启动时,界面就卡死在这个界面 centos7卡在启动界面 vmware 安装centos7完成后,配置时区和用户、密码后卡在以下界面。 我在官网下了一个CentOS732位的安装时老在这卡住进不去图形界面求大神们解答好的我追加悬赏 Java中的this关键字请举个具体的例子来说明用它的好处? java中的this到底怎么用,清楚就行,它是代表,应用类的数据成员,怎么又说代表当前对象? 青岛有多少个早市,具体位置在哪里? 请教一下Java里this一什么作用 本人想在沈阳卖衣服,我想知道现在沈阳还有多少早市与夜市的具体位置,请大家帮个忙。 凤城市早市在哪个位置人多吗? 怎么把自己的名字换在QQ头像上? 怎么才能把自己的QQ头像换成自己的名字 QQ名字怎么换成头像加名字 QQ怎样换头像 怎样将自己QQ空间的好友的头像名字改的 crc检验的好处 跑跑卡丁车 怎么过CRC检测 如何绕过游戏的检测系统以及crc效验 CRC校验和奇偶校验之间有什么关系 CRC冗余检测能检测多少位错误是由什么决定的? 通讯协议里crc效验 怎么让自已变聪明 如何让自己变得更加智慧? win10文件隐藏了怎么找出来怎么办