Java基础语法练习32(类变量/静态变量)(类方法/静态方法)

目录

一、类变量/静态变量

二、类方法/静态方法


一、类变量/静态变量

该变量的最大特点就是会被所在的类的所有实例对象共享

 //定义示例  public static int count=0;

细节:

1. 类变量随类的加载而创建,所以即使没有创建对象实例也可以访问(静态变量在类加载的时候就创建了)

2. 非静态变量只能通过实例访问,不能通过类名

如下代码示例

package stack_class;

//类变量随类的加载而创建,所以即使没有创建对象实例也可以访问
public class Child {
    public static void main(String[] args){

        System.out.println(ChildName.name1);
        //System.out.println(ChildName.name2);  非静态变量只能通过实例访问,不能通过类名

        ChildName c1 = new ChildName();
        System.out.println(c1.name1);
        System.out.println(c1.name2);
    }
}

class ChildName{
    public static String name1 = "jack";
    public String name2 = "tom";
}

二、类方法/静态方法

 //用法示例
public static void payFee(double fee)

细节:

1.类方法可以通过实例对象或类名调用(使用静态方法开发工具比较方便,因为不用实例化,直接通类名调用即可)(注意:如果通过类名调用方法会直接调用,不管构造器等

2.类方法不允许使用this和super等关键字(可以使用类名直接用)

3.静态方法只能访问静态变量和静态方法

4.普通方法可以访问静态和非静态

示例如下:

package stack_class;

public class Stu {
    public static void main(String[] args){
        StuFee s1 = new StuFee("tom");
        s1.payFee(200);
        StuFee.showFee();
        s1.showFee();

        StuFee s2 = new StuFee("jack");
        s2.payFee(200);
        StuFee.showFee();
        s2.showFee();

        StuFee.payFee(200);
        StuFee.showFee();

        //静态方法开发工具示例
        System.out.println(MyTools.calFee(25,36.9));

    }
}

class StuFee{
    private static double fee;
    private String name;

    public StuFee(String name){
        this.name = name;
    }

    //静态方法可以访问静态属性/变量
    public static void payFee(double fee){
        StuFee.fee += fee;
    }

    public static void showFee(){
        System.out.println("总的学费为"+StuFee.fee);
    }
}


//使用静态方法开发工具比较方便,因为不用实例化,直接通类名调用即可
class MyTools{
    public static double calFee(double n1, double n2){
        return n1 + n2;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值