Java中static,this,重载

本文详细解释了Java中static关键字的作用及其应用场景。介绍了如何使用static定义类变量和类方法,并对比了实例变量与类变量的区别。同时,文章还探讨了this关键字的用途,包括它在构造方法和普通方法中的使用方式。

加了static表示这个变量或者方法是存储在类空间当中的,可以直接通过类进行调用,如:第二种写法。而不加static 表示这个变量或者方法是存储在对象空间当中的,只有通过类实例化一个对象,通过对象调用。

public class Student {
    private int age;
    private String name;
    public Student(int age,String name){
        this.age=age;
        this.name=name;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int x){
        age=x;
    }
    public void showInfo(){
        System.out.println("年龄"+age+"姓名"+name);
    }
      /*第二种写法
        public static void showInfo(){
        System.out.println("年龄"+age+"姓名"+name);
    }*/

}
public class Test {

    public static void main(String[] args) {
          Student stu=new Student(20,"孙菲");
          stu.showInfo();
          //第二种
          //Student.showInfo();
    }
}

this

this: 指向当前对象
在现实世界中我们说“我行!”,这里的“我”直接代指说话者,同样当执行一个对象的方法的时候,方法体内的this就指向当前这个对象。
别人不可能用“我”来指向你,“我”只能是说话者自己来引用自已。同样this只能是对象在执行方法的时候指向自己,而不能用来指向其它对象。

class T{
    int id;
    void think(){
        System.out.println(this.id);
    }
}
T t1 = new T(); t1.id = 3; t1.think(); 
T t2 = new T(); t2.id = 2; t2.think();
当执行t1的think方法时,上面的this代指对象t1;
当执行t2的think方法时,上面的this代指对象t2;

this在构造方法中的使用
class T{
T(){
this(2); //调用下面的构造方法(构造方法中调用构造方法只能这种方式)
}
T(int a){}
}

this对当前对象的引用
class T{
T friend;
void setFriend(T friend){
if(this.friend == friend){ return; }
this.friend = friend;
friend.setFriend(this);
}
}

重载

这里写图片描述

构造方法的重载
class T{
T(int a){}

T(){}
}

重载的误用
class T{
void fun(int a){}

void fun(int b){}
}
正确写法:
class T{
void f(int a, String s){}

void f(String s, int a){}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值