① this和super不能用在main方法中
请问你是想问“this和super不能用在main方法中是怎么回事”吗?该问题的原因如下:
在java中,this和super关键字有特定的用途和规则。this用于引用当前对象的实例,通常在任何方法内部都可以使用。但在main方法中,由于它是程序的入口点,代表整个程序而不是某个对象的实例,因此不能使用this来引用当前对象。
同样,super用于引用当前对象的父类实例,但在main方法中也不能使用,因为main方法通常是静态的,不与任何特定对象实例关联。
② 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作为参数传递
当你要把自己作为参数传递给别的对象时如:
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的构造函数。
③ 在Java中的main方法中可以使用this关键字吗为什么
不可以使用this关健词..
this 关健词是相对于 class来说的而main函数是独立于class的一个运行的函数..
对象使用 this 的话主要是容易把变量分开来..以免混乱如
public class A{
int i;
public void setI(int i){
this.i = i;
}
}