`
yhalg1314
  • 浏览: 14082 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java学习笔记---9.面向对象编程04-this关键字的使用

    博客分类:
  • java
阅读更多
Java学习笔记---9.面向对象编程04-this关键字的使用

this关键字是Java语言里一个比较灵活而又复杂的语法,这里和String一样,也单独罗列出来做一节.

      this关键字的使用环境:

1. 可以调用本类中的方法.

      这个方法可以使类里面的一般方法, 也可以使构造函数.

      对于一般方法的调用,之前就已经碰到过了,比较熟悉,直接用this.function()即可.

      对于在构造函数中使用this关键字有需要注意的地方.在构造函数中,使用this()语句(注意this后带括号)调用的是无参的构造函数. 在构造函数中使用this()语句,this()语句必须放置在构造方法的首行, 且多个构造函数中必须至少留有一个入口,就是说至少要有一个未使用this()方法的构造函数.

      这里举个例子:    

     view plaincopy to clipboardprint?
class Person  
{  
    // 定义类"Person"的属性  
    String name;  
    int age;  
      
    //定义构造函数  
    public Person()  
    {  
        //this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口  
        this("张三",23);  
        System.out.println("构造了一个新的对象!");  
    }  
    public Person(String name,int age)  
    {  
        //如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法  
        this.name = name;  
        this.age = age;  
    }  
      
    public void print()  
    {  
        System.out.println("姓名是: "+name + ", 年龄是: "+age);  
    }  
}  
public class OODemo03  
{  
    public static void main(String args[])  
    {  
        Person p = new Person();  
          
        p.print();    
    }  
}
class Person
{
// 定义类"Person"的属性
String name;
int age;

//定义构造函数
public Person()
{
   //this()语句必须放置在构造函数的首行,且多个构造函数必须留有一个入口
   this("张三",23);
   System.out.println("构造了一个新的对象!");
}
public Person(String name,int age)
{
   //如果是由构造函数为属性赋值的话,最好也是使用getter和seter方法
   this.name = name;
   this.age = age;
}

public void print()
{
   System.out.println("姓名是: "+name + ", 年龄是: "+age);
}
}
public class OODemo03
{
public static void main(String args[])
{
   Person p = new Person();
 
   p.print();
}
}


--------------------------------------------------------------------------------

2. 调用当前类中的属性

      这个比第一种更常见,例如在上面的程序中, this.name = name; this.age = age 都是用过this关键字来调用当前类中的属性, 实例见上面代码中重载的构造函数.


--------------------------------------------------------------------------------

3. 可以表示当前对象

     其实在第二种"调用当前类中的属性"一块中, 我们就可以把this当做是在表示当前的对象. 用this表示当前对象,谁调用了这个方法,则this就表示谁.

     view plaincopy to clipboardprint?
class Person  
{  
    // 谁操作了这个方法,则this就表示是谁  
    public void print()  
    {  
        System.out.println("this表示:"+this) ;  
    }  
}  
public class Demo08  
{  
    public static void main(String args[])  
    {  
        Person p1 = new Person();  
        Person p2 = new Person();  
        p1.print() ;  
        System.out.println(p1) ;  
        System.out.println("-------------------------") ;  
        p2.print() ;  
        System.out.println(p2) ;  
    }  
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics