public class TestThis {
int a,b,c;
{
System.out.println("静态代码块在这里!!!!!");
}
//当调用类时 静态代码块优先执行只要调用他就先执行且执行一次
TestThis() {
System.out.println("正要new一个Hello对象");
}
TestThis(int a, int b) {
//Hello(); // //这样是无法调用构造方法的!
this(); //调用无参的构造方法,并且必须位于第一行!
// a = a;//这里都是指的局部变量而不是成员变量
this.a = a;//这样就区分了成员变量和局部变量. 这种情况占了this使用情况的大多数!
this.b = b;
System.out.println("两个参数的结果:a是\t"+a+"\tb是\t"+b);
}
TestThis(int a, int b, int c) {
this(a, b); //调用无参的构造方法,并且必须位于第一行!
this.c = c;
System.out.println("三个参数的结果:a是\t"+a+"\tb是\t"+b+"\tc是\t"+c);
}
void sing() {
}
void chifan() {
this.sing(); //sing();
System.out.println("你妈妈喊你回家吃饭!");
}
@Override
public String toString() {
return "TestThis{" +
"a=" + a +
", b=" + b +
", c=" + c +
'}';
}
public static void main(String[] args) {
TestThis hi = new TestThis(2,3,4);
hi.chifan();
System.out.println(hi);
}
}
注意:如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则编译器不会
添加无参数构造方法!
但是当你创建有参构造器时,调用无参构造器时会报错,所以谨记当你创造有参构造器时,连带无参构造器也创建出来。
在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.
它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,
对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!
可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
static变量置于方法区中!
用static声明的方法为静态方法
不需要对象,就可以调用(类名.方法名)
在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
静态方法不能以任何方式引用this和super关键字