private
private
//this:存储当前对象的引用地址.何为当前对象,看谁调用了这个方法,谁就是当前对象this的引用地址
public
System.out.println("===Person(String
//this.name:明确指定访问的成员变量
this.name=name;
this.age=age;
}
2.有时会使用this([参数列表]),调用本类中的构造函数,但是需要注意的是这条语句必须要作为构造函数的第一条执行一句来编写
例如:
public
this();//调用本类中的无参构造函数
System.out.println("===Person(String
this.name=name;
}
public
this(name);//调用本类中含有一个String类型参数的构造函数,这种写法的语句必须作为构造函数的第 一条可执行语句
System.out.println("===Person(String
this.age=age;
}
public
//this();//错误,这个写法的语句必须放在构造函数中
System.out.println("name="+name+",age="+age);
}
this.name=name;
this.age=age;
}
3.有时会用this关键字来调用本类中指定方法名的方法,但一般在习惯上都会省略掉这个关键字;
以上就是我涉及到要用到this关键字的地方,后面还会有将this作为方法参数的用法;
对于static关键而言,在一个类中用static修饰的变量就代表这个变来那个是静态的,并且它只有一份,是该类中公用的变量,用static修饰的方法就是静态方法,也叫类方法,它是独立于对象而存在的,因为静态成员都是随着类的加载而产生的,只要字节码文件一生成,那么该类成员就会被加载进内存中,并且至始至终只有一份。与此同时必须要注意的是:static修饰的的方法中不能使用super和this关键字,静态成员可以直接通过类名去访问,无须实例化对象进行访问。那么静态方法和非静态方法之间有怎样的关系呢?下面我来介绍一下:
在实例方法中可以方法静态变量和静态方法;但是,反过来则不行,因为在没有实例化对象时,静态成员就已经存在了,但是,非静态成员那时根本就不存在。所以静态方法访问非静态的就出现错误。反过来讲,因为静态成员类一加载,就会随之进入内存,所以实例化后的对象对其进行访问就是合情合理的。除此之外,还存在一点,那就是不常用的静态代码块,它一般是在一对大括号前面加上static关键字即可,静态代码块是在字节码文件被加载进JVM中自动调用的,并且它是只被调用一次,主要用来完成对静态变量的初始化。
接下来说说方法参数传递的问题。Java中在给调用的方法形参赋值是,只采用值传递的方式:基本数据类型在传递时传递的是本身值,而引用数据类型在传递时,传递的是自身引用;所以在Java中方法的参数传递是只支持值传递;在定义方法时,必须要注意形式参数的设置,数据类型可以任意,但是当实参传值是必须要保证实参与形参的数据类型保持一致,否则编译肯定通不过。