代码改变世界

类及成员的属性——void、this、null

2018-01-23 18:56  Jolene_Wu  阅读(302)  评论(0编辑  收藏  举报

---恢复内容开始---

12.5

12.5.1 void

当方法不需要返回值时,则可以使用void类型表明返回空类型值。

构造方法比较特殊,没有返回值,连void都不能有如果构造方法有void,则它不再是构造方法而是普通成员方法

12.5.2 this

super 代表父类

this 代表当前类本身

 

//Example1213.java
//this的使用实例
public class Example1213
{
    public static void main(String[] args)
    {
        Test t = new Test(1,2);
        System.out.println(t.age);
        System.out.println(t.number);
        A a = new A();
        System.out.println(a.age);
        System.out.println(a.number);
    }
}
class Test
{
    int age,number;
    Test(int age, int number)
    {
        this.age = age;          //形参age赋值给成员变量age
        this.number = number;   //形参number赋值给成员变量number 
    }
}
class A extends Test
{
    int age,number;
    A()
    {
        super(3,4);
        this.age = super.age;    //this指代子类本身
        this.number = super.number;    //this指代子类本身
    }
}

在构造函数中我们想用形参 age、number 给成员变量 age 和 number 赋值

如何区分形参和成员变量呢?

age = age;        //形参age赋值给成员变量age,这么写肯定不行,->this.age = age;        
number = number;    //形参number赋值给成员变量number,这么写不对,->this.number = number;

12.5.3 null

null 表示将对象空间清空。如果需要再次使用该对象,则应使用new命令为其重新开辟空间。

//Example1214.java
public class Example1214
{
    public static void main(String[] args)
    {
        Test t = new Test();
        System.out.println(t.i);
        t.i++;
        t=null;    //清空对象 t
     //System.out.println(t.i);    //该语句运行的话会报错,因为对象t 不存在
        t = new Test();
        System.out.println(t.i);
    }
}
class Test
{
    int i;
    Test()
    {
        i = 10;
     }
}

//当t = null时,t 就没有空间了,也就没有成员变量,所以 t.i 无效