黑马程序员技术交流社区

标题: 新人课上笔记分享之this使用 [打印本页]

作者: miqideliwu    时间: 2016-7-29 00:59
标题: 新人课上笔记分享之this使用
/*
* A:this关键字特点
    * 代表当前对象的引用
* B:案例演示
    * this的应用场景
    * 用来区分成员变量和局部变量重名

*/
class Demo7_Test_Class {
    public static void main(String[] args) {
        //System.out.println("Hello World!");
        Person p1 = new Person();
        p1.setAge(25);
        p1.setName("White");
        System.out.println(p1.getName() + "..." + p1.getAge());


        Person p2 = new Person();
        p2.setAge(1);
        p2.setName("Day");
        System.out.println(p2.getName() + "..." + p2.getAge());
    }
}

class Person{
    /*
    private String name = "Sunny";
    private int age  = 26;
    */
    private String name;
    private int age;

    //设置年龄
    /*
    public void setAge(int age) {
        if (age > 0 && age < 150){
            age = age;                                                //成员变量与局部变量重名,相当于自己给自己赋值
        }else {
            System.out.println("Fuck!");
        }
    }
    */
    public void setAge(int age) {
        if (age > 0 && age < 150){
            this.age = age;                                            //this动态获取对象
        }else {
            System.out.println("Fuck!");
        }
    }

    //获取年龄
    public int getAge() {
        return age;
    }

    //设置姓名
    /*
    public void setName(String name) {
        name = name;                                                //成员变量与局部变量重名
    }
    */
    public void setName(String name) {
        this.name = name;
    }

    //获取姓名
    public String getName() {
        //return this.name;                                            //this.可以省略,不添加系统会自动添加,前提方法中无局部变量
        return name;
    }

    public void speak() {
        System.out.println(name + "..." + age);
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2