Java面向对象3——this 和static

  1. this
    在类方法定义中使用this关键字代表使用该方法的对象的引用。
    当必须指出当前使用方法的对象是谁时要使用this。
    有时使用this可以处理方法中成员变量和参数重名的情况。
    this可以看作是一个变量,它的值是对当前对象的引用。
public class Leaf{
    int i;
    Leaf(int i){
        this.i=i;
    }
    Leaf increament(){//返回值是Leaf类型的
        i++;
        return this;
    }
    void print(){ System.out.println("i="+ i);}
    public static void main(String[] args){
        Leaf leaf = new Leaf(100);
        leaf.increament().increament().print();
    }
}

2 . static
① 静态属性
在类中,用static声明的属性为静态属性,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量是共享的。访问静态属性时可以由类名直接调用,即 类名.静态属性

public class Cat{
    private static int sid = 0;
    private String name;
    int id;
    Cat (String name){
        this.name = name;
        id = sid++;
    }
    public void info(){
        System.out.println("My name is "+name+"No."+id);
    }
    public static void main(String[] args){
        Cat.sid = 100;
        Cat mimi = new Cat("mimi");
        Cat pipi = new Cat("pipi");
        mimi.info();
        pipi.info();
    }
}

这里写图片描述

② 静态方法
用static声明的方法为静态方法,非static声明的方法可以调用static声明的的属性或方法,而static声明的方法是不能调用非static声明的属性和方法的(因为静态方法不能向对象实施操作)。但静态方法可以通过 类名.静态方法访问自身类中的静态属性。

③ 静态代码块
静态代码块优先于主方法执行,优先于构造块执行,且不管有多少个对象产生,静态代码块只执行一次。

④ 用static声明内部类
用static声明的内部类不能访问非stati的外部类属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值