java中的这关键字和单例模式是什么

这篇文章主要介绍“java中的This关键字和单例模式是什么”,在日常操作中,相信很多人在java中的This关键字和单例模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的This关键字和单例模式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

 一、this关键字

1.假设在类定义int类型成员变量年龄age,在构造方法使用的是a(age=a),这样造成可读性比较差,所以需要将一个类中表示年龄的变量统一的命名,都声明为age。此时当成员变量和局部变量名一样导致在构造方法中无法访问对象的其他成员。,这时候在java程序中引用了这个this关键字。

2.this关键字可以为调用了方法的那个对象生成相应的地址,从而获得了对调用本方法的那个对象的引用。当方法需要访问类的成员变量时,就可以使用this引用指明要操作的对象。

3.解决成员变量和局部变量的名一样,我们可以使用this关键字去访问一个类的成员变量。

例如:

public class Person1 { public String name;//成员变量--年龄 public int age;//成员变量--年龄 public Person1(String name, int age){         this.name = name;//为name属性赋值         this.age = age;//为age属性赋值 } //say()方法 public void say(){     System.out.println("你好!我是" + this.name + ",今年" + this.age + "岁。"); } public static void main(String[] args) {     // TODO Auto-generated method stub     Person1 p1 = new Person1("李华", 20);//创建第一个对象     Person1 p2 = new Person1("小名", 19);//创建第二个对象     p1.say();//调用对象的方法     p2.say();//调用对象的方法     } }

输出的结果是:

你好!我是李华,今年20岁。 你好!我是小名,今年19岁。

上面代码中,构造方法的参数定义为(String name,int  age),它是一个局部变量,在类中定义了成员变量name和age,如果在构造方法使用name和age访问的是局部变量,在构造方法使用this.name和this.age的访问的是成员变量。

4.通过this关键字调用成员方法:

public class Person1 { public String name;//成员变量--年龄 public int age;//成员变量--年龄 public Person1(String name, int age){         this.name = name;//为name属性赋值         this.age = age;//为age属性赋值 } //print()方法 public void print() { System.out.println("************************"); } //say()方法 public void say(){ this.print();//调用方法     System.out.println("你好!我是" + this.name + ",今年" + this.age + "岁。"); } public static void main(String[] args) {     // TODO Auto-generated method stub     Person1 p1 = new Person1("李华", 20);//创建第一个对象     Person1 p2 = new Person1("小名", 19);//创建第二个对象     p1.say();//调用对象的方法     p2.say();//调用对象的方法     } }

输出的结果是:

************************ 你好!我是李华,今年20岁。 ************************ 你好!我是小名,今年19岁。

上面代码中,通过this关键字调用成员方法,写了一个print()方法在say()放在中调用成员方法并输出。5.构造方法在实例化对象时被java虚拟机(JVM)自动调用,在程序不能像调用其他方法去调用构造方法,可以在构造方法中使用this([参数1,参数2,...,参数n])的方式来调用其他的构造方法。

例如:

public class Person2 { public String name; public int age; //定义无参的构造方法 public Person2(){     System.out.println("无参构造方法被调用...."); } //定义两个有参的构造方法 public Person2(String name,int age){     this();//调用无参的构造方法     this.name=name;     this.age=age;     System.out.println("你好!我叫"+this.name+"今年"+this.age+"岁!");      } public static void main(String[] args) {     // TODO Auto-generated method stub     Person2 p=new Person2("李华",19);//实例化Person2对象     } }

java中的这关键字和单例模式是什么