this关键字和static关键字的说明

1、this

  • this代表实例(或对象),也就是new的时候的实例
  • this.属性:使用属性
  • this.函数;调用方法

大部分时候我们在类中不需要不使用this,因为默认会有this加在属性或函数的前面,只是不显示不出来。如果方法中有局部变量和成员变量同名则必须哟啊使用this。

代码:

package org.example.面向对象;

public class PersonO {
    private String name;
    private int age;
    public String getName(){
        //return name;//这里隐藏了this
        return this.name;//和上面的写法没区别
    }
    public void setName(String name){
       this.name=name;//这里必须使用this,不然无法区分局部变量name
    }
    
    public static void main(String[] args){
        
        PersonO p=new PersonO();
        
        /*
        * 
        * 这里的p就是上面的this
        * 每个不同的实例,对应不同的this
        * 所以this就是实例
        * */
        p.getName();//调用getName()函数
    }
}

2、static

  • static关键字修饰的属性和方法,指的是静态属性和静态方法,如:private static int age'
  • 被static修饰的属性和方法为静态变量也成为类的变量,不是实例的变量,不能使用this关键字
  • static是类的属性,static方法是类的方法,不需要实例化即可使用,直接类.属性或者类》方法便可使用。
  • static方法可以调用其他static方法,但是不可以调用非static方法,因为非static方法是需要this的,但是static不可以使用this。
  • 非static方法可以调用static方法

代码:

package org.example.面向对象;

public class PersonO {
   
    /*static例子*/
    private String name;
    private static int age;
    
    //非静态方法,里面会有this
    public void sing(){
        name="p1";
        age=10;
    }
    
    //静态方法里面没有this,所以不能在里面调用非静态方法
    public static void dance(){
//        name="p";//这里没有默认的this所以会报错
        System.out.println("dance");
    }
    
    /*
    * 
    * 主方法就是static所以我们调用非static方法的时候必须new实例出来才能调用*/
    
    public static  void main(String[] args){
        //静态的,所以可以直接使用不需要实例
        dance();
        
        //静态的
        System.out.println(age);
        
        PersonO p=new PersonO();
        //非静态的,必须实例
        p.name="pp";
        
        //实例也可以使用静态的属性
        p.age=100;
        
        PersonO p2=new PersonO();
        p2.age=11;
        System.out.println("p2.age"+p2.age);
    }
    
    
}

总结:类的static不可以调用实例的this,但是实例的this可以调用类的static。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值