7.5 this关键字的使用;标准学生类的编写 、构造方法的格式

/*
* 学生类
*
* 起名字我们要求做到见名知意。
* 而我们现在的代码中的n和a就没有做到见名知意,所以我要改进。
*
* 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近的原则。
* 我们有没有办法把局部变量的name赋值给成员变量的name呢?
* 有。
*
* 什么办法呢?
* 用this关键字就可以解决这个问题
*
* this:代表所在类的对象引用
* 方法被哪个对象调用,this就代表那个对象
*
* 使用场景:
* 局部变量隐藏成员变量
*/





/*
* 构造方法:
* 给对象的数据进行初始化
*
* 格式:
* 方法名和类名相同
* 没有返回值类型,连void都不能写
* 没有具体的返回值
*
* 构造方法的注意事项:
* A:如果我们没有给出构造方法,系统将会提供一个默认的无参构造方法供我们使用。
* B:如果我们给出了构造方法,系统将不在提供默认的无参构造方法供我们使用。
* 这个时候,如果我们想使用无参构造方法,就必须自己提供。
* 推荐:自己给无参构造方法
* C:构造方法也是可以重载的
*
* 成员变量赋值:
* A:setXxx()方法
* B:带参构造方法
*/


public class ThisDemo {
    private String name;
    private int age;

    //1.构造方法:
    public ThisDemo() {}
    public ThisDemo(String name,int age) {
        this.name = name;
        this.age = age;
    }

    //2.成员方法:
    public void setName(String name) {
//        name = name;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

}
public class ThisUse {
    public static void main(String[] args) {
        //1.带参构造
        ThisDemo t2 = new ThisDemo("小明",15);
        System.out.println(t2.getName()+","+t2.getAge());

        //2.无参+setXxx()
        ThisDemo t = new ThisDemo();
        t.setName("林青霞");
        t.setAge(28);
        System.out.println(t.getName()+","+t.getAge());
    }
}

输出如下:

 



posted @ 2019-06-10 14:35  龙桑  阅读(301)  评论(0编辑  收藏  举报